added qtshadertools to actions and cmake
- cleaned up CMakeLists in client project
This commit is contained in:
parent
d3cbd8cdae
commit
4df918d6a5
2 changed files with 134 additions and 146 deletions
4
.github/workflows/deploy.yml
vendored
4
.github/workflows/deploy.yml
vendored
|
@ -112,7 +112,7 @@ jobs:
|
||||||
host: 'mac'
|
host: 'mac'
|
||||||
target: 'desktop'
|
target: 'desktop'
|
||||||
arch: 'clang_64'
|
arch: 'clang_64'
|
||||||
modules: 'qtremoteobjects qt5compat Qt6ShaderTools'
|
modules: 'qtremoteobjects qt5compat qtshadertools'
|
||||||
dir: ${{ runner.temp }}
|
dir: ${{ runner.temp }}
|
||||||
set-env: 'true'
|
set-env: 'true'
|
||||||
|
|
||||||
|
@ -122,7 +122,7 @@ jobs:
|
||||||
version: ${{ env.QT_VERSION }}
|
version: ${{ env.QT_VERSION }}
|
||||||
host: 'mac'
|
host: 'mac'
|
||||||
target: 'ios'
|
target: 'ios'
|
||||||
modules: 'qtremoteobjects qt5compat'
|
modules: 'qtremoteobjects qt5compat qtshadertools'
|
||||||
dir: ${{ runner.temp }}
|
dir: ${{ runner.temp }}
|
||||||
setup-python: 'true'
|
setup-python: 'true'
|
||||||
set-env: 'true'
|
set-env: 'true'
|
||||||
|
|
|
@ -18,24 +18,25 @@ set_property(GLOBAL PROPERTY AUTOGEN_TARGETS_FOLDER "Autogen")
|
||||||
set_property(GLOBAL PROPERTY AUTOMOC_TARGETS_FOLDER "Autogen")
|
set_property(GLOBAL PROPERTY AUTOMOC_TARGETS_FOLDER "Autogen")
|
||||||
set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER "Autogen")
|
set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER "Autogen")
|
||||||
|
|
||||||
list(APPEND CMAKE_PREFIX_PATH ${PREFIX_PATH})
|
|
||||||
|
|
||||||
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()
|
set(LIBS ${LIBS}
|
||||||
|
Qt6::Widgets Qt6::Core Qt6::Gui
|
||||||
|
Qt6::Network Qt6::Xml Qt6::RemoteObjects
|
||||||
|
Qt6::Quick Qt6::Svg Qt6::QuickControls2
|
||||||
|
Qt6::Core5Compat
|
||||||
|
)
|
||||||
|
|
||||||
if(IOS)
|
if(IOS)
|
||||||
execute_process(COMMAND bash ${CMAKE_CURRENT_LIST_DIR}/scripts/openvpn.sh)
|
execute_process(COMMAND bash ${CMAKE_CURRENT_LIST_DIR}/scripts/openvpn.sh)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# silent builds on CI env
|
|
||||||
set(IS_CI ${CI})
|
set(IS_CI ${CI})
|
||||||
if(IS_CI)
|
if(IS_CI)
|
||||||
message("Detected CI env")
|
message("Detected CI env")
|
||||||
# CONFIG += silent ccache
|
|
||||||
find_program(CCACHE "ccache")
|
find_program(CCACHE "ccache")
|
||||||
if(CCACHE)
|
if(CCACHE)
|
||||||
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE}")
|
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE}")
|
||||||
|
@ -191,7 +192,6 @@ if(WIN32)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
|
|
||||||
if(NOT BUILD_OSX_APP_IDENTIFIER)
|
if(NOT BUILD_OSX_APP_IDENTIFIER)
|
||||||
set(BUILD_OSX_APP_IDENTIFIER org.amnezia.AmneziaVPN CACHE STRING "OSX Application identifier")
|
set(BUILD_OSX_APP_IDENTIFIER org.amnezia.AmneziaVPN CACHE STRING "OSX Application identifier")
|
||||||
endif()
|
endif()
|
||||||
|
@ -209,14 +209,7 @@ if(APPLE)
|
||||||
set(CMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM ${BUILD_VPN_DEVELOPMENT_TEAM})
|
set(CMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM ${BUILD_VPN_DEVELOPMENT_TEAM})
|
||||||
set(CMAKE_XCODE_ATTRIBUTE_GROUP_ID_IOS ${BUILD_IOS_GROUP_IDENTIFIER})
|
set(CMAKE_XCODE_ATTRIBUTE_GROUP_ID_IOS ${BUILD_IOS_GROUP_IDENTIFIER})
|
||||||
|
|
||||||
if(IOS)
|
if(NOT IOS)
|
||||||
message("ios in mac")
|
|
||||||
#do nothing, IOS is added in below
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
else() #mac
|
|
||||||
set(CMAKE_OSX_ARCHITECTURES "x86_64" CACHE INTERNAL "" FORCE)
|
set(CMAKE_OSX_ARCHITECTURES "x86_64" CACHE INTERNAL "" FORCE)
|
||||||
|
|
||||||
message("MAC build")
|
message("MAC build")
|
||||||
|
@ -226,10 +219,6 @@ if(APPLE)
|
||||||
# set(CMAKE_OSX_DEPLOYMENT_TARGET 10.14)
|
# set(CMAKE_OSX_DEPLOYMENT_TARGET 10.14)
|
||||||
add_compile_definitions(MVPN_MACOS)
|
add_compile_definitions(MVPN_MACOS)
|
||||||
# ICON = $$PWD/images/app.icns
|
# ICON = $$PWD/images/app.icns
|
||||||
|
|
||||||
|
|
||||||
message(STATUS "test ${PROJECT_SOURCE_DIR}")
|
|
||||||
|
|
||||||
find_library(LIB_LIBCRYPTO NAMES "libcrypto.a"
|
find_library(LIB_LIBCRYPTO NAMES "libcrypto.a"
|
||||||
PATHS ${PROJECT_SOURCE_DIR}/3rd/OpenSSL/lib/macos/x86_64/ NO_DEFAULT_PATH)
|
PATHS ${PROJECT_SOURCE_DIR}/3rd/OpenSSL/lib/macos/x86_64/ NO_DEFAULT_PATH)
|
||||||
|
|
||||||
|
@ -244,12 +233,13 @@ if(APPLE)
|
||||||
find_library(FW_APPKIT AppKit)
|
find_library(FW_APPKIT AppKit)
|
||||||
find_library(FW_SECURITY Security)
|
find_library(FW_SECURITY Security)
|
||||||
|
|
||||||
set(LIBS ${LIBS} ${FW_COCOA} ${FW_APPLICATIONSERVICES} ${FW_FOUNDATION} ${FW_APPKIT}
|
set(LIBS ${LIBS}
|
||||||
${FW_SECURITY} ${FW_CORESERVICES} ${LIB_LIBCRYPTO} ${LIB_SSL})
|
${FW_COCOA} ${FW_APPLICATIONSERVICES}
|
||||||
|
${FW_FOUNDATION} ${FW_APPKIT}
|
||||||
|
${FW_SECURITY} ${FW_CORESERVICES}
|
||||||
|
${LIB_LIBCRYPTO} ${LIB_SSL}
|
||||||
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
@ -319,13 +309,20 @@ endif()
|
||||||
if(IOS)
|
if(IOS)
|
||||||
message("Client iOS build")
|
message("Client iOS build")
|
||||||
|
|
||||||
|
find_package(Qt6 REQUIRED COMPONENTS ShaderTools)
|
||||||
|
set(LIBS ${LIBS} Qt6::ShaderTools)
|
||||||
|
|
||||||
find_library(FW_AUTHENTICATIONSERVICES AuthenticationServices)
|
find_library(FW_AUTHENTICATIONSERVICES AuthenticationServices)
|
||||||
find_library(FW_UIKIT UIKit)
|
find_library(FW_UIKIT UIKit)
|
||||||
find_library(FW_FOUNDATION Foundation)
|
find_library(FW_FOUNDATION Foundation)
|
||||||
find_library(FW_STOREKIT StoreKit)
|
find_library(FW_STOREKIT StoreKit)
|
||||||
find_library(FW_USERNOTIFICATIONS UserNotifications)
|
find_library(FW_USERNOTIFICATIONS UserNotifications)
|
||||||
|
|
||||||
set(LIBS ${LIBS} ${FW_AUTHENTICATIONSERVICES} ${FW_UIKIT} ${FW_FOUNDATION} ${FW_STOREKIT} ${FW_USERNOTIFICATIONS})
|
set(LIBS ${LIBS}
|
||||||
|
${FW_AUTHENTICATIONSERVICES} ${FW_UIKIT}
|
||||||
|
${FW_FOUNDATION} ${FW_STOREKIT}
|
||||||
|
${FW_USERNOTIFICATIONS}
|
||||||
|
)
|
||||||
|
|
||||||
add_compile_definitions(MVPN_IOS)
|
add_compile_definitions(MVPN_IOS)
|
||||||
|
|
||||||
|
@ -352,17 +349,11 @@ if(IOS)
|
||||||
${CMAKE_CURRENT_LIST_DIR}/platforms/ios/QtAppDelegate.mm
|
${CMAKE_CURRENT_LIST_DIR}/platforms/ios/QtAppDelegate.mm
|
||||||
${CMAKE_CURRENT_LIST_DIR}/platforms/ios/MobileUtils.mm
|
${CMAKE_CURRENT_LIST_DIR}/platforms/ios/MobileUtils.mm
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(CMAKE_OSX_SYSROOT STREQUAL "iphoneos")
|
if(CMAKE_OSX_SYSROOT STREQUAL "iphoneos")
|
||||||
message("Building for iPhone OS")
|
message("Building for iPhone OS")
|
||||||
set(CMAKE_OSX_DEPLOYMENT_TARGET 13.0)
|
set(CMAKE_OSX_DEPLOYMENT_TARGET 13.0)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
qt_add_executable(${PROJECT} ${SOURCES} ${HEADERS} ${RESOURCES} ${QRC})
|
qt_add_executable(${PROJECT} ${SOURCES} ${HEADERS} ${RESOURCES} ${QRC})
|
||||||
|
@ -376,7 +367,7 @@ if(IOS)
|
||||||
enable_language(OBJCXX)
|
enable_language(OBJCXX)
|
||||||
enable_language(Swift)
|
enable_language(Swift)
|
||||||
include(src/cmake/osxtools.cmake)
|
include(src/cmake/osxtools.cmake)
|
||||||
# set(CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY TRUE)
|
# set(CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY TRUE)
|
||||||
|
|
||||||
set_target_properties(${PROJECT} PROPERTIES XCODE_ATTRIBUTE_ENABLE_BITCODE "NO")
|
set_target_properties(${PROJECT} PROPERTIES XCODE_ATTRIBUTE_ENABLE_BITCODE "NO")
|
||||||
set_target_properties(${PROJECT} PROPERTIES XCODE_ATTRIBUTE_ASSETCATALOG_COMPILER_APPICON_NAME "AppIcon")
|
set_target_properties(${PROJECT} PROPERTIES XCODE_ATTRIBUTE_ASSETCATALOG_COMPILER_APPICON_NAME "AppIcon")
|
||||||
|
@ -386,13 +377,16 @@ if(IOS)
|
||||||
set(CMAKE_XCODE_ATTRIBUTE_FRAMEWORK_SEARCH_PATHS ${CMAKE_CURRENT_LIST_DIR}/3rd/OpenVPNAdapter/build/Release-iphoneos)
|
set(CMAKE_XCODE_ATTRIBUTE_FRAMEWORK_SEARCH_PATHS ${CMAKE_CURRENT_LIST_DIR}/3rd/OpenVPNAdapter/build/Release-iphoneos)
|
||||||
|
|
||||||
|
|
||||||
set_target_properties(${PROJECT} PROPERTIES XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "org.amnezia.${PROJECT}"
|
set_target_properties(${PROJECT}
|
||||||
|
PROPERTIES XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "org.amnezia.${PROJECT}"
|
||||||
XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY "1"
|
XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY "1"
|
||||||
XCODE_ATTRIBUTE_DEVELOPMENT_TEAM "X7UJ388FXK"
|
XCODE_ATTRIBUTE_DEVELOPMENT_TEAM "X7UJ388FXK"
|
||||||
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Apple Development")
|
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Apple Development"
|
||||||
|
)
|
||||||
set(LIBS ${LIBS}
|
set(LIBS ${LIBS}
|
||||||
${CMAKE_CURRENT_LIST_DIR}/3rd/OpenSSL/lib/ios/iphone/libcrypto.a
|
${CMAKE_CURRENT_LIST_DIR}/3rd/OpenSSL/lib/ios/iphone/libcrypto.a
|
||||||
${CMAKE_CURRENT_LIST_DIR}/3rd/OpenSSL/lib/ios/iphone/libssl.a)
|
${CMAKE_CURRENT_LIST_DIR}/3rd/OpenSSL/lib/ios/iphone/libssl.a
|
||||||
|
)
|
||||||
|
|
||||||
target_include_directories(${PROJECT} PRIVATE ${Qt6Gui_PRIVATE_INCLUDE_DIRS})
|
target_include_directories(${PROJECT} PRIVATE ${Qt6Gui_PRIVATE_INCLUDE_DIRS})
|
||||||
|
|
||||||
|
@ -405,7 +399,7 @@ if(IOS)
|
||||||
XCODE_ATTRIBUTE_SWIFT_OBJC_INTERFACE_HEADER_NAME "AmneziaVPN-Swift.h"
|
XCODE_ATTRIBUTE_SWIFT_OBJC_INTERFACE_HEADER_NAME "AmneziaVPN-Swift.h"
|
||||||
)
|
)
|
||||||
|
|
||||||
set_target_properties(${PROJECT} PROPERTIES
|
set_target_properties(${PROJECT} PROPERTIES
|
||||||
OUTPUT_NAME "AmneziaVPN"
|
OUTPUT_NAME "AmneziaVPN"
|
||||||
MACOSX_BUNDLE ON
|
MACOSX_BUNDLE ON
|
||||||
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_SOURCE_DIR}/ios/app/Info.plist.in
|
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_SOURCE_DIR}/ios/app/Info.plist.in
|
||||||
|
@ -420,8 +414,9 @@ set_target_properties(${PROJECT} PROPERTIES
|
||||||
XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS "${CMAKE_SOURCE_DIR}/ios/app/main.entitlements"
|
XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS "${CMAKE_SOURCE_DIR}/ios/app/main.entitlements"
|
||||||
XCODE_ATTRIBUTE_MARKETING_VERSION "${CMAKE_PROJECT_VERSION}"
|
XCODE_ATTRIBUTE_MARKETING_VERSION "${CMAKE_PROJECT_VERSION}"
|
||||||
XCODE_GENERATE_SCHEME TRUE
|
XCODE_GENERATE_SCHEME TRUE
|
||||||
)
|
)
|
||||||
target_include_directories(${PROJECT} PRIVATE ${CMAKE_SOURCE_DIR})
|
|
||||||
|
target_include_directories(${PROJECT} PRIVATE ${CMAKE_SOURCE_DIR})
|
||||||
|
|
||||||
target_compile_options(${PROJECT} PRIVATE
|
target_compile_options(${PROJECT} PRIVATE
|
||||||
-DGROUP_ID=\"${BUILD_IOS_GROUP_IDENTIFIER}\"
|
-DGROUP_ID=\"${BUILD_IOS_GROUP_IDENTIFIER}\"
|
||||||
|
@ -444,7 +439,7 @@ target_include_directories(${PROJECT} PRIVATE ${CMAKE_SOURCE_DIR})
|
||||||
${CMAKE_SOURCE_DIR}/3rd/wireguard-apple/Sources/Shared/FileManager+Extension.swift
|
${CMAKE_SOURCE_DIR}/3rd/wireguard-apple/Sources/Shared/FileManager+Extension.swift
|
||||||
${CMAKE_SOURCE_DIR}/3rd/wireguard-apple/Sources/WireGuardKitC/x25519.c
|
${CMAKE_SOURCE_DIR}/3rd/wireguard-apple/Sources/WireGuardKitC/x25519.c
|
||||||
${CMAKE_SOURCE_DIR}/3rd/wireguard-apple/Sources/WireGuardKit/PrivateKey.swift
|
${CMAKE_SOURCE_DIR}/3rd/wireguard-apple/Sources/WireGuardKit/PrivateKey.swift
|
||||||
)
|
)
|
||||||
|
|
||||||
target_sources(${PROJECT} PRIVATE
|
target_sources(${PROJECT} PRIVATE
|
||||||
platforms/ios/iosvpnprotocol.swift
|
platforms/ios/iosvpnprotocol.swift
|
||||||
|
@ -453,11 +448,13 @@ target_include_directories(${PROJECT} PRIVATE ${CMAKE_SOURCE_DIR})
|
||||||
|
|
||||||
target_sources(${PROJECT} PRIVATE
|
target_sources(${PROJECT} PRIVATE
|
||||||
${CMAKE_SOURCE_DIR}/ios/app/launch.png
|
${CMAKE_SOURCE_DIR}/ios/app/launch.png
|
||||||
${CMAKE_SOURCE_DIR}/ios/app/AmneziaVPNLaunchScreen.storyboard)
|
${CMAKE_SOURCE_DIR}/ios/app/AmneziaVPNLaunchScreen.storyboard
|
||||||
|
)
|
||||||
set_source_files_properties(
|
set_source_files_properties(
|
||||||
${CMAKE_SOURCE_DIR}/ios/app/launch.png
|
${CMAKE_SOURCE_DIR}/ios/app/launch.png
|
||||||
${CMAKE_SOURCE_DIR}/ios/app/AmneziaVPNLaunchScreen.storyboard
|
${CMAKE_SOURCE_DIR}/ios/app/AmneziaVPNLaunchScreen.storyboard
|
||||||
PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
|
PROPERTIES MACOSX_PACKAGE_LOCATION "Resources"
|
||||||
|
)
|
||||||
|
|
||||||
target_sources(${PROJECT} PRIVATE ${CMAKE_SOURCE_DIR}/ios/Media.xcassets)
|
target_sources(${PROJECT} PRIVATE ${CMAKE_SOURCE_DIR}/ios/Media.xcassets)
|
||||||
set_source_files_properties(Media.xcassets PROPERTIES
|
set_source_files_properties(Media.xcassets PROPERTIES
|
||||||
|
@ -473,12 +470,8 @@ target_include_directories(${PROJECT} PRIVATE ${CMAKE_SOURCE_DIR})
|
||||||
)
|
)
|
||||||
set_target_properties(networkextension PROPERTIES XCODE_EMBED_FRAMEWORKS_CODE_SIGN_ON_COPY ON)
|
set_target_properties(networkextension PROPERTIES XCODE_EMBED_FRAMEWORKS_CODE_SIGN_ON_COPY ON)
|
||||||
set_target_properties(networkextension PROPERTIES XCODE_LINK_BUILD_PHASE_MODE KNOWN_LOCATION)
|
set_target_properties(networkextension PROPERTIES XCODE_LINK_BUILD_PHASE_MODE KNOWN_LOCATION)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
if(ANDROID)
|
if(ANDROID)
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
TARGET ${PROJECT} POST_BUILD
|
TARGET ${PROJECT} POST_BUILD
|
||||||
|
@ -525,12 +518,7 @@ if(ANDROID)
|
||||||
endforeach()
|
endforeach()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_link_libraries(${PROJECT} PRIVATE
|
target_link_libraries(${PROJECT} PRIVATE ${LIBS})
|
||||||
Qt6::Widgets Qt6::Core Qt6::Gui
|
|
||||||
Qt6::Network Qt6::Xml Qt6::RemoteObjects
|
|
||||||
Qt6::Quick Qt6::Svg Qt6::QuickControls2
|
|
||||||
Qt6::Core5Compat ${LIBS}
|
|
||||||
)
|
|
||||||
|
|
||||||
if(WIN32 OR (APPLE AND NOT IOS) OR (LINUX AND NOT ANDROID))
|
if(WIN32 OR (APPLE AND NOT IOS) 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)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue