mirror of
https://github.com/hpd840321/craftlabs-authorization-sdk.git
synced 2026-06-09 10:00:30 +08:00
feat: add native/Java auth SDK, docs, CI, and examples
Made-with: Cursor
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user