bin/idea.sh
changeset 48667 f2344724a475
parent 47217 72e3ae9a25eb
child 51266 f8696e0ab9b7
equal deleted inserted replaced
48666:d626620a1844 48667:f2344724a475
    28       echo "usage: $0 [-h|--help] [-v|--verbose] [-o|--output <path>] [modules]+"
    28       echo "usage: $0 [-h|--help] [-v|--verbose] [-o|--output <path>] [modules]+"
    29       exit 1
    29       exit 1
    30 }
    30 }
    31 
    31 
    32 SCRIPT_DIR=`dirname $0`
    32 SCRIPT_DIR=`dirname $0`
    33 PWD=`pwd`
    33 #assume TOP is the dir from which the script has been called
       
    34 TOP=`pwd`
    34 cd $SCRIPT_DIR; SCRIPT_DIR=`pwd`
    35 cd $SCRIPT_DIR; SCRIPT_DIR=`pwd`
    35 cd ../; TOP=`pwd`; cd $PWD
    36 cd $TOP;
    36 
    37 
    37 IDEA_OUTPUT=$TOP/.idea
    38 IDEA_OUTPUT=$TOP/.idea
    38 VERBOSE="false"
    39 VERBOSE="false"
    39 while [ $# -gt 0 ]
    40 while [ $# -gt 0 ]
    40 do
    41 do
    64 done
    65 done
    65 
    66 
    66 mkdir $IDEA_OUTPUT || exit 1
    67 mkdir $IDEA_OUTPUT || exit 1
    67 cd $IDEA_OUTPUT; IDEA_OUTPUT=`pwd`
    68 cd $IDEA_OUTPUT; IDEA_OUTPUT=`pwd`
    68 
    69 
    69 IDEA_MAKE="$TOP/make/idea"
    70 MAKE_DIR="$SCRIPT_DIR/../make"
       
    71 IDEA_MAKE="$MAKE_DIR/idea"
    70 IDEA_TEMPLATE="$IDEA_MAKE/template"
    72 IDEA_TEMPLATE="$IDEA_MAKE/template"
    71 IML_TEMPLATE="$IDEA_TEMPLATE/jdk.iml"
    73 
    72 ANT_TEMPLATE="$IDEA_TEMPLATE/ant.xml"
    74 cp -r "$IDEA_TEMPLATE"/* "$IDEA_OUTPUT"
    73 MISC_TEMPLATE="$IDEA_TEMPLATE/misc.xml"
    75 
    74 IDEA_IML="$IDEA_OUTPUT/jdk.iml"
    76 #init template variables
    75 IDEA_ANT="$IDEA_OUTPUT/ant.xml"
    77 for file in `ls -p $IDEA_TEMPLATE | grep -v /`; do
    76 IDEA_MISC="$IDEA_OUTPUT/misc.xml"
    78 	VAR_SUFFIX=`echo $file | cut -d'.' -f1 | tr [:lower:] [:upper:]`
       
    79     eval "$VAR_SUFFIX"_TEMPLATE="$IDEA_TEMPLATE"/$file
       
    80 	eval IDEA_"$VAR_SUFFIX"="$IDEA_OUTPUT"/$file
       
    81 done
       
    82 
       
    83 #override template variables
       
    84 if [ -d "$TEMPLATES_OVERRIDE" ] ; then
       
    85     for file in `ls -p "$TEMPLATES_OVERRIDE" | grep -v /`; do
       
    86         cp "$TEMPLATES_OVERRIDE"/$file "$IDEA_OUTPUT"/
       
    87     	VAR_SUFFIX=`echo $file | cut -d'.' -f1 | tr [:lower:] [:upper:]`
       
    88         eval "$VAR_SUFFIX"_TEMPLATE="$TEMPLATES_OVERRIDE"/$file
       
    89     done
       
    90 fi
    77 
    91 
    78 if [ "$VERBOSE" = "true" ] ; then
    92 if [ "$VERBOSE" = "true" ] ; then
    79   echo "output dir: $IDEA_OUTPUT"
    93   echo "output dir: $IDEA_OUTPUT"
    80   echo "idea template dir: $IDEA_TEMPLATE"
    94   echo "idea template dir: $IDEA_TEMPLATE"
    81 fi
    95 fi
    82 
    96 
    83 if [ ! -f "$IML_TEMPLATE" ] ; then
    97 if [ ! -f "$JDK_TEMPLATE" ] ; then
    84   echo "FATAL: cannot find $IML_TEMPLATE" >&2; exit 1
    98   echo "FATAL: cannot find $JDK_TEMPLATE" >&2; exit 1
    85 fi
    99 fi
    86 
   100 
    87 if [ ! -f "$ANT_TEMPLATE" ] ; then
   101 if [ ! -f "$ANT_TEMPLATE" ] ; then
    88   echo "FATAL: cannot find $ANT_TEMPLATE" >&2; exit 1
   102   echo "FATAL: cannot find $ANT_TEMPLATE" >&2; exit 1
    89 fi
   103 fi
    90 
   104 
    91 cp -r "$IDEA_TEMPLATE"/* "$IDEA_OUTPUT"
   105 cd $TOP ; make -f "$IDEA_MAKE/idea.gmk" -I $MAKE_DIR/.. idea MAKEOVERRIDES= OUT=$IDEA_OUTPUT/env.cfg MODULES="$*" || exit 1
    92 cd $TOP ; make -f "$IDEA_MAKE/idea.gmk" -I make/common idea MAKEOVERRIDES= OUT=$IDEA_OUTPUT/env.cfg MODULES="$*" || exit 1
       
    93 cd $SCRIPT_DIR
   106 cd $SCRIPT_DIR
    94 
   107 
    95 . $IDEA_OUTPUT/env.cfg
   108 . $IDEA_OUTPUT/env.cfg
    96 
   109 
    97 # Expect MODULE_ROOTS, MODULE_NAMES, BOOT_JDK & SPEC to be set
   110 # Expect MODULE_ROOTS, MODULE_NAMES, BOOT_JDK & SPEC to be set
   116 
   129 
   117 addSourceFolder() {
   130 addSourceFolder() {
   118   root=$@
   131   root=$@
   119   relativePath="`echo "$root" | sed -e s@"$TOP/\(.*$\)"@"\1"@`"
   132   relativePath="`echo "$root" | sed -e s@"$TOP/\(.*$\)"@"\1"@`"
   120   folder="`echo "$SOURCE_FOLDER" | sed -e s@"\(.*/\)####\(.*\)"@"\1$relativePath\2"@`"
   133   folder="`echo "$SOURCE_FOLDER" | sed -e s@"\(.*/\)####\(.*\)"@"\1$relativePath\2"@`"
   121   printf "%s\n" "$folder" >> $IDEA_IML
   134   printf "%s\n" "$folder" >> $IDEA_JDK
   122 }
   135 }
   123 
   136 
   124 ### Generate project iml
   137 ### Generate project iml
   125 rm -f $IDEA_IML
   138 
       
   139 rm -f $IDEA_JDK
   126 while IFS= read -r line
   140 while IFS= read -r line
   127 do
   141 do
   128   if echo "$line" | egrep "^ .* <sourceFolder.*####" > /dev/null ; then
   142   if echo "$line" | egrep "^ .* <sourceFolder.*####" > /dev/null ; then
   129     if [ "$SOURCE_FOLDERS_DONE" = "false" ] ; then
   143     if [ "$SOURCE_FOLDERS_DONE" = "false" ] ; then
   130       SOURCE_FOLDERS_DONE="true"
   144       SOURCE_FOLDERS_DONE="true"
   131       for root in $MODULE_ROOTS; do
   145       for root in $MODULE_ROOTS; do
   132          addSourceFolder $root
   146          addSourceFolder $root
   133       done
   147       done
   134     fi
   148     fi
   135   else
   149   else
   136     printf "%s\n" "$line" >> $IDEA_IML
   150     printf "%s\n" "$line" >> $IDEA_JDK
   137   fi
   151   fi
   138 done < "$IML_TEMPLATE"
   152 done < "$JDK_TEMPLATE"
   139 
   153 
   140 
   154 
   141 MODULE_NAME="        <property name=\"module.name\" value=\"####\" />"
   155 MODULE_NAME="        <property name=\"module.name\" value=\"####\" />"
   142 
   156 
   143 addModuleName() {
   157 addModuleName() {