CMakeLists.txt 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. # CMake build script for libzerotiercore.a
  2. cmake_minimum_required (VERSION 2.8)
  3. project (zerotiercore)
  4. set (PROJ_DIR ${PROJECT_SOURCE_DIR})
  5. set (ZT_DEFS -std=c++11)
  6. file(GLOB core_src_glob ${PROJ_DIR}/node/*.cpp)
  7. add_library(zerotiercore STATIC ${core_src_glob})
  8. target_compile_options(zerotiercore PRIVATE ${ZT_DEFS})
  9. # Build the Rust embedding tool
  10. add_custom_command(
  11. OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/ci/scripts/embed_json
  12. COMMAND rustc ${CMAKE_CURRENT_SOURCE_DIR}/ci/scripts/embed_json.rs -o ${CMAKE_CURRENT_SOURCE_DIR}/ci/scripts/embed_json
  13. DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/ci/scripts/embed_json.rs
  14. COMMENT "Building Rust JSON embedding tool"
  15. )
  16. # Embed diagnostic_schema.json as a C string
  17. add_custom_command(
  18. OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/diagnostic/diagnostic_schema_embed.c
  19. COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_SOURCE_DIR}/diagnostic
  20. COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/ci/scripts/embed_json ${CMAKE_CURRENT_SOURCE_DIR}/../diagnostic/diagnostic_schema.json ${CMAKE_CURRENT_SOURCE_DIR}/diagnostic/diagnostic_schema_embed.c
  21. DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../diagnostic/diagnostic_schema.json ${CMAKE_CURRENT_SOURCE_DIR}/ci/scripts/embed_json
  22. COMMENT "Embedding diagnostic_schema.json as C string"
  23. )
  24. set(DIAGNOSTIC_SCHEMA_EMBED_SRC
  25. diagnostic/diagnostic_schema_embed.c
  26. diagnostic/diagnostic_schema_embed.h
  27. )
  28. # Add the generated source to your main target (replace <your_target> with actual target name)
  29. target_sources(zerotiercore PRIVATE
  30. ${DIAGNOSTIC_SCHEMA_EMBED_SRC}
  31. )