| #!/bin/bash |
| # |
| # Copyright (C) 2012 The Android Open Source Project |
| # |
| # 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. |
| # |
| # To use, run the following command from either your repo root or |
| # development/tools/idegen: |
| # intellij-gen.sh project_dir <module_dir>... |
| # |
| # if no module_dir is provided, we assume project_dir is also a module_dir. |
| # |
| # For example, to generate a project for framework/base, use: |
| # intellij-gen.sh framework/base |
| # |
| # The project directory (.idea) will be put in the project_dir. Sharable |
| # iml files will be put into each respective module directory. |
| # |
| # Only tested on linux. Should work for macs but have not tried. |
| # |
| set -e |
| |
| progname=`basename $0` |
| if [ $# -lt 1 ]; then |
| echo "Usage: $progname project_dir <module_dir>..." |
| exit 1 |
| fi |
| project_dir=$1 |
| shift |
| if [ -z $@ ]; then |
| module_dirs=${project_dir} |
| else |
| module_dirs=$@ |
| fi |
| echo $module_dirs |
| script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" |
| root_dir=$PWD |
| if [ ! -e $root_dir/.repo ]; then |
| root_dir=$PWD/../../.. |
| if [ ! -e $root_dir/.repo ]; then |
| echo "Repo root not found. Run this script from your repo root or the idegen directory." |
| exit 1 |
| fi |
| fi |
| index_file=$root_dir/module-index.txt |
| idegenjar=$script_dir/idegen.jar |
| if [ ! -e $idegenjar ]; then |
| # See if the jar is in the build directory. |
| platform="linux" |
| if [ "Darwin" = "$(uname)" ]; then |
| platform="darwin" |
| fi |
| idegenjar="$root_dir/out/host/$platform-x86/framework/idegen.jar" |
| fi |
| |
| if [ ! -e "$index_file" ]; then |
| echo "Module index file missing; generating this is only done the first time." |
| echo "If any dependencies change, you should generate a new index file by running index-gen.sh." |
| $script_dir/index-gen.sh |
| fi |
| |
| echo "Checking for $idegenjar" |
| if [ -e "$idegenjar" ]; then |
| echo "Generating project files for $module_dirs" |
| cmd="java -cp $idegenjar com.android.idegen.IntellijProject $index_file $project_dir $module_dirs" |
| echo $cmd |
| $cmd |
| else |
| echo "Couldn't find idegen.jar. Please run make first." |
| fi |