CMakeLists.txt 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. cmake_minimum_required(VERSION 3.2)
  2. project(ZeroTierOneJNI)
  3. find_package(Java COMPONENTS Development)
  4. message("JAVA_HOME: $ENV{JAVA_HOME}")
  5. set(Java_INCLUDE_DIRS $ENV{JAVA_HOME}/include)
  6. message("Java Include Dirs: ${Java_INCLUDE_DIRS}")
  7. if(WIN32)
  8. add_definitions(-DNOMINMAX)
  9. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc /W3 /MP")
  10. endif()
  11. set(src_files
  12. ../ext/lz4/lz4.c
  13. ../ext/json-parser/json.c
  14. ../ext/http-parser/http_parser.c
  15. ../node/C25519.cpp
  16. ../node/CertificateOfMembership.cpp
  17. ../node/Defaults.cpp
  18. ../node/Dictionary.cpp
  19. ../node/Identity.cpp
  20. ../node/IncomingPacket.cpp
  21. ../node/InetAddress.cpp
  22. ../node/Multicaster.cpp
  23. ../node/Network.cpp
  24. ../node/NetworkConfig.cpp
  25. ../node/Node.cpp
  26. ../node/OutboundMulticast.cpp
  27. ../node/Packet.cpp
  28. ../node/Peer.cpp
  29. ../node/Poly1305.cpp
  30. ../node/Salsa20.cpp
  31. ../node/SelfAwareness.cpp
  32. ../node/SHA512.cpp
  33. ../node/Switch.cpp
  34. ../node/Topology.cpp
  35. ../node/Utils.cpp
  36. ../osdep/Http.cpp
  37. ../osdep/OSUtils.cpp
  38. jni/com_zerotierone_sdk_Node.cpp
  39. jni/ZT1_jniutils.cpp
  40. )
  41. set(include_dirs
  42. ${CMAKE_CURRENT_SOURCE_DIR}/../include/
  43. ${Java_INCLUDE_DIRS})
  44. if(WIN32)
  45. set(include_dirs
  46. ${include_dirs}
  47. ${Java_INCLUDE_DIRS}/win32)
  48. endif()
  49. include_directories(
  50. ${include_dirs}
  51. )
  52. add_library(${PROJECT_NAME} SHARED ${src_files})
  53. set(link_libs )
  54. if(WIN32)
  55. set(link_libs
  56. wsock32
  57. ws2_32
  58. )
  59. endif()
  60. target_link_libraries(${PROJECT_NAME} ${link_libs})