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() { |