mirror of
https://github.com/hpd840321/craftlabs-authorization-sdk.git
synced 2026-06-09 01:50:30 +08:00
3894315759
Made-with: Cursor
59 lines
2.0 KiB
CMake
59 lines
2.0 KiB
CMake
cmake_minimum_required(VERSION 3.16)
|
|
project(craftlabs_auth_bitanswer LANGUAGES C CXX)
|
|
|
|
set(CMAKE_C_STANDARD 11)
|
|
set(CMAKE_C_STANDARD_REQUIRED ON)
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
set(CRAFTLABS_AUTH_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
|
|
|
|
option(CRAFTLABS_BUILD_JNI "Build JNI bridge (requires JDK)" ON)
|
|
option(CRAFTLABS_BUILD_TESTS "Build native smoke tests" ON)
|
|
|
|
set(CRAFTLABS_AUTH_CORE_SOURCES
|
|
"${CRAFTLABS_AUTH_SRC_DIR}/src/craftlabs_auth.cpp"
|
|
"${CRAFTLABS_AUTH_SRC_DIR}/src/bitanswer/bitanswer_adapter.cpp"
|
|
"${CRAFTLABS_AUTH_SRC_DIR}/src/selfhosted/http_client.cpp"
|
|
"${CRAFTLABS_AUTH_SRC_DIR}/src/selfhosted/selfhosted_adapter.cpp"
|
|
)
|
|
|
|
if(CRAFTLABS_BUILD_JNI)
|
|
find_package(JNI REQUIRED)
|
|
list(APPEND CRAFTLABS_AUTH_CORE_SOURCES
|
|
"${CRAFTLABS_AUTH_SRC_DIR}/src/jni/jni_bridge.cpp")
|
|
endif()
|
|
|
|
add_library(craftlabs_auth_bitanswer SHARED ${CRAFTLABS_AUTH_CORE_SOURCES})
|
|
|
|
target_include_directories(craftlabs_auth_bitanswer
|
|
PUBLIC
|
|
"${CRAFTLABS_AUTH_SRC_DIR}/include"
|
|
PRIVATE
|
|
"${CRAFTLABS_AUTH_SRC_DIR}/src"
|
|
)
|
|
|
|
if(CRAFTLABS_BUILD_JNI)
|
|
target_include_directories(craftlabs_auth_bitanswer PRIVATE ${JNI_INCLUDE_DIRS})
|
|
endif()
|
|
|
|
if(WIN32)
|
|
target_compile_definitions(craftlabs_auth_bitanswer PRIVATE CRAFTLABS_AUTH_PLATFORM_WINDOWS=1)
|
|
elseif(APPLE)
|
|
target_compile_definitions(craftlabs_auth_bitanswer PRIVATE CRAFTLABS_AUTH_PLATFORM_MACOS=1)
|
|
else()
|
|
target_compile_definitions(craftlabs_auth_bitanswer PRIVATE CRAFTLABS_AUTH_PLATFORM_LINUX=1)
|
|
endif()
|
|
|
|
if(CRAFTLABS_BUILD_TESTS)
|
|
enable_testing()
|
|
add_executable(craftlabs_auth_smoke
|
|
"${CRAFTLABS_AUTH_SRC_DIR}/tests/smoke_test.cpp")
|
|
target_link_libraries(craftlabs_auth_smoke PRIVATE craftlabs_auth_bitanswer)
|
|
target_include_directories(craftlabs_auth_smoke PRIVATE
|
|
"${CRAFTLABS_AUTH_SRC_DIR}/include")
|
|
set_target_properties(craftlabs_auth_smoke PROPERTIES
|
|
BUILD_RPATH "$<TARGET_FILE_DIR:craftlabs_auth_bitanswer>")
|
|
add_test(NAME craftlabs_auth_smoke COMMAND craftlabs_auth_smoke)
|
|
endif()
|