diff --git a/arc-core/build.gradle b/arc-core/build.gradle index 75810e102..4612d9f9d 100644 --- a/arc-core/build.gradle +++ b/arc-core/build.gradle @@ -75,7 +75,16 @@ task fixWrap{ def f = file("$rootDir/arc-core/jni/build-linux64.xml"); if(f.exists()){ - f.text = f.text.replace("-Wl,-wrap,memcpy", "-Wl,-wrap,memcpy,-wrap,pow,-wrap,powf,-wrap,log,-wrap,logf,-wrap,exp,-wrap,expf,-wrap,clock_gettime") + if(System.getProperty("os.name").equals("FreeBSD")){ // other BSDs? + f.text = f.text + .replace("linux", "freebsd") + .replace('-Ijni-headers/${jniPlatform}', "-Ijni-headers/linux") + .replace("gcc", "cc") + .replace("g++", "c++") + .replace("-Wl,-wrap,memcpy", "") + } else { + f.text = f.text.replace("-Wl,-wrap,memcpy", "-Wl,-wrap,memcpy,-wrap,pow,-wrap,powf,-wrap,log,-wrap,logf,-wrap,exp,-wrap,expf,-wrap,clock_gettime") + } } } } @@ -118,7 +127,7 @@ task preJni{ task postJni{ doLast{ copy{ - from "libs/linux64", "libs/windows32", "libs/windows64", "libs/macosx64" + from "libs/windows32", "libs/windows64", "libs/macosx64", "libs/freebsd64" into "../natives/natives-desktop/libs" include "**" } diff --git a/backends/backend-sdl/build.gradle b/backends/backend-sdl/build.gradle index 429076018..e52d9a012 100644 --- a/backends/backend-sdl/build.gradle +++ b/backends/backend-sdl/build.gradle @@ -1,5 +1,5 @@ sourceSets.main.java.srcDirs = ["src"] -sourceSets.main.resources.srcDirs = ["libs/linux64", "libs/macosx64","libs/windows32", "libs/windows64", "libs/openal"] +sourceSets.main.resources.srcDirs = ["libs/macosx64","libs/windows32", "libs/windows64", "libs/freebsd64", "libs/openal"] dependencies { testImplementation libraries.jnigen @@ -126,8 +126,24 @@ jnigen{ } +task postJni{ + doFirst{ + println "--FIXING FREEBSD SCRIPTS--" + if(System.getProperty("os.name").equals("FreeBSD")) { + def f = file("$rootDir/backends/backend-sdl/jni/build-linux64.xml"); + if(f.exists()){ + f.text = f.text + .replace("linux", "freebsd") + .replace('-Ijni-headers/${jniPlatform}', "-Ijni-headers/linux") + .replace("gcc", "cc") + .replace("g++", "c++") + } + } + } +} getTasksByName("jnigen", true).each{ it.dependsOn preJni + it.finalizedBy postJni it.dependsOn classes it.dependsOn aproj(":arc-core").getTasksByName("compileJava", true) -} \ No newline at end of file +} diff --git a/build.gradle b/build.gradle index 59d03b34f..9b89ca323 100644 --- a/build.gradle +++ b/build.gradle @@ -81,4 +81,4 @@ subprojects{ } } } -} \ No newline at end of file +} diff --git a/extensions/freetype/build.gradle b/extensions/freetype/build.gradle index d92cb25e9..d9bff4aac 100644 --- a/extensions/freetype/build.gradle +++ b/extensions/freetype/build.gradle @@ -77,11 +77,27 @@ task preJni{ } } +task fixScripts{ + doFirst{ + if(System.getProperty("os.name").equals("FreeBSD")) { + def f = file("$rootDir/extensions/freetype/jni/build-linux64.xml"); + if(f.exists()){ + f.text = f.text + .replace("linux", "freebsd") + .replace('-Ijni-headers/${jniPlatform}', "-Ijni-headers/linux") + .replace("gcc", "cc") + .replace("g++", "c++") + .replace("-Wl,-wrap,memcpy", "") + } + } + } +} + //copies files into the right locations task postJni{ doLast{ copy{ - from "libs/linux64", "libs/windows32", "libs/windows64", "libs/macosx64" + from "libs/windows32", "libs/windows64", "libs/macosx64", "libs/freebsd64" into "../../natives/natives-freetype-desktop/libs" include "**" } @@ -107,4 +123,5 @@ jnigenBuild.finalizedBy postJni getTasksByName("jnigen", true).each{ it.dependsOn preJni -} \ No newline at end of file + it.finalizedBy fixScripts +}