feature/added cmake support for linux

This commit is contained in:
vladimir.kuznetsov 2022-11-20 21:25:15 +03:00
parent ac78a44d74
commit 3eb7e1392d
4 changed files with 45 additions and 26 deletions

View file

@ -8,7 +8,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Qt6 REQUIRED COMPONENTS find_package(Qt6 REQUIRED COMPONENTS
Widgets Core Gui Network Xml Widgets Core Gui Network Xml
RemoteObjects Quick Svg Quickcontrols2 RemoteObjects Quick Svg QuickControls2
Core5Compat Core5Compat
) )
qt_standard_project_setup() qt_standard_project_setup()
@ -180,9 +180,11 @@ endif()
if(LINUX AND NOT ANDROID) if(LINUX AND NOT ANDROID)
add_compile_definitions(MVPN_LINUX) add_compile_definitions(MVPN_LINUX)
set(OPENSSL_USE_STATIC_LIBS TRUE)
find_package(OpenSSL REQUIRED)
set(LIBS ${LIBS} set(LIBS ${LIBS}
/usr/lib/x86_64-linux-gnu/libcrypto.a OpenSSL::Crypto
/usr/lib/x86_64-linux-gnu/libssl.a OpenSSL::SSL
) )
link_directories(${CMAKE_CURRENT_LIST_DIR}/platforms/linux) link_directories(${CMAKE_CURRENT_LIST_DIR}/platforms/linux)
endif() endif()
@ -367,22 +369,6 @@ if(ANDROID)
endforeach() endforeach()
endif() endif()
# deploy artifacts required to run the application to the debug build folder
if(WIN32)
if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "8")
set(DIR_NAME "x64")
else()
set(DIR_NAME "x32")
endif()
add_custom_command(
TARGET ${PROJECT} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E $<IF:$<CONFIG:Debug>,copy_directory,true>
${CMAKE_SOURCE_DIR}/deploy/data/windows/${DIR_NAME}
$<TARGET_FILE_DIR:${PROJECT}>
COMMAND_EXPAND_LISTS
)
endif()
target_link_libraries(${PROJECT} PRIVATE target_link_libraries(${PROJECT} PRIVATE
Qt6::Widgets Qt6::Core Qt6::Gui Qt6::Widgets Qt6::Core Qt6::Gui
Qt6::Network Qt6::Xml Qt6::RemoteObjects Qt6::Network Qt6::Xml Qt6::RemoteObjects
@ -394,3 +380,24 @@ if(WIN32 OR APPLE OR (LINUX AND NOT ANDROID))
qt_add_repc_replicas(${PROJECT} ${CMAKE_CURRENT_LIST_DIR}/../ipc/ipc_interface.rep) qt_add_repc_replicas(${PROJECT} ${CMAKE_CURRENT_LIST_DIR}/../ipc/ipc_interface.rep)
qt_add_repc_replicas(${PROJECT} ${CMAKE_CURRENT_LIST_DIR}/../ipc/ipc_process_interface.rep) qt_add_repc_replicas(${PROJECT} ${CMAKE_CURRENT_LIST_DIR}/../ipc/ipc_process_interface.rep)
endif() endif()
# deploy artifacts required to run the application to the debug build folder
if(WIN32)
if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "8")
set(DEPLOY_ARTIFACT_PATH "windows/x64")
else()
set(DEPLOY_ARTIFACT_PATH "windows/x32")
endif()
elseif(LINUX)
set(DEPLOY_ARTIFACT_PATH "linux/client")
elseif(APPLE)
set(DEPLOY_ARTIFACT_PATH "macos")
endif()
add_custom_command(
TARGET ${PROJECT} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E $<IF:$<CONFIG:Debug>,copy_directory,true>
${CMAKE_SOURCE_DIR}/deploy/data/${DEPLOY_ARTIFACT_PATH}
$<TARGET_FILE_DIR:${PROJECT}>
COMMAND_EXPAND_LISTS
)

View file

@ -47,16 +47,15 @@ echo "Using Qt in $QT_BIN_DIR"
# Checking env # Checking env
$QT_BIN_DIR/qmake -v $QT_BIN_DIR/qt-cmake --version
make -v
gcc -v gcc -v
# Build App # Build App
echo "Building App..." echo "Building App..."
cd $BUILD_DIR cd $BUILD_DIR
$QT_BIN_DIR/qmake $PROJECT_DIR/AmneziaVPN.pro 'CONFIG+=release CONFIG+=x86_64' $QT_BIN_DIR/qt-cmake -S $PROJECT_DIR
make cmake --build . --config release
# Build and run tests here # Build and run tests here

View file

@ -14,4 +14,6 @@ if(NOT IOS AND NOT ANDROID)
add_subdirectory(server) add_subdirectory(server)
endif() endif()
add_subdirectory(wireguard-service) if(WIN32)
add_subdirectory(wireguard-service)
endif()

View file

@ -81,8 +81,6 @@ endif()
include(${CMAKE_CURRENT_LIST_DIR}/../src/qtservice.cmake) include(${CMAKE_CURRENT_LIST_DIR}/../src/qtservice.cmake)
message(${CMAKE_CURRENT_BINARY_DIR})
include_directories( include_directories(
${CMAKE_CURRENT_LIST_DIR}/../../client ${CMAKE_CURRENT_LIST_DIR}/../../client
${CMAKE_CURRENT_LIST_DIR}/../../ipc ${CMAKE_CURRENT_LIST_DIR}/../../ipc
@ -97,3 +95,16 @@ qt_add_repc_sources(${PROJECT} ${CMAKE_CURRENT_LIST_DIR}/../../ipc/ipc_interface
if(NOT IOS) if(NOT IOS)
qt_add_repc_sources(${PROJECT} ${CMAKE_CURRENT_LIST_DIR}/../../ipc/ipc_process_interface.rep) qt_add_repc_sources(${PROJECT} ${CMAKE_CURRENT_LIST_DIR}/../../ipc/ipc_process_interface.rep)
endif() endif()
# deploy artifacts required to run the application to the debug build folder
if(LINUX)
set(DEPLOY_ARTIFACT_PATH "linux/service")
endif()
add_custom_command(
TARGET ${PROJECT} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E $<IF:$<CONFIG:Debug>,copy_directory,true>
${CMAKE_SOURCE_DIR}/deploy/data/${DEPLOY_ARTIFACT_PATH}
$<TARGET_FILE_DIR:${PROJECT}>
COMMAND_EXPAND_LISTS
)