Skip to content

Commit

Permalink
teat external includes differently. Do not copy to build dir, referen…
Browse files Browse the repository at this point in the history
…ce them in situe
  • Loading branch information
Tom-Ski committed Jul 21, 2024
1 parent 24ebedb commit 0743ee7
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,12 @@ public abstract class BaseToolchain {
protected RuntimeEnv ENV = new RuntimeEnv();
protected BuildConfig config;
protected BuildTarget target;
protected List<File> sourceCollectedCFiles;
protected List<File> sourceCollectedCppFiles;

private List<File> sourceJniGeneratedCFiles;
private List<File> sourceJniGeneratedCPPFiles;

private List<File> sourceIncludedCFiles;
private List<File> sourceIncludedCPPFiles;

protected List<File> buildCFiles;
protected List<File> buildCppFiles;
Expand Down Expand Up @@ -73,9 +77,9 @@ private void collectCFiles () {
String[] cExcludes = target.cExcludes;

try {
sourceCollectedCFiles = collectFiles(jniDir.toPath(), jniCIncludes, jniCExcludes);
sourceCollectedCFiles.addAll(collectFiles(config.projectDir.file().toPath(), cIncludes, cExcludes));
logger.info("Collected C files {}", sourceCollectedCFiles);
sourceJniGeneratedCFiles = collectFiles(jniDir.toPath(), jniCIncludes, jniCExcludes);
sourceIncludedCFiles = collectFiles(config.projectDir.file().toPath(), cIncludes, cExcludes);
logger.info("Collected C files {}", sourceJniGeneratedCFiles);
} catch (IOException e) {
throw new RuntimeException(e);
}
Expand All @@ -94,9 +98,9 @@ private void collectCPPFiles () {
String[] cppExcludes = target.cppExcludes;

try {
sourceCollectedCppFiles = collectFiles(jniDir.toPath(), jniCPPIncludes, jniCPPExcludes);
sourceCollectedCppFiles.addAll(collectFiles(config.projectDir.file().toPath(), cppIncludes, cppExcludes));
logger.info("Collected CPP files {}", sourceCollectedCppFiles);
sourceJniGeneratedCPPFiles = collectFiles(jniDir.toPath(), jniCPPIncludes, jniCPPExcludes);
sourceIncludedCPPFiles = collectFiles(config.projectDir.file().toPath(), cppIncludes, cppExcludes);
logger.info("Collected CPP files {}", sourceJniGeneratedCPPFiles);
} catch (IOException e) {
throw new RuntimeException(e);
}
Expand Down Expand Up @@ -124,16 +128,21 @@ private void createBuildDirectory () {
//copy the source files all over
buildCFiles = new ArrayList<>();
buildCppFiles = new ArrayList<>();
for (File collectedCFile : sourceCollectedCFiles) {
for (File collectedCFile : sourceJniGeneratedCFiles) {
File targetFile = new File(buildDirectory, collectedCFile.getName());
buildCFiles.add(targetFile);
Files.copy(collectedCFile.toPath(), targetFile.toPath(), StandardCopyOption.REPLACE_EXISTING);
}
for (File collectedCppFile : sourceCollectedCppFiles) {
for (File collectedCppFile : sourceJniGeneratedCPPFiles) {
File targetFile = new File(buildDirectory, collectedCppFile.getName());
buildCppFiles.add(targetFile);
Files.copy(collectedCppFile.toPath(), targetFile.toPath(), StandardCopyOption.REPLACE_EXISTING);
}

//for includes, we don't copy
buildCFiles.addAll(sourceIncludedCFiles);
buildCppFiles.addAll(sourceIncludedCPPFiles);

} catch (IOException e) {
logger.error("Failure to copy files into build directory", e);
throw new RuntimeException("Failure to copy files into build directory");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ public void compile () {


private void compileC () {
if (sourceCollectedCFiles.isEmpty()) {
if (buildCFiles.isEmpty()) {
logger.info("No c files, skipping c compilation");
return;
}
Expand Down Expand Up @@ -84,7 +84,7 @@ private void compileC () {
}

private void compileCPP () {
if (sourceCollectedCppFiles.isEmpty()) {
if (buildCppFiles.isEmpty()) {
logger.info("No c files, skipping c compilation");
return;
}
Expand Down Expand Up @@ -131,10 +131,10 @@ private void link () {


ArrayList<File> objFiles = new ArrayList<>();
for (File cObjectFile : sourceCollectedCFiles) {
for (File cObjectFile : buildCFiles) {
objFiles.add(new File(buildDirectory, toObjectFile(cObjectFile.getName())));
}
for (File cppObjhectFile : sourceCollectedCppFiles) {
for (File cppObjhectFile : buildCppFiles) {
objFiles.add(new File(buildDirectory, toObjectFile(cppObjhectFile.getName())));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ private String getClangArch () {


private void compileC () {
if (sourceCollectedCFiles.isEmpty()) {
if (buildCFiles.isEmpty()) {
logger.info("No c files, skipping c compilation");
return;
}
Expand Down Expand Up @@ -109,7 +109,7 @@ private void compileC () {
}

private void compileCPP () {
if (sourceCollectedCppFiles.isEmpty()) {
if (buildCppFiles.isEmpty()) {
logger.info("No c files, skipping c compilation");
return;
}
Expand Down Expand Up @@ -173,10 +173,10 @@ private void link () {


ArrayList<File> objFiles = new ArrayList<>();
for (File cObjectFile : sourceCollectedCFiles) {
for (File cObjectFile : buildCFiles) {
objFiles.add(new File(buildDirectory, toObjectFile(cObjectFile.getName())));
}
for (File cppObjhectFile : sourceCollectedCppFiles) {
for (File cppObjhectFile : buildCppFiles) {
objFiles.add(new File(buildDirectory, toObjectFile(cppObjhectFile.getName())));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ public void compile () {
}

private void compileC () {
if (sourceCollectedCFiles.isEmpty()) {
if (buildCFiles.isEmpty()) {
logger.info("No c files, skipping c compilation");
return;
}
Expand Down Expand Up @@ -228,7 +228,7 @@ private void compileC () {
}

private void compileCPP () {
if (sourceCollectedCppFiles.isEmpty()) {
if (buildCppFiles.isEmpty()) {
logger.info("No cpp files, skipping cpp compilation");
return;
}
Expand Down Expand Up @@ -278,10 +278,10 @@ private void link () {


ArrayList<File> objFiles = new ArrayList<>();
for (File cObjectFile : sourceCollectedCFiles) {
for (File cObjectFile : buildCFiles) {
objFiles.add(new File(buildDirectory, toObjectFile(cObjectFile.getName())));
}
for (File cppObjhectFile : sourceCollectedCppFiles) {
for (File cppObjhectFile : buildCppFiles) {
objFiles.add(new File(buildDirectory, toObjectFile(cppObjhectFile.getName())));
}

Expand Down

0 comments on commit 0743ee7

Please sign in to comment.