diff --git a/CMakeLists.txt b/CMakeLists.txt index 6c51793db..4ee98633e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,6 +42,8 @@ if(BUILD_CENTRAL_CONTROLLER) pkg_check_modules(hiredis REQUIRED IMPORTED_TARGET hiredis) add_subdirectory(controller/thirdparty/redis-plus-plus-1.1.1) + set(redispp_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/controller/thirdparty/redis-plus-plus-1.1.1/src/sw) + set(redispp_STATIC_LIB redispp_static) endif(BUILD_CENTRAL_CONTROLLER) if(CMAKE_BUILD_TYPE STREQUAL "Debug") @@ -100,8 +102,10 @@ if ( add_compile_options(-maes -mrdrnd -mpclmul -msse -msse2 -mssse3) endif() +set(GO_BUILD_TAGS) if(BUILD_CENTRAL_CONTROLLER) add_definitions(-DZT_CONTROLLER_USE_LIBPQ=1) + set(GO_BUILD_TAGS -tags central) endif(BUILD_CENTRAL_CONTROLLER) add_subdirectory(core) @@ -118,7 +122,7 @@ set( add_custom_target(zerotier ALL WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} - COMMAND rm -f ./build/zerotier && go build -trimpath -ldflags -s -buildmode=pie -o ./build/zerotier cmd/zerotier/zerotier.go + COMMAND rm -f ./build/zerotier && go build ${GO_BUILD_TAGS} -trimpath -ldflags -s -buildmode=pie -o ./build/zerotier cmd/zerotier/zerotier.go BYPRODUCTS zerotier ) add_dependencies(zerotier zt_osdep zt_core zt_controller zt_service_io_core) diff --git a/controller/CMakeLists.txt b/controller/CMakeLists.txt index 7b9cbd1c8..dc1cd0671 100644 --- a/controller/CMakeLists.txt +++ b/controller/CMakeLists.txt @@ -28,9 +28,12 @@ if(BUILD_CENTRAL_CONTROLLER) set(ctl_hdr ${ctl_hdr} PostgreSQL.hpp) endif(BUILD_CENTRAL_CONTROLLER) -add_library(${PROJECT_NAME} STATIC ${ctl_src} ${ctl_hdr} ${PostgreSQL_LIBRARIES} ${STATIC_LIB} ${hiredis_libraries}) +add_library(${PROJECT_NAME} STATIC ${ctl_src} ${ctl_hdr} ${PostgreSQL_LIBRARIES} ${hiredis_libraries}) target_include_directories(${PROJECT_NAME} - PUBLIC ${hiredis_INCLUDE_DIRS}/../ ${CMAKE_CURRENT_LIST_DIR}/thirdparty/redis-plus-plus-1.1.1/src/sw ${PostgreSQL_INCLUDE_DIRS} + PUBLIC ${hiredis_INCLUDE_DIRS}/../ ${redispp_INCLUDE_DIRS} ${PostgreSQL_INCLUDE_DIRS} PRIVATE ${CMAKE_BINARY_DIR}/core) +if(BUILD_CENTRAL_CONTROLLER) + add_dependencies(${PROJECT_NAME} redispp_static) +endif(BUILD_CENTRAL_CONTROLLER) target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_11) diff --git a/controller/thirdparty/redis-plus-plus-1.1.1/CMakeLists.txt b/controller/thirdparty/redis-plus-plus-1.1.1/CMakeLists.txt index ca41bd481..4fe9b051c 100644 --- a/controller/thirdparty/redis-plus-plus-1.1.1/CMakeLists.txt +++ b/controller/thirdparty/redis-plus-plus-1.1.1/CMakeLists.txt @@ -14,33 +14,33 @@ set(PROJECT_SOURCE_DIR ${PROJECT_SOURCE_DIR}/src/sw/redis++) file(GLOB PROJECT_SOURCE_FILES "${PROJECT_SOURCE_DIR}/*.cpp") -set(STATIC_LIB static) -set(SHARED_LIB shared) +set(STATIC_LIB redispp_static) +# set(SHARED_LIB shared) add_library(${STATIC_LIB} STATIC ${PROJECT_SOURCE_FILES}) -add_library(${SHARED_LIB} SHARED ${PROJECT_SOURCE_FILES}) +# add_library(${SHARED_LIB} SHARED ${PROJECT_SOURCE_FILES}) # hiredis dependency find_path(HIREDIS_HEADER hiredis) target_include_directories(${STATIC_LIB} PUBLIC ${HIREDIS_HEADER}) -target_include_directories(${SHARED_LIB} PUBLIC ${HIREDIS_HEADER}) +# target_include_directories(${SHARED_LIB} PUBLIC ${HIREDIS_HEADER}) find_library(HIREDIS_LIB hiredis) -target_link_libraries(${SHARED_LIB} ${HIREDIS_LIB}) +# target_link_libraries(${SHARED_LIB} ${HIREDIS_LIB}) set_target_properties(${STATIC_LIB} PROPERTIES OUTPUT_NAME ${PROJECT_NAME}) -set_target_properties(${SHARED_LIB} PROPERTIES OUTPUT_NAME ${PROJECT_NAME}) +# set_target_properties(${SHARED_LIB} PROPERTIES OUTPUT_NAME ${PROJECT_NAME}) set_target_properties(${STATIC_LIB} PROPERTIES CLEAN_DIRECT_OUTPUT 1) -set_target_properties(${SHARED_LIB} PROPERTIES CLEAN_DIRECT_OUTPUT 1) +# set_target_properties(${SHARED_LIB} PROPERTIES CLEAN_DIRECT_OUTPUT 1) # Install static lib. install(TARGETS ${STATIC_LIB} ARCHIVE DESTINATION lib) # Install shared lib. -install(TARGETS ${SHARED_LIB} - LIBRARY DESTINATION lib) +# install(TARGETS ${SHARED_LIB} +# LIBRARY DESTINATION lib) #Install headers. set(HEADER_PATH "sw/redis++") diff --git a/pkg/zerotier/node.go b/pkg/zerotier/node.go index e41e6f4d0..c5a03f363 100644 --- a/pkg/zerotier/node.go +++ b/pkg/zerotier/node.go @@ -14,8 +14,10 @@ package zerotier // #cgo CFLAGS: -O3 -// #cgo darwin LDFLAGS: ${SRCDIR}/../../build/serviceiocore/libzt_service_io_core.a ${SRCDIR}/../../build/core/libzt_core.a ${SRCDIR}/../../build/osdep/libzt_osdep.a -lc++ -lpthread -// #cgo linux android LDFLAGS: ${SRCDIR}/../../build/serviceiocore/libzt_service_io_core.a ${SRCDIR}/../../build/core/libzt_core.a ${SRCDIR}/../../build/osdep/libzt_osdep.a -lstdc++ -lpthread -lm +// #cgo darwin,!central LDFLAGS: ${SRCDIR}/../../build/serviceiocore/libzt_service_io_core.a ${SRCDIR}/../../build/core/libzt_core.a ${SRCDIR}/../../build/osdep/libzt_osdep.a ${SRCDIR}/../../build/controller/libzt_controller.a -lc++ -lpthread +// #cgo darwin,central LDFLAGS: ${SRCDIR}/../../build/serviceiocore/libzt_service_io_core.a ${SRCDIR}/../../build/core/libzt_core.a ${SRCDIR}/../../build/osdep/libzt_osdep.a ${SRCDIR}/../../build/controller/libzt_controller.a ${SRCDIR}/../../build/lib/libredis++.a -lhiredis -lpq -lc++ -lpthread +// #cgo linux,!central android,!central LDFLAGS: ${SRCDIR}/../../build/serviceiocore/libzt_service_io_core.a ${SRCDIR}/../../build/core/libzt_core.a ${SRCDIR}/../../build/osdep/libzt_osdep.a ${SRCDIR}/../../build/controller/libzt_controller.a -lstdc++ -lpthread -lm +// #cgo linux,central android,central LDFLAGS: ${SRCDIR}/../../build/serviceiocore/libzt_service_io_core.a ${SRCDIR}/../../build/core/libzt_core.a ${SRCDIR}/../../build/osdep/libzt_osdep.a ${SRCDIR}/../../build/controller/libzt_controller.a ${SRCDIR}/../../build/lib/libredis++.a -lhiredis -lpq -lstdc++ -lpthread -lm // #include "../../serviceiocore/GoGlue.h" import "C"