#!/bin/bash # Copyright 2015 Google Inc. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # Generates an IntelliJ project in Bazel. set -o errexit cd $(dirname "$0") cd .. mkdir -p .idea/ cp -R scripts/resources/idea/*.* .idea/ source scripts/get_all_bazel_paths.sh readonly iml_file=bazel.iml # The content root output/classes is used for generated sources, specifically # AutoValue. cat > $iml_file < EOH for source in ${JAVA_PATHS}; do if [[ $source == *"javatests" ]]; then is_test_source="true" elif [[ $source == *"test/java" ]]; then is_test_source="true" else is_test_source="false" fi echo ' " >> $iml_file done cat >> $iml_file <<'EOF' EOF THIRD_PARTY_JAVA_PATHS="$(ls third_party/java | sort -u | sed -e 's%$%/java%')" for third_party_java_path in ${THIRD_PARTY_JAVA_PATHS}; do echo ' ' >> $iml_file done cat >> $iml_file <<'EOF' EOF function write_jar_entry() { local jar_file=$1 if [[ $# > 1 ]]; then local source_path=$2 else local source_path="" fi local readonly basename=${jar_file##*/} cat >> $iml_file < EOF if [[ -z "${source_path}" ]]; then echo " " >> $iml_file else cat >> $iml_file < EOF fi cat >> $iml_file <<'EOF' EOF } for jar in ${THIRD_PARTY_JAR_PATHS}; do write_jar_entry $jar done for source_path in ${PROTOBUF_PATHS}; do write_jar_entry ${source_path%.proto_output} $source_path done for path_pair in ${GENERATED_PATHS}; do write_jar_entry ${path_pair//:/ } done write_jar_entry tools/jdk/jdk/lib/tools.jar cat >> $iml_file <<'EOF' EOF