rublon-ssh/PAM/ssh/CMakeLists.txt
2025-05-30 11:21:27 +02:00

145 lines
4.8 KiB
CMake
Executable File

include(FetchContent)
set(INC
${CMAKE_CURRENT_SOURCE_DIR}/include/rublon/authentication_step_interface.hpp
${CMAKE_CURRENT_SOURCE_DIR}/include/rublon/bits.hpp
${CMAKE_CURRENT_SOURCE_DIR}/include/rublon/check_application.hpp
${CMAKE_CURRENT_SOURCE_DIR}/include/rublon/configuration.hpp
${CMAKE_CURRENT_SOURCE_DIR}/include/rublon/core_handler.hpp
${CMAKE_CURRENT_SOURCE_DIR}/include/rublon/core_handler_interface.hpp
${CMAKE_CURRENT_SOURCE_DIR}/include/rublon/curl.hpp
${CMAKE_CURRENT_SOURCE_DIR}/include/rublon/error.hpp
${CMAKE_CURRENT_SOURCE_DIR}/include/rublon/error_handler.hpp
${CMAKE_CURRENT_SOURCE_DIR}/include/rublon/finish.hpp
${CMAKE_CURRENT_SOURCE_DIR}/include/rublon/init.hpp
${CMAKE_CURRENT_SOURCE_DIR}/include/rublon/json.hpp
${CMAKE_CURRENT_SOURCE_DIR}/include/rublon/memory.hpp
${CMAKE_CURRENT_SOURCE_DIR}/include/rublon/method/EMAIL.hpp
${CMAKE_CURRENT_SOURCE_DIR}/include/rublon/method/method_select.hpp
${CMAKE_CURRENT_SOURCE_DIR}/include/rublon/method/OTP.hpp
${CMAKE_CURRENT_SOURCE_DIR}/include/rublon/method/passcode_based_auth.hpp
${CMAKE_CURRENT_SOURCE_DIR}/include/rublon/method/PUSH.hpp
${CMAKE_CURRENT_SOURCE_DIR}/include/rublon/method/phone_call.hpp
${CMAKE_CURRENT_SOURCE_DIR}/include/rublon/method/SMS.hpp
${CMAKE_CURRENT_SOURCE_DIR}/include/rublon/method/SmsLink.hpp
${CMAKE_CURRENT_SOURCE_DIR}/include/rublon/method/websocket_based_auth.hpp
${CMAKE_CURRENT_SOURCE_DIR}/include/rublon/method/YOTP.hpp
${CMAKE_CURRENT_SOURCE_DIR}/include/rublon/non_owning_ptr.hpp
${CMAKE_CURRENT_SOURCE_DIR}/include/rublon/pam_action.hpp
${CMAKE_CURRENT_SOURCE_DIR}/include/rublon/pam.hpp
${CMAKE_CURRENT_SOURCE_DIR}/include/rublon/rublon.hpp
${CMAKE_CURRENT_SOURCE_DIR}/include/rublon/session.hpp
${CMAKE_CURRENT_SOURCE_DIR}/include/rublon/sign.hpp
${CMAKE_CURRENT_SOURCE_DIR}/include/rublon/static_string.hpp
${CMAKE_CURRENT_SOURCE_DIR}/include/rublon/std_experimental.hpp
${CMAKE_CURRENT_SOURCE_DIR}/include/rublon/std.hpp
${CMAKE_CURRENT_SOURCE_DIR}/include/rublon/stdlib.hpp
${CMAKE_CURRENT_SOURCE_DIR}/include/rublon/utils.hpp
${CMAKE_CURRENT_SOURCE_DIR}/include/rublon/websockets.hpp
)
add_library(rublon-ssh-ifc
INTERFACE
)
if(${CMAKE_VERSION} VERSION_GREATER "3.19.0")
# need to be here to show up in the IDE
add_library(rublon-ssh_ide INTERFACE ${INC})
endif()
target_include_directories(rublon-ssh-ifc
INTERFACE
extern
${CMAKE_CURRENT_LIST_DIR}/include
)
install(
FILES
${INC}
DESTINATION
${CMAKE_INSTALL_INCLUDEDIR}/rublon
COMPONENT
PAM-DEV
)
set(LWS_STATIC_PIC ON)
set(LWS_WITH_SHARED OFF)
set(LWS_ROLE_RAW_FILE OFF)
set(LWS_ROLE_DBUS OFF)
set(LWS_WITHOUT_DAEMONIZE ON)
set(LWS_WITHOUT_SERVER ON)
set(LWS_WITHOUT_TESTAPPS ON)
set(LWS_WITHOUT_TEST_CLIENT ON)
set(LWS_WITHOUT_TEST_PING ON)
set(LWS_WITHOUT_TEST_SERVER ON)
set(LWS_WITHOUT_TEST_SERVER_EXTPOLL ON)
set(LWS_UNIX_SOCK OFF)
set(LWS_WITH_DIR OFF)
set(LWS_WITH_FILE_OPS OFF)
set(LWS_FOR_GITOHASHI OFF)
set(LWS_WITH_HTTP2 OFF)
set(LWS_WITH_HTTP_BASIC_AUTH OFF)
set(LWS_WITH_JPEG OFF)
set(LWS_WITH_JSONRPC OFF)
set(LWS_WITH_LEJP OFF)
set(LWS_WITH_LEJP_CONF OFF)
set(LWS_WITH_CONMON OFF)
set(LWS_WITH_CACHE_NSCOOKIEJAR OFF)
set(LWS_WITH_CBOR OFF)
set(LWS_WITH_CBOR_FLOAT OFF)
set(LWS_WITH_GZINFLATE OFF)
set(LWS_WITH_SECURE_STREAMS OFF)
set(LWS_WITH_WOL OFF)
set(LWS_WITH_UPNG OFF)
set(LWS_WITH_UDP OFF)
set(LWS_WITH_HTTP_STREAM_COMPRESSION OFF)
set(LWS_WITH_HTTP_BROTLI OFF)
set(LWS_WITH_ZLIB OFF)
set(RAPIDJSON_BUILD_DOC OFF CACHE BOOL "" FORCE)
set(RAPIDJSON_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
set(RAPIDJSON_BUILD_TESTS OFF CACHE BOOL "" FORCE)
set(RAPIDJSON_BUILD_CXX17 ON CACHE BOOL "" FORCE)
cmake_policy(SET CMP0077 NEW)
if(${CMAKE_VERSION} VERSION_GREATER "3.23.0")
cmake_policy(SET CMP0135 NEW)
endif()
FetchContent_Declare(
libwebsockets
URL https://github.com/warmcat/libwebsockets/archive/refs/tags/v4.3.3.zip
URL_HASH MD5=96ad80a3283825a9af6a2d9d1acbd132
)
FetchContent_MakeAvailable(libwebsockets)
set(RAPIDJSON_BUILD_DOC OFF)
set(RAPIDJSON_BUILD_EXAMPLES OFF)
set(RAPIDJSON_BUILD_TESTS OFF)
set(RAPIDJSON_HAS_STDSTRING OFF)
FetchContent_Declare(
RapidJSON
URL https://github.com/Tencent/rapidjson/archive/refs/tags/v1.1.0.zip
URL_HASH MD5=ceb1cf16e693a3170c173dc040a9d2bd
# PATCH_COMMAND patch -p1 < ${CMAKE_CURRENT_LIST_DIR}/patches/rapidjson.patch
)
if(NOT RapidJSON_POPULATED)
FetchContent_Populate(RapidJSON)
add_subdirectory(${rapidjson_SOURCE_DIR} ${rapidjson_BINARY_DIR})
endif()
add_subdirectory(lib)
add_subdirectory(bin)
# if(${ENABLE_TESTS})
# add_subdirectory(tests)
# endif()