mirror of
https://github.com/amnezia-vpn/amnezia-client.git
synced 2026-05-08 14:33:23 +00:00
50 lines
1.8 KiB
CMake
50 lines
1.8 KiB
CMake
set(CLIENT_ROOT_DIR ${CMAKE_CURRENT_LIST_DIR}/..)
|
|
set(AMNEZIA_THIRDPARTY_ROOT "${CLIENT_ROOT_DIR}/3rd" CACHE PATH "Path to Amnezia client/3rd sources")
|
|
|
|
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/Modules;${CMAKE_MODULE_PATH}")
|
|
|
|
add_subdirectory(${AMNEZIA_THIRDPARTY_ROOT}/SortFilterProxyModel ${CMAKE_CURRENT_BINARY_DIR}/3rd/SortFilterProxyModel)
|
|
set(LIBS ${LIBS} SortFilterProxyModel)
|
|
include(${CLIENT_ROOT_DIR}/cmake/QSimpleCrypto.cmake)
|
|
|
|
include(${AMNEZIA_THIRDPARTY_ROOT}/qrcodegen/qrcodegen.cmake)
|
|
|
|
add_compile_definitions(_WINSOCKAPI_)
|
|
|
|
set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE)
|
|
set(BUILD_WITH_QT6 ON)
|
|
add_subdirectory(${AMNEZIA_THIRDPARTY_ROOT}/qtkeychain ${CMAKE_CURRENT_BINARY_DIR}/3rd/qtkeychain EXCLUDE_FROM_ALL)
|
|
|
|
if(ANDROID)
|
|
# Use qtgamepad from amnezia-vpn/qtgamepad repository
|
|
# Only if Qt6CorePrivate is available (required by qtgamepad)
|
|
find_package(Qt6CorePrivate CONFIG QUIET)
|
|
if(Qt6CorePrivate_FOUND)
|
|
add_subdirectory(${CLIENT_ROOT_DIR}/3rd/qtgamepad)
|
|
# Link both the C++ module and QML plugin
|
|
if(TARGET GamepadLegacy)
|
|
target_link_libraries(${PROJECT} PRIVATE GamepadLegacy)
|
|
endif()
|
|
if(TARGET GamepadLegacyQuickPrivate)
|
|
target_link_libraries(${PROJECT} PRIVATE GamepadLegacyQuickPrivate)
|
|
endif()
|
|
message(STATUS "Gamepad support enabled for Android")
|
|
else()
|
|
message(STATUS "Qt6CorePrivate not found. Gamepad support disabled for Android.")
|
|
endif()
|
|
endif()
|
|
|
|
set(LIBS ${LIBS} qt6keychain)
|
|
|
|
include_directories(
|
|
${AMNEZIA_THIRDPARTY_ROOT}/QSimpleCrypto/src/include
|
|
${AMNEZIA_THIRDPARTY_ROOT}/qtkeychain/qtkeychain
|
|
${CMAKE_CURRENT_BINARY_DIR}/3rd/qtkeychain
|
|
)
|
|
|
|
find_package(OpenSSL REQUIRED)
|
|
list(APPEND LIBS OpenSSL::SSL OpenSSL::Crypto)
|
|
|
|
find_package(libssh REQUIRED)
|
|
list(APPEND LIBS ssh::ssh)
|