From e28712555d87c10965a8dcd46da6800a4f2e6326 Mon Sep 17 00:00:00 2001 From: Grant Limberg Date: Mon, 4 May 2015 20:04:44 -0700 Subject: build & package libZeroTierOneSDK.jnilib on Mac oS Signed-off-by: Grant Limberg --- java/CMakeLists.txt | 13 +++++++++++++ java/build.xml | 20 +++++++++++++++++++- java/src/com/zerotier/sdk/Node.java | 4 +++- 3 files changed, 35 insertions(+), 2 deletions(-) (limited to 'java') diff --git a/java/CMakeLists.txt b/java/CMakeLists.txt index 81345f1d..9c06ce45 100644 --- a/java/CMakeLists.txt +++ b/java/CMakeLists.txt @@ -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) diff --git a/java/build.xml b/java/build.xml index 5668894e..0f1b311a 100644 --- a/java/build.xml +++ b/java/build.xml @@ -5,11 +5,16 @@ + + + + + @@ -72,7 +77,20 @@ overwrite="true"/> - + + + + + + + + + + + + diff --git a/java/src/com/zerotier/sdk/Node.java b/java/src/com/zerotier/sdk/Node.java index 8484ab59..c7581ca4 100644 --- a/java/src/com/zerotier/sdk/Node.java +++ b/java/src/com/zerotier/sdk/Node.java @@ -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(); -- cgit v1.2.3