added qtshadertools to actions and cmake

- cleaned up CMakeLists in client project
This commit is contained in:
vladimir.kuznetsov 2022-12-11 10:26:31 +03:00
parent d3cbd8cdae
commit 4df918d6a5
2 changed files with 134 additions and 146 deletions

View file

@ -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'

View file

@ -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)