# Third-party dependencies # These can be added as git submodules or fetched via FetchContent include(FetchContent) # JSON library (nlohmann/json) FetchContent_Declare( nlohmann_json GIT_REPOSITORY https://github.com/nlohmann/json.git GIT_TAG v3.11.3 ) FetchContent_MakeAvailable(nlohmann_json) # Argon2 password hashing FetchContent_Declare( argon2 GIT_REPOSITORY https://github.com/P-H-C/phc-winner-argon2.git GIT_TAG 20190702 ) FetchContent_GetProperties(argon2) if(NOT argon2_POPULATED) FetchContent_Populate(argon2) # Build argon2 as a C static library (required for the C implementation) add_library(argon2_lib STATIC ${argon2_SOURCE_DIR}/src/argon2.c ${argon2_SOURCE_DIR}/src/core.c ${argon2_SOURCE_DIR}/src/blake2/blake2b.c ${argon2_SOURCE_DIR}/src/thread.c ${argon2_SOURCE_DIR}/src/encoding.c ${argon2_SOURCE_DIR}/src/opt.c ) # Disable Qt AUTOMOC/UIC/RCC for this library set_target_properties(argon2_lib PROPERTIES AUTOMOC OFF AUTOUIC OFF AUTORCC OFF ) target_include_directories(argon2_lib PUBLIC ${argon2_SOURCE_DIR}/include ${argon2_SOURCE_DIR}/src ) if(UNIX) target_link_libraries(argon2_lib PUBLIC pthread) endif() endif() # JWT-CPP for JSON Web Token support (header-only) FetchContent_Declare( jwt-cpp GIT_REPOSITORY https://github.com/Thalhammer/jwt-cpp.git GIT_TAG v0.7.0 ) FetchContent_GetProperties(jwt-cpp) if(NOT jwt-cpp_POPULATED) FetchContent_Populate(jwt-cpp) # jwt-cpp is header-only, create interface target add_library(jwt-cpp INTERFACE) target_include_directories(jwt-cpp INTERFACE ${jwt-cpp_SOURCE_DIR}/include) target_link_libraries(jwt-cpp INTERFACE OpenSSL::SSL OpenSSL::Crypto) endif()