build & package libZeroTierOneSDK.jnilib on Mac oS

Signed-off-by: Grant Limberg <glimberg@gmail.com>
This commit is contained in:
Grant Limberg 2015-05-04 20:04:44 -07:00
parent af66f14761
commit e28712555d
4 changed files with 37 additions and 2 deletions

2
.gitignore vendored
View File

@ -46,3 +46,5 @@ java/doc/
windows/ZeroTierOne/Debug/
java/build_win64/
java/build_win32/
/java/mac32_64/

View File

@ -5,7 +5,13 @@ project(ZeroTierOneJNI)
find_package(Java COMPONENTS Development)
message("JAVA_HOME: $ENV{JAVA_HOME}")
if(WIN32)
set(Java_INCLUDE_DIRS $ENV{JAVA_HOME}/include)
endif()
if(APPLE)
set(Java_INCLUDE_DIRS "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks/JavaVM.framework/Headers")
endif()
message("Java Include Dirs: ${Java_INCLUDE_DIRS}")
@ -14,6 +20,11 @@ if(WIN32)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc /W3 /MP")
endif()
if(APPLE)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -arch i386 -arch x86_64 -Wall -O3 -flto -fPIE -fvectorize -fstack-protector -mmacosx-version-min=10.7 -Wno-unused-private-field")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_C_FLAGS} -fno-rtti")
endif()
set(src_files
../ext/lz4/lz4.c
../ext/json-parser/json.c
@ -62,6 +73,8 @@ include_directories(
add_library(${PROJECT_NAME} SHARED ${src_files})
set_target_properties(${PROJECT_NAME} PROPERTIES SUFFIX ".jnilib")
set(link_libs )
if(WIN32)

View File

@ -5,11 +5,16 @@
<os family="windows"/>
</condition>
<condition property="isMac">
<os family="mac"/>
</condition>
<target name="clean">
<delete dir="bin" failonerror="false"/>
<delete dir="classes" failonerror="false"/>
<delete dir="build_win32" failonerror="false"/>
<delete dir="build_win64" failonerror="false"/>
<delete dir="mac32_64" failonerror="false"/>
<delete dir="libs" failonerror="false"/>
<delete dir="obj" failonerror="false"/>
</target>
@ -72,7 +77,20 @@
overwrite="true"/>
</target>
<target name="build" depends="build_java,build_android,windows">
<target name="mac" if="isMac">
<mkdir dir="mac32_64"/>
<exec dir="mac32_64/" executable="cmake" failonerror="true">
<arg line=".. -DCMAKE_BUILD_TYPE=Release"/>
</exec>
<exec dir="mac32_64/" executable="cmake" failonerror="true">
<arg line="--build . --config Release"/>
</exec>
<copy file="mac32_64/libZeroTierOneJNI.jnilib"
tofile="classes/lib/libZeroTierOneJNI.jnilib"
overwrite="true"/>
</target>
<target name="build" depends="build_java,build_android,windows,mac">
<jar destfile="bin/ZeroTierOneSDK.jar" basedir="classes"/>
</target>

View File

@ -47,8 +47,10 @@ public class Node {
} else {
NativeUtils.loadLibraryFromJar("/lib/ZeroTierOneJNI_win32.dll");
}
} else if(System.getProperty("os.name").startsWith("Mac")) {
NativeUtils.loadLibraryFromJar("/lib/libZeroTierOneJNI.jnilib");
} else {
// TODO: Mac
// TODO: Linux
}
} catch (IOException ioe) {
ioe.printStackTrace();