Files
usercontainer/pam-module/CMakeLists.txt

38 lines
1.6 KiB
CMake

cmake_minimum_required(VERSION 3.15)
project(pam_usercontainer LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
add_library(pam_usercontainer SHARED src/pam_module.cpp src/auth_client.cpp)
set_target_properties(pam_usercontainer PROPERTIES
OUTPUT_NAME "pam_usercontainer"
PREFIX ""
)
target_compile_options(pam_usercontainer PRIVATE
$<$<CXX_COMPILER_ID:GNU>:-Wall -Wextra>
$<$<CXX_COMPILER_ID:Clang>:-Wall -Wextra>
)
target_include_directories(pam_usercontainer PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include)
# Link to Rust staticlib
add_dependencies(pam_usercontainer rust_backend_build)
set(RUST_STATICLIB "${CMAKE_BINARY_DIR}/rust-backend/target/release/librust_backend.a")
target_link_libraries(pam_usercontainer PRIVATE ${RUST_STATICLIB})
# Install target
install(TARGETS pam_usercontainer DESTINATION lib/security)
# Examples: small programs demonstrating logging wrappers
set_source_files_properties(examples/logging_example.c PROPERTIES LANGUAGE CXX)
add_executable(logging_example_c examples/logging_example.c)
target_include_directories(logging_example_c PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include)
add_dependencies(logging_example_c rust_backend_build)
target_link_libraries(logging_example_c PRIVATE ${RUST_STATICLIB})
add_executable(logging_example_cpp examples/logging_example.cpp)
target_include_directories(logging_example_cpp PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include)
add_dependencies(logging_example_cpp rust_backend_build)
target_link_libraries(logging_example_cpp PRIVATE ${RUST_STATICLIB})