Skip to content

Commit 8c30fcd

Browse files
committed
Update code
1 parent 4b9ca7a commit 8c30fcd

File tree

6 files changed

+33
-22
lines changed

6 files changed

+33
-22
lines changed

examples/SharedLib/libA/lib-build/src/main/java/BuildLibA.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ private static BuildMultiTarget getWindowVCTarget(BuildToolOptions op) {
120120
linkTarget.headerDirs.add("-I" + op.getCustomSourceDir());
121121
linkTarget.headerDirs.add("-I" + libBuildCPPPath + "/src/jniglue");
122122
linkTarget.linkerFlags.add("/WHOLEARCHIVE:" + libBuildCPPPath + "/libs/windows/vc/" + op.libName + "64_.lib");
123+
linkTarget.linkerFlags.add("-DLL");
123124
linkTarget.cppInclude.add(libBuildCPPPath + "/src/jniglue/JNIGlue.cpp");
124125
multiTarget.add(linkTarget);
125126

examples/SharedLib/libB/lib-build/src/main/java/BuildLibB.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@ private static BuildMultiTarget getWindowVCTarget(BuildToolOptions op, String li
136136
linkTarget.headerDirs.add("-I" + libACustomPath);
137137
linkTarget.linkerFlags.add("/WHOLEARCHIVE:" + libALibPath + "/LibA64.lib");
138138
linkTarget.linkerFlags.add("/WHOLEARCHIVE:" + libBuildCPPPath + "/libs/windows/vc/" + op.libName + "64_.lib");
139+
linkTarget.linkerFlags.add("-DLL");
139140
linkTarget.cppInclude.add(libBuildCPPPath + "/src/jniglue/JNIGlue.cpp");
140141
multiTarget.add(linkTarget);
141142

examples/TestLib/lib/lib-build/src/main/java/BuildLib.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ private static BuildMultiTarget getWindowTarget(BuildToolOptions op) {
8888
linkTarget.linkerFlags.add("-Wl,--whole-archive");
8989
linkTarget.linkerFlags.add(libBuildCPPPath + "/libs/windows/" + op.libName + "64_.a");
9090
linkTarget.linkerFlags.add("-Wl,--no-whole-archive");
91+
linkTarget.linkerFlags.add("-DLL");
9192
linkTarget.cppInclude.add(libBuildCPPPath + "/src/jniglue/JNIGlue.cpp");
9293
multiTarget.add(linkTarget);
9394

jParser/jParser-build/src/main/java/com/github/xpenatan/jParser/builder/DefaultBuildTarget.java

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ public abstract class DefaultBuildTarget extends BuildTarget {
1616
private static String helperNameCpp = "IDLHelper.cpp";
1717

1818
public boolean multiCoreCompile = true;
19+
public boolean addIDLHelper = true;
1920

2021
public String tempBuildDir;
2122

@@ -67,20 +68,10 @@ protected boolean buildInternal(BuildConfig config) {
6768
}
6869
childTarget.mkdirs();
6970

70-
idlDir = config.buildRootGenSourcePath.child("idl");
71-
if(!idlDir.exists()) {
72-
idlDir.mkdirs();
71+
if(addIDLHelper) {
72+
addIDLHelper(config);
7373
}
7474

75-
idlHelperHClasspath = new CustomFileDescriptor(helperNameH, CustomFileDescriptor.FileType.Classpath);
76-
idlHelperCPPClasspath = new CustomFileDescriptor(helperNameCpp, CustomFileDescriptor.FileType.Classpath);
77-
idlHelperHFile = idlDir.child(idlHelperHClasspath.name());
78-
idlHelperCPPFile = idlDir.child(idlHelperCPPClasspath.name());
79-
80-
// Always add IDLHelper, even if not used.
81-
copyIDLHelperToBuildDir();
82-
headerDirs.add("-I" + idlDir.path());
83-
8475
setup(config);
8576
return build(config, childTarget);
8677
}
@@ -261,7 +252,9 @@ protected void onLink(ArrayList<CustomFileDescriptor> compiledObjects, String ob
261252
}
262253
else {
263254
linkerCommands.addAll(linkerCompiler);
264-
linkerCommands.add("@" + objFilePath); // Objects must be before flags and linking flags
255+
if(!compiledObjects.isEmpty()) {
256+
linkerCommands.add("@" + objFilePath); // Objects must be before flags and linking flags
257+
}
265258
linkerCommands.addAll(linkerFlags);
266259
linkerCommands.add(linkerOutputCommand + libPath);
267260
}
@@ -339,7 +332,23 @@ public static void getObjectFiles(CustomFileDescriptor file, ArrayList<CustomFil
339332
}
340333
}
341334

342-
public void copyIDLHelperToBuildDir() {
335+
private void addIDLHelper(BuildConfig config) {
336+
idlDir = config.buildRootGenSourcePath.child("idl");
337+
if(!idlDir.exists()) {
338+
idlDir.mkdirs();
339+
}
340+
341+
idlHelperHClasspath = new CustomFileDescriptor(helperNameH, CustomFileDescriptor.FileType.Classpath);
342+
idlHelperCPPClasspath = new CustomFileDescriptor(helperNameCpp, CustomFileDescriptor.FileType.Classpath);
343+
idlHelperHFile = idlDir.child(idlHelperHClasspath.name());
344+
idlHelperCPPFile = idlDir.child(idlHelperCPPClasspath.name());
345+
346+
// Always add IDLHelper, even if not used.
347+
copyIDLHelperToBuildDir();
348+
headerDirs.add("-I" + idlDir.path());
349+
}
350+
351+
private void copyIDLHelperToBuildDir() {
343352
idlHelperHClasspath.copyTo(idlDir, false);
344353
idlHelperCPPClasspath.copyTo(idlDir, false);
345354
}

jParser/jParser-build/src/main/java/com/github/xpenatan/jParser/builder/targets/WindowsMSVCTarget.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,13 @@ public WindowsMSVCTarget() {
2525
cppCompiler.add("x64");
2626
cppCompiler.add("&");
2727
cppCompiler.add("cl");
28+
29+
linkerCompiler.add("cmd");
30+
linkerCompiler.add("/c");
31+
linkerCompiler.add("vcvarsall");
32+
linkerCompiler.add("x64");
33+
linkerCompiler.add("&");
34+
2835
compilerOutputCommand = "-Fo:";
2936
cppFlags.add("-c");
3037
if(DEBUG_BUILD) {
@@ -40,11 +47,6 @@ public WindowsMSVCTarget() {
4047

4148
@Override
4249
protected void setup(BuildConfig config) {
43-
linkerCompiler.add("cmd");
44-
linkerCompiler.add("/c");
45-
linkerCompiler.add("vcvarsall");
46-
linkerCompiler.add("x64");
47-
linkerCompiler.add("&");
4850
if(isStatic) {
4951
linkerCompiler.add("lib");
5052
libSuffix = "64_.lib";
@@ -54,7 +56,6 @@ protected void setup(BuildConfig config) {
5456
if(DEBUG_BUILD) {
5557
linkerCompiler.add("/DEBUG"); // Generates .pbd file
5658
}
57-
linkerFlags.add("-DLL");
5859
}
5960
linkerCompiler.add("/NOLOGO");
6061
linkerCompiler.add("/MACHINE:X64");

jParser/jParser-build/src/main/java/com/github/xpenatan/jParser/builder/targets/WindowsTarget.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,10 @@ protected void setup(BuildConfig config) {
5252
linkerOutputCommand = "";
5353
}
5454
else {
55-
// linkerFlags.add("-fPIC");
5655
linkerFlags.add("-shared");
5756
linkerFlags.add("-static");
5857
linkerFlags.add("-static-libgcc");
5958
linkerFlags.add("-static-libstdc++");
60-
// linkerFlags.add("-Wl,--kill-at");
6159
linkerFlags.add("-m64");
6260
libSuffix = "64.dll";
6361
linkerOutputCommand = "-o";

0 commit comments

Comments
 (0)