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'
|
||||
target: 'desktop'
|
||||
arch: 'clang_64'
|
||||
modules: 'qtremoteobjects qt5compat Qt6ShaderTools'
|
||||
modules: 'qtremoteobjects qt5compat qtshadertools'
|
||||
dir: ${{ runner.temp }}
|
||||
set-env: 'true'
|
||||
|
||||
|
@ -122,7 +122,7 @@ jobs:
|
|||
version: ${{ env.QT_VERSION }}
|
||||
host: 'mac'
|
||||
target: 'ios'
|
||||
modules: 'qtremoteobjects qt5compat'
|
||||
modules: 'qtremoteobjects qt5compat qtshadertools'
|
||||
dir: ${{ runner.temp }}
|
||||
setup-python: '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 PREDEFINED_TARGETS_FOLDER "Autogen")
|
||||
|
||||
list(APPEND CMAKE_PREFIX_PATH ${PREFIX_PATH})
|
||||
|
||||
find_package(Qt6 REQUIRED COMPONENTS
|
||||
Widgets Core Gui Network Xml
|
||||
RemoteObjects Quick Svg QuickControls2
|
||||
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)
|
||||
execute_process(COMMAND bash ${CMAKE_CURRENT_LIST_DIR}/scripts/openvpn.sh)
|
||||
endif()
|
||||
|
||||
# silent builds on CI env
|
||||
set(IS_CI ${CI})
|
||||
if(IS_CI)
|
||||
message("Detected CI env")
|
||||
# CONFIG += silent ccache
|
||||
find_program(CCACHE "ccache")
|
||||
if(CCACHE)
|
||||
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE}")
|
||||
|
@ -191,7 +192,6 @@ if(WIN32)
|
|||
endif()
|
||||
|
||||
if(APPLE)
|
||||
|
||||
if(NOT BUILD_OSX_APP_IDENTIFIER)
|
||||
set(BUILD_OSX_APP_IDENTIFIER org.amnezia.AmneziaVPN CACHE STRING "OSX Application identifier")
|
||||
endif()
|
||||
|
@ -209,14 +209,7 @@ if(APPLE)
|
|||
set(CMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM ${BUILD_VPN_DEVELOPMENT_TEAM})
|
||||
set(CMAKE_XCODE_ATTRIBUTE_GROUP_ID_IOS ${BUILD_IOS_GROUP_IDENTIFIER})
|
||||
|
||||
if(IOS)
|
||||
message("ios in mac")
|
||||
#do nothing, IOS is added in below
|
||||
|
||||
|
||||
|
||||
|
||||
else() #mac
|
||||
if(NOT IOS)
|
||||
set(CMAKE_OSX_ARCHITECTURES "x86_64" CACHE INTERNAL "" FORCE)
|
||||
|
||||
message("MAC build")
|
||||
|
@ -226,10 +219,6 @@ if(APPLE)
|
|||
# set(CMAKE_OSX_DEPLOYMENT_TARGET 10.14)
|
||||
add_compile_definitions(MVPN_MACOS)
|
||||
# ICON = $$PWD/images/app.icns
|
||||
|
||||
|
||||
message(STATUS "test ${PROJECT_SOURCE_DIR}")
|
||||
|
||||
find_library(LIB_LIBCRYPTO NAMES "libcrypto.a"
|
||||
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_SECURITY Security)
|
||||
|
||||
set(LIBS ${LIBS} ${FW_COCOA} ${FW_APPLICATIONSERVICES} ${FW_FOUNDATION} ${FW_APPKIT}
|
||||
${FW_SECURITY} ${FW_CORESERVICES} ${LIB_LIBCRYPTO} ${LIB_SSL})
|
||||
|
||||
|
||||
set(LIBS ${LIBS}
|
||||
${FW_COCOA} ${FW_APPLICATIONSERVICES}
|
||||
${FW_FOUNDATION} ${FW_APPKIT}
|
||||
${FW_SECURITY} ${FW_CORESERVICES}
|
||||
${LIB_LIBCRYPTO} ${LIB_SSL}
|
||||
)
|
||||
endif()
|
||||
|
||||
endif()
|
||||
|
||||
|
||||
|
@ -319,13 +309,20 @@ endif()
|
|||
if(IOS)
|
||||
message("Client iOS build")
|
||||
|
||||
find_package(Qt6 REQUIRED COMPONENTS ShaderTools)
|
||||
set(LIBS ${LIBS} Qt6::ShaderTools)
|
||||
|
||||
find_library(FW_AUTHENTICATIONSERVICES AuthenticationServices)
|
||||
find_library(FW_UIKIT UIKit)
|
||||
find_library(FW_FOUNDATION Foundation)
|
||||
find_library(FW_STOREKIT StoreKit)
|
||||
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)
|
||||
|
||||
|
@ -352,17 +349,11 @@ if(IOS)
|
|||
${CMAKE_CURRENT_LIST_DIR}/platforms/ios/QtAppDelegate.mm
|
||||
${CMAKE_CURRENT_LIST_DIR}/platforms/ios/MobileUtils.mm
|
||||
)
|
||||
|
||||
|
||||
|
||||
endif()
|
||||
|
||||
if(CMAKE_OSX_SYSROOT STREQUAL "iphoneos")
|
||||
message("Building for iPhone OS")
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET 13.0)
|
||||
|
||||
|
||||
|
||||
endif()
|
||||
|
||||
qt_add_executable(${PROJECT} ${SOURCES} ${HEADERS} ${RESOURCES} ${QRC})
|
||||
|
@ -376,7 +367,7 @@ if(IOS)
|
|||
enable_language(OBJCXX)
|
||||
enable_language(Swift)
|
||||
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_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_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_DEVELOPMENT_TEAM "X7UJ388FXK"
|
||||
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Apple Development")
|
||||
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Apple Development"
|
||||
)
|
||||
set(LIBS ${LIBS}
|
||||
${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})
|
||||
|
||||
|
@ -405,7 +399,7 @@ if(IOS)
|
|||
XCODE_ATTRIBUTE_SWIFT_OBJC_INTERFACE_HEADER_NAME "AmneziaVPN-Swift.h"
|
||||
)
|
||||
|
||||
set_target_properties(${PROJECT} PROPERTIES
|
||||
set_target_properties(${PROJECT} PROPERTIES
|
||||
OUTPUT_NAME "AmneziaVPN"
|
||||
MACOSX_BUNDLE ON
|
||||
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_MARKETING_VERSION "${CMAKE_PROJECT_VERSION}"
|
||||
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
|
||||
-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/WireGuardKitC/x25519.c
|
||||
${CMAKE_SOURCE_DIR}/3rd/wireguard-apple/Sources/WireGuardKit/PrivateKey.swift
|
||||
)
|
||||
)
|
||||
|
||||
target_sources(${PROJECT} PRIVATE
|
||||
platforms/ios/iosvpnprotocol.swift
|
||||
|
@ -453,11 +448,13 @@ target_include_directories(${PROJECT} PRIVATE ${CMAKE_SOURCE_DIR})
|
|||
|
||||
target_sources(${PROJECT} PRIVATE
|
||||
${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(
|
||||
${CMAKE_SOURCE_DIR}/ios/app/launch.png
|
||||
${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)
|
||||
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_LINK_BUILD_PHASE_MODE KNOWN_LOCATION)
|
||||
|
||||
|
||||
|
||||
endif()
|
||||
|
||||
|
||||
if(ANDROID)
|
||||
add_custom_command(
|
||||
TARGET ${PROJECT} POST_BUILD
|
||||
|
@ -525,12 +518,7 @@ if(ANDROID)
|
|||
endforeach()
|
||||
endif()
|
||||
|
||||
target_link_libraries(${PROJECT} PRIVATE
|
||||
Qt6::Widgets Qt6::Core Qt6::Gui
|
||||
Qt6::Network Qt6::Xml Qt6::RemoteObjects
|
||||
Qt6::Quick Qt6::Svg Qt6::QuickControls2
|
||||
Qt6::Core5Compat ${LIBS}
|
||||
)
|
||||
target_link_libraries(${PROJECT} PRIVATE ${LIBS})
|
||||
|
||||
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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue