瀏覽代碼

Generate dynamic classpath in ant, not bash

Change-Id: I71151b953b29df6dc12ec19f3c43f8cf7a6a37ed
Reviewed-on: http://gerrit.dmdirc.com/2198
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Greg Holmes <greg@dmdirc.com>
tags/0.6.7rc1
Chris Smith 12 年之前
父節點
當前提交
5425e6e466
共有 6 個文件被更改,包括 106 次插入72 次删除
  1. 0
    26
      build-functions.sh
  2. 32
    0
      build-properties.xml
  3. 2
    0
      build.xml
  4. 0
    20
      dynamicProperties.sh
  5. 3
    22
      nbproject/build-impl.xml
  6. 69
    4
      nbproject/project.properties

+ 0
- 26
build-functions.sh 查看文件

@@ -1,26 +0,0 @@
1
-#!/bin/bash
2
-# Provides functions that are used in multiple scripts in the build process
3
-
4
-function safe_mktemp {
5
-	if [ -x "`which mktemp`" ] ; then
6
-		TMPDIR=`mktemp -d`
7
-	else
8
-		if [ -d "$TMP" ] ; then
9
-			# We're running under Windows then use the global TMP location
10
-			TMPDIR="$TMP/$1-`date +%s`-$$-$RANDOM"
11
-		else
12
-			TMPDIR="`pwd`/build/temp/$1-$$-$RANDOM"
13
-		fi
14
-		# this is fragile
15
-		if [ -d "$TMPDIR" ] ; then
16
-			echo "no suitable temp folder found"
17
-			exit 2
18
-		fi
19
-		mkdir -p "$TMPDIR"  
20
-		if [ ! -d "$TMPDIR" ] ; then
21
-			echo "no suitable temp folder found"
22
-			exit 2
23
-		fi
24
-	fi
25
-	echo $TMPDIR
26
-}

+ 32
- 0
build-properties.xml 查看文件

@@ -0,0 +1,32 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project name="DMDirc-properties" default="default" basedir=".">
3
+    <description>Automatically initialises build properties</description>
4
+
5
+    <condition property="private.property.exists">
6
+        <available file="nbproject/private/private.properties"/>
7
+    </condition>
8
+    
9
+    <target name="-create-private-properties" unless="private.properties.exists">
10
+        <mkdir dir="nbproject/private"/>
11
+        <echo file="nbproject/private/private.properties"/>
12
+    </target>
13
+    
14
+    <target name="-check-private-classpath">
15
+        <loadfile property="private.properties.old" srcFile="nbproject/private/private.properties"/>
16
+        <condition property="private.properties.needsinsert">
17
+            <not>
18
+                <matches string="${private.properties.old}" pattern="^private.classpath=(.*)$" multiline="true" casesensitive="true"/>
19
+            </not>
20
+        </condition>
21
+    </target>
22
+    
23
+    <target name="-create-private-classpath" if="private.properties.needsinsert">
24
+        <echo append="true" file="nbproject/private/private.properties">${line.separator}private.classpath=${line.separator}</echo>
25
+    </target>
26
+
27
+    <target name="-init-private-properties" depends="-create-private-properties,-check-private-classpath,-create-private-classpath">
28
+        <propertyregex property="private.classpath.value" input="${toString:plugins.libs}" regexp="\\" replace="/" global="true"/>
29
+        <replaceregexp file="nbproject/private/private.properties" match="^private.classpath=(.*)$" flags="im" replace="private.classpath=${private.classpath.value}"/>
30
+    </target>
31
+    
32
+</project>

+ 2
- 0
build.xml 查看文件

@@ -8,6 +8,7 @@
8 8
     <import file="build-reports.xml"/>
9 9
     <import file="build-tests.xml"/>
10 10
     <import file="build-versioning.xml"/>
11
+    <import file="build-properties.xml"/>
11 12
 
12 13
     <target name="init-private">
13 14
         <echo>Downloading private files, if this fails please pass username and</echo>
@@ -29,6 +30,7 @@
29 30
         <delete dir="modules/util/dist"/>
30 31
     </target>
31 32
 
33
+    <target name="-pre-init" depends="-init-private-properties"/>
32 34
     <target name="-post-compile" depends="-write-version, build-plugins"/>
33 35
     <target name="-post-test-run" depends="-do-test-reports"/>
34 36
     <target name="-post-jar" depends="-update-bundled-plugins"/>

+ 0
- 20
dynamicProperties.sh 查看文件

@@ -1,20 +0,0 @@
1
-#!/bin/bash
2
-
3
-SOURCE="${1}"
4
-TARGET="${2}"
5
-
6
-if [ "" = "${TARGET}" -o ! -e "${SOURCE}" ]; then
7
-	echo "Usage: ${0} dynamic.properties private.properties";
8
-else
9
-	# Make sure target exists.
10
-	if [ ! -e "${TARGET}" ]; then
11
-		mkdir -p `dirname "${TARGET}"`
12
-		touch "${TARGET}"
13
-	fi;
14
-	
15
-	# Remove existing private.properties line
16
-	sed '/^private\.classpath[\s]*=.*$/d' -i "${TARGET}"
17
-
18
-	# Add new one.
19
-	cat "${SOURCE}" | grep "^private\.classpath" >> "${TARGET}"
20
-fi;

+ 3
- 22
nbproject/build-impl.xml 查看文件

@@ -29,36 +29,17 @@ is divided into following sections:
29 29
     <path id="plugins.libs">
30 30
         <fileset dir="modules/plugins/lib" includes="*.jar"/>
31 31
     </path>
32
+    
32 33
     <property name="test_profile_dir" value="./test_profile"/>
33 34
     <target name="-pre-init">
34 35
         <!-- Empty placeholder for easier customization. -->
35 36
         <!-- You can override this target in the ../build.xml file. -->
36 37
     </target>
37
-    <condition property="is.windows"><os family="windows"/></condition>
38
-    <target name="-init-dynamic-properties">
39
-	<mkdir dir="nbproject/private/" />
40
-	<delete file="nbproject/private/dynamic.properties" />
41
-        <echo file="nbproject/private/dynamic.properties" append="true"># DO NOT EDIT THIS FILE, IT WILL BE OVERWRITTEN BY ANT
42
-</echo>
43
-        <echo file="nbproject/private/dynamic.properties" append="true">private.classpath=${toString:plugins.libs}
44
-</echo>
45
-    </target>
46
-    <target depends="-init-dynamic-properties" name="-init-dynamic-properties-windows" if="is.windows">
47
-        <replace file="nbproject/private/dynamic.properties" token="\" value="/"/> <!-- this replaces backslashes with slashes on Windows -->
48
-    </target>
49
-    <target depends="-init-dynamic-properties,-init-dynamic-properties-windows" name="-init-dynamic-properties-netbeans">
50
-        <!-- Netbeans sucks and ignores dynamic.properties, lets hax it into private.properties then -->
51
-        <exec executable="bash">
52
-            <arg value="dynamicProperties.sh"/>
53
-            <arg value="nbproject/private/dynamic.properties"/>
54
-            <arg value="nbproject/private/private.properties"/>
55
-       </exec>
56
-    </target>
57
-    <target depends="-pre-init,-init-dynamic-properties,-init-dynamic-properties-windows,-init-dynamic-properties-netbeans" name="-init-private">
38
+    
39
+    <target depends="-pre-init" name="-init-private">
58 40
         <property file="nbproject/private/config.properties"/>
59 41
         <property file="nbproject/private/configs/${config}.properties"/>
60 42
         <property file="nbproject/private/private.properties"/>
61
-        <property file="nbproject/private/dynamic.properties"/>
62 43
     </target>
63 44
     <target depends="-pre-init,-init-private" name="-init-user">
64 45
         <property file="${user.properties.file}"/>

+ 69
- 4
nbproject/project.properties 查看文件

@@ -2,9 +2,40 @@ annotation.processing.enabled=true
2 2
 annotation.processing.enabled.in.editor=true
3 3
 annotation.processing.run.all.processors=true
4 4
 endorsed.classpath=
5
-file.reference.junit-4.8.1.jar=lib/junit-4.8.1.jar
6
-file.reference.lombok-pg-0.10.0.jar=lib/lombok-pg-0.10.0.jar
7
-file.reference.mockito-all-1.8.2.jar=lib/mockito-all-1.8.2.jar
5
+file.reference.ant-contrib-1.0b3.jar=lib\\ant-contrib-1.0b3.jar
6
+file.reference.ant-contrib-1.0b3.jar-1=modules\\plugins\\lib\\ant-contrib-1.0b3.jar
7
+file.reference.asm-3.1.jar=lib\\asm-3.1.jar
8
+file.reference.checkstyle-5.3-all.jar=lib\\checkstyle-5.3-all.jar
9
+file.reference.clover.jar=lib\\clover.jar
10
+file.reference.commons-codec-1.3.jar=lib\\commons-codec-1.3.jar
11
+file.reference.commons-codec-1.3.jar-1=modules\\plugins\\lib\\commons-codec-1.3.jar
12
+file.reference.commons-httpclient-3.0-rc1.jar=lib\\commons-httpclient-3.0-rc1.jar
13
+file.reference.commons-lang-2.4.jar=modules\\plugins\\lib\\commons-lang-2.4.jar
14
+file.reference.commons-logging-1.0.3.jar=lib\\commons-logging-1.0.3.jar
15
+file.reference.fikin-ant-1.7.3.jar=lib\\fikin-ant-1.7.3.jar
16
+file.reference.findbugs-ant.jar=lib\\findbugs-ant.jar
17
+file.reference.httpcore.jar=modules\\plugins\\lib\\httpcore.jar
18
+file.reference.jaxen-1.1.1.jar=lib\\jaxen-1.1.1.jar
19
+file.reference.jetty-6.1.22.jar=modules\\plugins\\lib\\jetty-6.1.22.jar
20
+file.reference.jetty-util-6.1.22.jar=modules\\plugins\\lib\\jetty-util-6.1.22.jar
21
+file.reference.jml-1.0b4-full.jar=modules\\plugins\\lib\\jml-1.0b4-full.jar
22
+file.reference.jna.jar=modules\\plugins\\lib\\jna.jar
23
+file.reference.junit-4.8.1.jar=lib\\junit-4.8.1.jar
24
+file.reference.jxlayer.jar=modules\\plugins\\lib\\jxlayer.jar
25
+file.reference.lombok-pg-0.10.0.jar=lib\\lombok-pg-0.10.0.jar
26
+file.reference.lombok-pg-0.10.0.jar-1=modules\\plugins\\lib\\lombok-pg-0.10.0.jar
27
+file.reference.menuscroller.jar=modules\\plugins\\lib\\menuscroller.jar
28
+file.reference.miglayout-3.7.4-swing.jar=modules\\plugins\\lib\\miglayout-3.7.4-swing.jar
29
+file.reference.mockito-all-1.8.2.jar=lib\\mockito-all-1.8.2.jar
30
+file.reference.nsisant-1.3.jar=lib\\nsisant-1.3.jar
31
+file.reference.platform.jar=modules\\plugins\\lib\\platform.jar
32
+file.reference.pmd-4.2.5.jar=lib\\pmd-4.2.5.jar
33
+file.reference.servlet-api-2.5-20081211.jar=modules\\plugins\\lib\\servlet-api-2.5-20081211.jar
34
+file.reference.signpost-core-1.1-SNAPSHOT.jar=modules\\plugins\\lib\\signpost-core-1.1-SNAPSHOT.jar
35
+file.reference.smack.jar=modules\\plugins\\lib\\smack.jar
36
+file.reference.smackx.jar=modules\\plugins\\lib\\smackx.jar
37
+file.reference.uispec4j-2.2.jar=modules\\plugins\\lib\\uispec4j-2.2.jar
38
+file.reference.xercesImpl.jar=lib\\xercesImpl.jar
8 39
 javac.processorpath=\
9 40
     ${javac.classpath}
10 41
 jaxbwiz.endorsed.dirs="${netbeans.home}/../ide12/modules/ext/jaxb/api"
@@ -77,7 +108,41 @@ util.test.dir=modules/util/test
77 108
 # automatically by ant.
78 109
 javac.classpath=\
79 110
     ${private.classpath}:\
80
-    ${file.reference.lombok-pg-0.10.0.jar}
111
+    ${file.reference.lombok-pg-0.10.0.jar}:\
112
+    ${file.reference.ant-contrib-1.0b3.jar}:\
113
+    ${file.reference.asm-3.1.jar}:\
114
+    ${file.reference.checkstyle-5.3-all.jar}:\
115
+    ${file.reference.clover.jar}:\
116
+    ${file.reference.commons-codec-1.3.jar}:\
117
+    ${file.reference.commons-httpclient-3.0-rc1.jar}:\
118
+    ${file.reference.commons-logging-1.0.3.jar}:\
119
+    ${file.reference.fikin-ant-1.7.3.jar}:\
120
+    ${file.reference.findbugs-ant.jar}:\
121
+    ${file.reference.jaxen-1.1.1.jar}:\
122
+    ${file.reference.junit-4.8.1.jar}:\
123
+    ${file.reference.lombok-pg-0.10.0.jar}:\
124
+    ${file.reference.mockito-all-1.8.2.jar}:\
125
+    ${file.reference.nsisant-1.3.jar}:\
126
+    ${file.reference.pmd-4.2.5.jar}:\
127
+    ${file.reference.xercesImpl.jar}:\
128
+    ${file.reference.ant-contrib-1.0b3.jar-1}:\
129
+    ${file.reference.commons-codec-1.3.jar-1}:\
130
+    ${file.reference.commons-lang-2.4.jar}:\
131
+    ${file.reference.httpcore.jar}:\
132
+    ${file.reference.jetty-6.1.22.jar}:\
133
+    ${file.reference.jetty-util-6.1.22.jar}:\
134
+    ${file.reference.jml-1.0b4-full.jar}:\
135
+    ${file.reference.jna.jar}:\
136
+    ${file.reference.jxlayer.jar}:\
137
+    ${file.reference.lombok-pg-0.10.0.jar-1}:\
138
+    ${file.reference.menuscroller.jar}:\
139
+    ${file.reference.miglayout-3.7.4-swing.jar}:\
140
+    ${file.reference.platform.jar}:\
141
+    ${file.reference.servlet-api-2.5-20081211.jar}:\
142
+    ${file.reference.signpost-core-1.1-SNAPSHOT.jar}:\
143
+    ${file.reference.smack.jar}:\
144
+    ${file.reference.smackx.jar}:\
145
+    ${file.reference.uispec4j-2.2.jar}
81 146
 javac.test.classpath=\
82 147
     ${javac.classpath}:\
83 148
     ${build.classes.dir}:\

Loading…
取消
儲存