Browse Source

Classpath changes, move the classpath definitions to the bottom of the file and all next to each other rather than scatter about the file.

Put ${toString:plugins.libs} into the properties file rather than build-impl.xml

Unfortunately netbeans sucks and doesn't understand ${toString:plugins.libs} so refuses to acknowledge the libs at all (even tho compiling will work just fine), to counter this the user is now able to define private.classpath to (re-)include the jars that netbeans otherwise misses. Unfortunately I can't get netbeans to work any other way and neither ant or netbeans understand wildcards in the classpath.

Change-Id: I1aa6b7ba5eeeffaa2e7e8d43834af4082e0d9d04
Reviewed-on: http://gerrit.dmdirc.com/275
Tested-by: Shane Mc Cormack <shane@dmdirc.com>
Reviewed-by: Gregory Holmes <greboid@dmdirc.com>
Tested-by: Gregory Holmes <greboid@dmdirc.com>
tags/0.6.3b1
Shane Mc Cormack 14 years ago
parent
commit
cb8b56850e
2 changed files with 36 additions and 23 deletions
  1. 10
    7
      nbproject/build-impl.xml
  2. 26
    16
      nbproject/project.properties

+ 10
- 7
nbproject/build-impl.xml View File

@@ -48,6 +48,9 @@ is divided into following sections:
48 48
     <target depends="-pre-init,-init-private,-init-user" name="-init-project">
49 49
         <property file="nbproject/configs/${config}.properties"/>
50 50
         <property file="nbproject/project.properties"/>
51
+        <!-- Echo this here to make it easy for people to copy/paste into
52
+             private.properties. -->
53
+        <echo message="Found Libraries: ${toString:plugins.libs}" />
51 54
     </target>
52 55
     <target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property" name="-do-init">
53 56
         <available file="${manifest.file}" property="manifest.available"/>
@@ -148,7 +151,7 @@ is divided into following sections:
148 151
         <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
149 152
             <attribute default="${plugins.src.dir}:${parser.src.dir}:${main.src.dir}" name="srcdir"/>
150 153
             <attribute default="${build.classes.dir}" name="destdir"/>
151
-            <attribute default="${toString:plugins.libs}:${javac.classpath}" name="classpath"/>
154
+            <attribute default="${javac.classpath}" name="classpath"/>
152 155
             <attribute default="${includes}" name="includes"/>
153 156
             <attribute default="${excludes}" name="excludes"/>
154 157
             <attribute default="${javac.debug}" name="debug"/>
@@ -168,7 +171,7 @@ is divided into following sections:
168 171
         <macrodef name="depend" uri="http://www.netbeans.org/ns/j2se-project/3">
169 172
             <attribute default="${plugins.src.dir}:${parser.src.dir}:${main.src.dir}" name="srcdir"/>
170 173
             <attribute default="${build.classes.dir}" name="destdir"/>
171
-            <attribute default="${toString:plugins.libs}:${javac.classpath}" name="classpath"/>
174
+            <attribute default="${javac.classpath}" name="classpath"/>
172 175
             <sequential>
173 176
                 <depend cache="${build.dir}/depcache" destdir="@{destdir}" excludes="${excludes}" includes="${includes}" srcdir="@{srcdir}">
174 177
                     <classpath>
@@ -533,7 +536,7 @@ is divided into following sections:
533 536
         <mkdir dir="${dist.javadoc.dir}"/>
534 537
         <javadoc additionalparam="${javadoc.additionalparam}" author="${javadoc.author}" charset="${javadoc.encoding.used}" destdir="${dist.javadoc.dir}" docencoding="${javadoc.encoding.used}" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}">
535 538
             <classpath>
536
-                <path path="${toString:plugins.libs}:${javac.classpath}"/>
539
+                <path path="${javac.classpath}"/>
537 540
             </classpath>
538 541
             <fileset dir="${main.src.dir}" excludes="${excludes}" includes="${includes}">
539 542
                 <filename name="**/*.java"/>
@@ -561,7 +564,7 @@ is divided into following sections:
561 564
         <mkdir dir="${doccheck.dir}"/>
562 565
         <javadoc additionalparam="-doclet com.sun.tools.doclets.doccheck.DocCheck -docletpath ${doccheck.path} -skipPkg net.miginfocom.*" author="${javadoc.author}" destdir="${doccheck.dir}" failonerror="true" private="${javadoc.private}" source="${javac.source}" sourcepath="${main.src.dir}:${parser.src.dir}:${plugins.src.dir}" useexternalfile="true" version="${javadoc.version}">
563 566
             <classpath>
564
-                <path path="${toString:plugins.libs}:${javac.classpath}"/>
567
+                <path path="${javac.classpath}"/>
565 568
             </classpath>
566 569
         </javadoc>
567 570
     </target>
@@ -594,10 +597,10 @@ is divided into following sections:
594 597
         <!-- You can override this target in the ../build.xml file. -->
595 598
     </target>
596 599
     <target if="do.depend.true" name="-compile-test-depend">
597
-        <j2seproject3:depend classpath="${toString:plugins.libs}:${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir="${main.test.dir}:${parser.test.dir}:${plugins.test.dir}"/>
600
+        <j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir="${main.test.dir}:${parser.test.dir}:${plugins.test.dir}"/>
598 601
     </target>
599 602
     <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend" if="have.tests" name="-do-compile-test">
600
-        <j2seproject3:javac classpath="${toString:plugins.libs}:${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" srcdir="${main.test.dir}:${parser.test.dir}:${plugins.test.dir}"/>
603
+        <j2seproject3:javac classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" srcdir="${main.test.dir}:${parser.test.dir}:${plugins.test.dir}"/>
601 604
         <copy todir="${build.test.classes.dir}">
602 605
             <fileset dir="${main.test.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
603 606
             <fileset dir="${parser.test.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
@@ -616,7 +619,7 @@ is divided into following sections:
616 619
     <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single">
617 620
         <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
618 621
         <j2seproject3:force-recompile destdir="${build.test.classes.dir}"/>
619
-        <j2seproject3:javac classpath="${toString:plugins.libs}:${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}" sourcepath="${main.test.dir}:${parser.test.dir}:${plugins.test.dir}" srcdir="${main.test.dir}:${parser.test.dir}:${plugins.test.dir}"/>
622
+        <j2seproject3:javac classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}" sourcepath="${main.test.dir}:${parser.test.dir}:${plugins.test.dir}" srcdir="${main.test.dir}:${parser.test.dir}:${plugins.test.dir}"/>
620 623
         <copy todir="${build.test.classes.dir}">
621 624
             <fileset dir="${main.test.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
622 625
             <fileset dir="${parser.test.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>

+ 26
- 16
nbproject/project.properties View File

@@ -18,10 +18,6 @@ build.generated.dir=${build.dir}/generated
18 18
 build.sysclasspath=ignore
19 19
 build.test.classes.dir=${build.dir}/test/classes
20 20
 build.test.results.dir=${build.dir}/test/results
21
-debug.classpath=\
22
-    ${run.classpath}
23
-debug.test.classpath=\
24
-    ${run.test.classpath}
25 21
 # This directory is removed when the project is cleaned:
26 22
 dist.dir=dist
27 23
 dist.jar=${dist.dir}/DMDirc.jar
@@ -30,16 +26,11 @@ dist.jar.excludes=com/dmdirc/addons/**
30 26
 excludes=
31 27
 includes=**
32 28
 jar.compress=false
33
-javac.classpath=
34 29
 # Space-separated list of extra javac options
35 30
 javac.compilerargs=-Xlint:all -Xmaxerrs 1000
36 31
 javac.deprecation=true
37 32
 javac.source=1.6
38 33
 javac.target=1.6
39
-javac.test.classpath=\
40
-    ${javac.classpath}:\
41
-    ${build.classes.dir}:\
42
-    ${file.reference.junit-4.jar}
43 34
 javadoc.additionalparam=-overview ${main.src.dir}/overview.html
44 35
 javadoc.author=false
45 36
 javadoc.encoding=
@@ -55,20 +46,39 @@ main.class=com.dmdirc.Main
55 46
 manifest.file=manifest.mf
56 47
 meta.inf.dir=${main.src.dir}/META-INF
57 48
 platform.active=default_platform
58
-run.classpath=\
59
-    ${javac.classpath}:\
60
-    ${build.classes.dir}
61 49
 # Space-separated list of JVM arguments used when running the project
62 50
 # (you may also define separate properties like run-sys-prop.name=value instead of -Dname=value
63 51
 # or test-sys-prop.name=value to set system properties for unit tests):
64 52
 run.jvmargs=
65
-run.test.classpath=\
66
-    ${javac.test.classpath}:\
67
-    ${build.test.classes.dir}:\
68
-    ${file.reference.junit-4.jar}
69 53
 main.src.dir=src
70 54
 parser.src.dir=modules/parser/src
71 55
 plugins.src.dir=modules/plugins/src
72 56
 main.test.dir=test
73 57
 parser.test.dir=modules/parser/test
74 58
 plugins.test.dir=modules/plugins/test
59
+
60
+# Classpaths
61
+# ${toString:plugins.libs} generates at compile-time a string containing all
62
+# the plugin jars.
63
+# However netbeans fails miserably at understanding this in  the IDE, so we
64
+# have the private.classpath variable that can be defined by the user in
65
+# private.properties that contains any jars they need to satisfy netbeans
66
+# suckiness.
67
+# Without this parameter, everything will still compile, but netbeans won't
68
+# know about any files it isn't explicitly told about.
69
+javac.classpath=${toString:plugins.libs}
70
+javac.test.classpath=\
71
+    ${javac.classpath}:\
72
+    ${build.classes.dir}:\
73
+    ${file.reference.junit-4.jar}
74
+run.classpath=\
75
+    ${javac.classpath}:\
76
+    ${build.classes.dir}
77
+run.test.classpath=\
78
+    ${javac.test.classpath}:\
79
+    ${build.test.classes.dir}:\
80
+    ${file.reference.junit-4.jar}
81
+debug.classpath=\
82
+    ${run.classpath}
83
+debug.test.classpath=\
84
+    ${run.test.classpath}

Loading…
Cancel
Save