Improve Central API

This commit is contained in:
Joseph Henry
2021-03-14 01:01:04 -08:00
parent 26454d2939
commit c220bb7d2f
6 changed files with 220 additions and 175 deletions

View File

@@ -87,18 +87,19 @@ include_directories(${LWIP_PORT_DIR}/include)
# -----------------------------------------------------------------------------
# Defaults
set(ALLOW_INSTALL_TARGET TRUE)
set(BUILD_STATIC_LIB TRUE)
set(BUILD_SHARED_LIB TRUE)
set(ALLOW_INSTALL_TARGET TRUE)
set(BUILD_STATIC_LIB TRUE)
set(BUILD_SHARED_LIB TRUE)
set(BUILD_HOST_SELFTEST TRUE)
# C# language bindings (libzt.dll/dylib/so)
if (ZTS_ENABLE_PINVOKE)
# Features
set(BUILD_STATIC_LIB FALSE)
set(BUILD_SHARED_LIB TRUE)
set(BUILD_EXAMPLES FALSE)
set(ALLOW_INSTALL_TARGET FALSE)
set(BUILD_HOST_SELFTEST FALSE)
set(BUILD_STATIC_LIB FALSE)
set(BUILD_SHARED_LIB TRUE)
set(BUILD_EXAMPLES FALSE)
set(ALLOW_INSTALL_TARGET FALSE)
set(BUILD_HOST_SELFTEST FALSE)
# Sources and libraries
set(ZTS_SWIG_WRAPPER_FILE ${LIBZT_SRC_DIR}/bindings/csharp/*.cpp)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DZTS_ENABLE_PINVOKE=1")
@@ -107,14 +108,14 @@ endif()
# Python language bindings (_libzt.so)
if (ZTS_ENABLE_PYTHON)
# Features
set(ZTS_ENABLE_PYTHON TRUE)
#set(ZTS_ENABLE_STATS FALSE)
set(ZTS_ENABLE_PYTHON TRUE)
#set(ZTS_ENABLE_STATS FALSE)
# Targets
set(BUILD_STATIC_LIB FALSE)
set(BUILD_SHARED_LIB TRUE)
set(BUILD_EXAMPLES FALSE)
set(ALLOW_INSTALL_TARGET FALSE)
set(BUILD_HOST_SELFTEST FALSE)
set(BUILD_STATIC_LIB FALSE)
set(BUILD_SHARED_LIB TRUE)
set(BUILD_EXAMPLES FALSE)
set(ALLOW_INSTALL_TARGET FALSE)
set(BUILD_HOST_SELFTEST FALSE)
# Sources and libraries
find_package(PythonLibs REQUIRED)
include_directories(${PYTHON_INCLUDE_DIRS})
@@ -124,51 +125,52 @@ endif()
# Java language bindings
if (ZTS_ENABLE_JAVA)
set(BUILD_STATIC_LIB FALSE)
set(BUILD_SHARED_LIB TRUE)
set(BUILD_HOST_EXAMPLES FALSE)
set(ALLOW_INSTALL_TARGET FALSE)
set(BUILD_HOST_SELFTEST FALSE)
set(ZTS_ENABLE_STATS FALSE)
set(BUILD_STATIC_LIB FALSE)
set(BUILD_SHARED_LIB TRUE)
set(BUILD_HOST_EXAMPLES FALSE)
set(ALLOW_INSTALL_TARGET FALSE)
set(BUILD_HOST_SELFTEST FALSE)
set(ZTS_ENABLE_STATS FALSE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DZTS_ENABLE_JAVA=1")
endif()
# All native targets for this host
if(BUILD_HOST)
set(BUILD_STATIC_LIB TRUE)
set(BUILD_SHARED_LIB TRUE)
set(BUILD_HOST_EXAMPLES TRUE)
set(ALLOW_INSTALL_TARGET TRUE)
set(BUILD_HOST_SELFTEST TRUE)
set(ZTS_ENABLE_STATS TRUE)
set(BUILD_STATIC_LIB TRUE)
set(BUILD_SHARED_LIB TRUE)
set(BUILD_HOST_EXAMPLES TRUE)
set(ALLOW_INSTALL_TARGET TRUE)
set(BUILD_HOST_SELFTEST FALSE)
set(ZTS_ENABLE_STATS TRUE)
set(ZTS_ENABLE_CENTRAL_API FALSE)
endif()
# CI
if(BUILD_HOST_SELFTEST_ONLY)
set(BUILD_STATIC_LIB TRUE)
set(BUILD_SHARED_LIB FALSE)
set(BUILD_HOST_EXAMPLES FALSE)
set(ALLOW_INSTALL_TARGET FALSE)
set(BUILD_HOST_SELFTEST TRUE)
set(ZTS_ENABLE_STATS FALSE)
set(BUILD_STATIC_LIB TRUE)
set(BUILD_SHARED_LIB FALSE)
set(BUILD_HOST_EXAMPLES FALSE)
set(ALLOW_INSTALL_TARGET FALSE)
set(BUILD_HOST_SELFTEST TRUE)
set(ZTS_ENABLE_STATS FALSE)
endif()
# Android AAR containing libzt.so
if(${CMAKE_SYSTEM_NAME} MATCHES "Android")
set(BUILD_ANDROID TRUE)
set(BUILD_STATIC_LIB FALSE)
set(BUILD_SHARED_LIB TRUE)
set(BUILD_SELFTEST FALSE)
set(BUILD_EXAMPLES FALSE)
set(ALLOW_INSTALL_TARGET FALSE)
set(BUILD_ANDROID TRUE)
set(BUILD_STATIC_LIB FALSE)
set(BUILD_SHARED_LIB TRUE)
set(BUILD_SELFTEST FALSE)
set(BUILD_EXAMPLES FALSE)
set(ALLOW_INSTALL_TARGET FALSE)
endif()
if(BUILD_MACOS_FRAMEWORK)
set(BUILD_STATIC_LIB TRUE)
set(BUILD_SHARED_LIB TRUE)
set(BUILD_SELFTEST FALSE)
set(BUILD_EXAMPLES FALSE)
set(ALLOW_INSTALL_TARGET FALSE)
set(BUILD_STATIC_LIB TRUE)
set(BUILD_SHARED_LIB TRUE)
set(BUILD_SELFTEST FALSE)
set(BUILD_EXAMPLES FALSE)
set(ALLOW_INSTALL_TARGET FALSE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DOMIT_JSON_SUPPORT=1")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DOMIT_JSON_SUPPORT=1")
set(CMAKE_XCODE_ATTRIBUTE_ARCHS "$(ARCHS_STANDARD)")
@@ -178,11 +180,11 @@ if(BUILD_MACOS_FRAMEWORK)
endif()
if(BUILD_IOS_FRAMEWORK)
set(BUILD_STATIC_LIB TRUE)
set(BUILD_SHARED_LIB TRUE)
set(BUILD_SELFTEST FALSE)
set(BUILD_EXAMPLES FALSE)
set(ALLOW_INSTALL_TARGET FALSE)
set(BUILD_STATIC_LIB TRUE)
set(BUILD_SHARED_LIB TRUE)
set(BUILD_SELFTEST FALSE)
set(BUILD_EXAMPLES FALSE)
set(ALLOW_INSTALL_TARGET FALSE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DOMIT_JSON_SUPPORT=1")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DOMIT_JSON_SUPPORT=1")
set(DEVROOT
@@ -204,10 +206,24 @@ if(BUILD_IOS_FRAMEWORK)
endif()
endif()
# -----------------------------------------------------------------------------
# | TESTING (and) FEATURE FLAGS |
# -----------------------------------------------------------------------------
if(BUILD_HOST_SELFTEST)
set(ZTS_ENABLE_STATS TRUE)
set(ZTS_ENABLE_CENTRAL_API TRUE)
endif()
# Enable specific features (eventually these will be enabled by default)
if(ZTS_ENABLE_STATS)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DZTS_ENABLE_STATS=1")
endif()
if(ZTS_ENABLE_CENTRAL_API)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DZTS_ENABLE_CENTRAL_API=1")
endif()
# -----------------------------------------------------------------------------
# | HACKS TO GET THIS TO WORK ON WINDOWS |
# -----------------------------------------------------------------------------
@@ -279,7 +295,7 @@ if(BUILD_HOST_EXAMPLES)
${PROJ_DIR}/examples/cpp/keymanagement.cpp)
target_link_libraries(keymanagement ${STATIC_LIB_NAME})
if(CENTRAL_API)
if(ZTS_ENABLE_CENTRAL_API)
add_executable(centralapi ${PROJ_DIR}/examples/cpp/centralapi.cpp)
target_link_libraries(centralapi ${STATIC_LIB_NAME})
endif()
@@ -378,7 +394,7 @@ endif()
# | OPTIONAL FEATURES |
# -----------------------------------------------------------------------------
if(CENTRAL_API)
if(ZTS_ENABLE_CENTRAL_API)
set(requiredlibs)
find_package(CURL)
if(CURL_FOUND)
@@ -605,12 +621,13 @@ if(BUILD_STATIC_LIB)
if(BUILD_WIN)
target_link_libraries(${STATIC_LIB_NAME} ${ws2_32_LIBRARY_PATH}
${shlwapi_LIBRARY_PATH} ${iphlpapi_LIBRARY_PATH})
endif() # BUILD_STATIC_LIB
endif()
endif()
if(ZTS_ENABLE_CENTRAL_API)
target_link_libraries(${STATIC_LIB_NAME} ${CURL_LIBRARIES})
endif()
endif() # BUILD_STATIC_LIB
if(CENTRAL_API)
# target_link_libraries(${STATIC_LIB_NAME} ${CURL_LIBRARIES})
endif()
@@ -642,7 +659,7 @@ if(BUILD_SHARED_LIB)
natpmp_pic
miniupnpc_pic)
if(CENTRAL_API)
if(ZTS_ENABLE_CENTRAL_API)
target_link_libraries(${DYNAMIC_LIB_NAME} ${CURL_LIBRARIES})
endif()
@@ -651,6 +668,9 @@ if(BUILD_SHARED_LIB)
if(BUILD_ANDROID)
target_link_libraries(${DYNAMIC_LIB_NAME} android log)
endif()
if(ZTS_ENABLE_CENTRAL_API)
target_link_libraries(${DYNAMIC_LIB_NAME} ${CURL_LIBRARIES})
endif()
endif() # BUILD_SHARED_LIB
# xcode framework