You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
91 lines
2.1 KiB
91 lines
2.1 KiB
cmake_minimum_required(VERSION 3.2) |
|
|
|
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}") |
|
|
|
if(WIN32) |
|
add_definitions(-DNOMINMAX) |
|
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 |
|
../ext/http-parser/http_parser.c |
|
../node/C25519.cpp |
|
../node/CertificateOfMembership.cpp |
|
../node/Defaults.cpp |
|
../node/Dictionary.cpp |
|
../node/Identity.cpp |
|
../node/IncomingPacket.cpp |
|
../node/InetAddress.cpp |
|
../node/Multicaster.cpp |
|
../node/Network.cpp |
|
../node/NetworkConfig.cpp |
|
../node/Node.cpp |
|
../node/OutboundMulticast.cpp |
|
../node/Packet.cpp |
|
../node/Peer.cpp |
|
../node/Poly1305.cpp |
|
../node/Salsa20.cpp |
|
../node/SelfAwareness.cpp |
|
../node/SHA512.cpp |
|
../node/Switch.cpp |
|
../node/Topology.cpp |
|
../node/Utils.cpp |
|
../osdep/Http.cpp |
|
../osdep/OSUtils.cpp |
|
jni/com_zerotierone_sdk_Node.cpp |
|
jni/ZT_jniutils.cpp |
|
jni/ZT_jnicache.cpp |
|
) |
|
|
|
set(include_dirs |
|
${CMAKE_CURRENT_SOURCE_DIR}/../include/ |
|
${CMAKE_CURRENT_SOURCE_DIR}/../node/ |
|
${Java_INCLUDE_DIRS}) |
|
|
|
if(WIN32) |
|
set(include_dirs |
|
${include_dirs} |
|
${Java_INCLUDE_DIRS}/win32) |
|
endif() |
|
|
|
include_directories( |
|
${include_dirs} |
|
) |
|
|
|
add_library(${PROJECT_NAME} SHARED ${src_files}) |
|
|
|
if(APPLE) |
|
set_target_properties(${PROJECT_NAME} PROPERTIES SUFFIX ".jnilib") |
|
endif() |
|
|
|
set(link_libs ) |
|
|
|
if(WIN32) |
|
set(link_libs |
|
wsock32 |
|
ws2_32 |
|
|
|
) |
|
endif() |
|
|
|
target_link_libraries(${PROJECT_NAME} ${link_libs}) |