for debug target added deploy files required to run the application on Windows, also:

- added deploy additional files for android
- fixed include android libraries
This commit is contained in:
vladimir.kuznetsov 2022-11-15 00:22:27 +03:00
parent 2d6a12101e
commit 663861dc09
4 changed files with 119 additions and 59 deletions

View file

@ -21,7 +21,7 @@ if(WIN32)
endif() endif()
endif() endif()
if(APPLE) if(APPLE AND NOT IOS)
include_directories(${CMAKE_CURRENT_LIST_DIR}/macos) include_directories(${CMAKE_CURRENT_LIST_DIR}/macos)
set(HEADERS ${HEADERS} ${CMAKE_CURRENT_LIST_DIR}/macos/botan_all.h) set(HEADERS ${HEADERS} ${CMAKE_CURRENT_LIST_DIR}/macos/botan_all.h)
set(SOURCES ${SOURCES} ${CMAKE_CURRENT_LIST_DIR}/macos/botan_all.cpp) set(SOURCES ${SOURCES} ${CMAKE_CURRENT_LIST_DIR}/macos/botan_all.cpp)

View file

@ -1,5 +1,10 @@
include_directories(${CMAKE_CURRENT_LIST_DIR}) include_directories(${CMAKE_CURRENT_LIST_DIR})
find_package(Qt6 REQUIRED COMPONENTS
Widgets Gui Network Core5Compat
)
set(LIBS ${LIBS} Qt6::Widgets Qt6::Gui Qt6::Network Qt6::Core5Compat)
set(SOURCES ${SOURCES} set(SOURCES ${SOURCES}
${CMAKE_CURRENT_LIST_DIR}/sshsendfacility.cpp ${CMAKE_CURRENT_LIST_DIR}/sshsendfacility.cpp
${CMAKE_CURRENT_LIST_DIR}/sshremoteprocess.cpp ${CMAKE_CURRENT_LIST_DIR}/sshremoteprocess.cpp

View file

@ -1,5 +1,10 @@
include_directories(${CMAKE_CURRENT_LIST_DIR}) include_directories(${CMAKE_CURRENT_LIST_DIR})
message(${CMAKE_CURRENT_LIST_DIR})
find_package(Qt6 REQUIRED COMPONENTS
Core Network
)
set(LIBS ${LIBS} Qt6::Core Qt6::Network)
set(HEADERS ${HEADERS} set(HEADERS ${HEADERS}
${CMAKE_CURRENT_LIST_DIR}/singleapplication.h ${CMAKE_CURRENT_LIST_DIR}/singleapplication.h

View file

@ -190,7 +190,7 @@ endif()
if(WIN32 OR APPLE OR (LINUX AND NOT ANDROID)) if(WIN32 OR APPLE OR (LINUX AND NOT ANDROID))
message("Client desktop build") message("Client desktop build")
add_compile_definitions(AMNEZIA_DESKTOP) add_compile_definitions(AMNEZIA_DESKTOP)
set(HEADERS ${HEADERS} set(HEADERS ${HEADERS}
${CMAKE_CURRENT_LIST_DIR}/core/ipcclient.h ${CMAKE_CURRENT_LIST_DIR}/core/ipcclient.h
${CMAKE_CURRENT_LIST_DIR}/core/privileged_process.h ${CMAKE_CURRENT_LIST_DIR}/core/privileged_process.h
@ -234,43 +234,6 @@ if(ANDROID)
${CMAKE_CURRENT_LIST_DIR}/platforms/android/android_notificationhandler.cpp ${CMAKE_CURRENT_LIST_DIR}/platforms/android/android_notificationhandler.cpp
${CMAKE_CURRENT_LIST_DIR}/protocols/android_vpnprotocol.cpp ${CMAKE_CURRENT_LIST_DIR}/protocols/android_vpnprotocol.cpp
) )
# DISTFILES +=
# android/AndroidManifest.xml
# android/build.gradle
# android/gradle/wrapper/gradle-wrapper.jar
# android/gradle/wrapper/gradle-wrapper.properties
# android/gradlew
# android/gradlew.bat
# android/gradle.properties
# android/res/values/libs.xml
# android/src/org/amnezia/vpn/OpenVPNThreadv3.kt
# android/src/org/amnezia/vpn/VpnService.kt
# android/src/org/amnezia/vpn/VpnServiceBinder.kt
# android/src/org/amnezia/vpn/qt/VPNPermissionHelper.kt
set(QT_ANDROID_PACKAGE_SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/android)
foreach(abi IN ANDROID_ABIS)
if(ANDROID_TARGET_ARCH EQUAL ${abi})
set(LIBS ${LIBS}
${CMAKE_CURRENT_LIST_DIR}/3rd/OpenSSL/lib/android/${abi}/libcrypto.a
${CMAKE_CURRENT_LIST_DIR}/3rd/OpenSSL/lib/android/${abi}/libssl.a
)
endif()
set(QT_ANDROID_EXTRA_LIBS ${QT_ANDROID_EXTRA_LIBS}
${QT_ANDROID_EXTRA_LIBS}/android/lib/wireguard/${abi}/libwg.so
${QT_ANDROID_EXTRA_LIBS}/android/lib/wireguard/${abi}/libwg-go.so
${QT_ANDROID_EXTRA_LIBS}/android/lib/wireguard/${abi}/libwg-quick.so
${QT_ANDROID_EXTRA_LIBS}/android/lib/openvpn/${abi}/libjbcrypto.so
${QT_ANDROID_EXTRA_LIBS}/android/lib/openvpn/${abi}/libopenvpn.so
${QT_ANDROID_EXTRA_LIBS}/android/lib/openvpn/${abi}/libopvpnutil.so
${QT_ANDROID_EXTRA_LIBS}/android/lib/openvpn/${abi}/libovpn3.so
${QT_ANDROID_EXTRA_LIBS}/android/lib/openvpn/${abi}/libovpnexec.so
)
endforeach()
endif() endif()
if(IOS) if(IOS)
@ -291,15 +254,15 @@ if(IOS)
add_compile_definitions(MVPN_IOS) add_compile_definitions(MVPN_IOS)
set(HEADERS ${HEADERS} set(HEADERS ${HEADERS}
${QT_ANDROID_EXTRA_LIBS}/protocols/ios_vpnprotocol.h ${CMAKE_CURRENT_LIST_DIR}/protocols/ios_vpnprotocol.h
${QT_ANDROID_EXTRA_LIBS}/platforms/ios/iosnotificationhandler.h ${CMAKE_CURRENT_LIST_DIR}/platforms/ios/iosnotificationhandler.h
${QT_ANDROID_EXTRA_LIBS}/platforms/ios/json.h ${CMAKE_CURRENT_LIST_DIR}/platforms/ios/json.h
${QT_ANDROID_EXTRA_LIBS}/platforms/ios/bigint.h ${CMAKE_CURRENT_LIST_DIR}/platforms/ios/bigint.h
${QT_ANDROID_EXTRA_LIBS}/platforms/ios/bigintipv6addr.h ${CMAKE_CURRENT_LIST_DIR}/platforms/ios/bigintipv6addr.h
${QT_ANDROID_EXTRA_LIBS}/platforms/ios/ipaddress.h ${CMAKE_CURRENT_LIST_DIR}/platforms/ios/ipaddress.h
${QT_ANDROID_EXTRA_LIBS}/platforms/ios/ipaddressrange.h ${CMAKE_CURRENT_LIST_DIR}/platforms/ios/ipaddressrange.h
${QT_ANDROID_EXTRA_LIBS}/platforms/ios/QtAppDelegate.h ${CMAKE_CURRENT_LIST_DIR}/platforms/ios/QtAppDelegate.h
${QT_ANDROID_EXTRA_LIBS}/platforms/ios/QtAppDelegate-C-Interface.h ${CMAKE_CURRENT_LIST_DIR}/platforms/ios/QtAppDelegate-C-Interface.h
) )
# i think in cmake it is not necessary? # i think in cmake it is not necessary?
@ -308,15 +271,15 @@ if(IOS)
# platforms/ios/MobileUtils.cpp # platforms/ios/MobileUtils.cpp
set(SOURCES ${SOURCES} set(SOURCES ${SOURCES}
${QT_ANDROID_EXTRA_LIBS}/protocols/ios_vpnprotocol.mm ${CMAKE_CURRENT_LIST_DIR}/protocols/ios_vpnprotocol.mm
${QT_ANDROID_EXTRA_LIBS}/platforms/ios/iosnotificationhandler.mm ${CMAKE_CURRENT_LIST_DIR}/platforms/ios/iosnotificationhandler.mm
${QT_ANDROID_EXTRA_LIBS}/platforms/ios/json.cpp ${CMAKE_CURRENT_LIST_DIR}/platforms/ios/json.cpp
${QT_ANDROID_EXTRA_LIBS}/platforms/ios/iosglue.mm ${CMAKE_CURRENT_LIST_DIR}/platforms/ios/iosglue.mm
${QT_ANDROID_EXTRA_LIBS}/platforms/ios/ipaddress.cpp ${CMAKE_CURRENT_LIST_DIR}/platforms/ios/ipaddress.cpp
${QT_ANDROID_EXTRA_LIBS}/platforms/ios/ipaddressrange.cpp ${CMAKE_CURRENT_LIST_DIR}/platforms/ios/ipaddressrange.cpp
${QT_ANDROID_EXTRA_LIBS}/platforms/ios/QRCodeReaderBase.mm ${CMAKE_CURRENT_LIST_DIR}/platforms/ios/QRCodeReaderBase.mm
${QT_ANDROID_EXTRA_LIBS}/platforms/ios/QtAppDelegate.mm ${CMAKE_CURRENT_LIST_DIR}/platforms/ios/QtAppDelegate.mm
${QT_ANDROID_EXTRA_LIBS}/platforms/ios/MobileUtils.mm ${CMAKE_CURRENT_LIST_DIR}/platforms/ios/MobileUtils.mm
) )
# Q_ENABLE_BITCODE.value = NO # Q_ENABLE_BITCODE.value = NO
@ -325,10 +288,97 @@ if(IOS)
endif() endif()
#if(IPHONEOS) #if(IPHONEOS)
# message("Building for iPhone OS")
# QMAKE_TARGET_BUNDLE_PREFIX = org.amnezia
# QMAKE_BUNDLE = AmneziaVPN
# QMAKE_IOS_DEPLOYMENT_TARGET = 12.0
# QMAKE_APPLE_TARGETED_DEVICE_FAMILY = 1
# QMAKE_DEVELOPMENT_TEAM = X7UJ388FXK
# QMAKE_PROVISIONING_PROFILE = f2fefb59-14aa-4aa9-ac14-1d5531b06dcc
# QMAKE_XCODE_CODE_SIGN_IDENTITY = "Apple Distribution"
# QMAKE_INFO_PLIST = $$PWD/ios/app/Info.plist
# XCODEBUILD_FLAGS += -allowProvisioningUpdates
# DEFINES += iphoneos
# contains(QT_ARCH, arm64) {
# message("Building for iOS/ARM v8 64-bit architecture")
# ARCH_TAG = "ios_armv8_64"
# LIBS += $$PWD/3rd/OpenSSL/lib/ios/iphone/libcrypto.a
# LIBS += $$PWD/3rd/OpenSSL/lib/ios/iphone/libssl.a
# } else {
# message("Building for iOS/ARM v7 (32-bit) architecture")
# ARCH_TAG = "ios_armv7"
# }
#endif() #endif()
#todo add iphones
# NETWORKEXTENSION=1
qt_add_executable(${PROJECT} ${SOURCES} ${HEADERS} ${RESOURCES} ${QRC}) qt_add_executable(${PROJECT} ${SOURCES} ${HEADERS} ${RESOURCES} ${QRC})
if(ANDROID)
add_custom_command(
TARGET ${PROJECT} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
${CMAKE_CURRENT_LIST_DIR}/android/AndroidManifest.xml
${CMAKE_CURRENT_LIST_DIR}/android/build.gradle
${CMAKE_CURRENT_LIST_DIR}/android/gradle/wrapper/gradle-wrapper.jar
${CMAKE_CURRENT_LIST_DIR}/android/gradle/wrapper/gradle-wrapper.properties
${CMAKE_CURRENT_LIST_DIR}/android/gradlew
${CMAKE_CURRENT_LIST_DIR}/android/gradlew.bat
${CMAKE_CURRENT_LIST_DIR}/android/gradle.properties
${CMAKE_CURRENT_LIST_DIR}/android/res/values/libs.xml
${CMAKE_CURRENT_LIST_DIR}/android/src/org/amnezia/vpn/OpenVPNThreadv3.kt
${CMAKE_CURRENT_LIST_DIR}/android/src/org/amnezia/vpn/VpnService.kt
${CMAKE_CURRENT_LIST_DIR}/android/src/org/amnezia/vpn/VpnServiceBinder.kt
${CMAKE_CURRENT_LIST_DIR}/android/src/org/amnezia/vpn/qt/VPNPermissionHelper.kt
${CMAKE_CURRENT_BINARY_DIR}
)
set_property(TARGET ${PROJECT}
QT_ANDROID_PACKAGE_SOURCE_DIR
${CMAKE_CURRENT_LIST_DIR}/android
)
foreach(abi IN ANDROID_ABIS)
if(ANDROID_TARGET_ARCH EQUAL ${abi})
set(LIBS ${LIBS}
${CMAKE_CURRENT_LIST_DIR}/3rd/OpenSSL/lib/android/${abi}/libcrypto.a
${CMAKE_CURRENT_LIST_DIR}/3rd/OpenSSL/lib/android/${abi}/libssl.a
)
endif()
set_property(TARGET ${PROJECT} PROPERTY QT_ANDROID_EXTRA_LIBS
${CMAKE_CURRENT_LIST_DIR}/android/lib/wireguard/${abi}/libwg.so
${CMAKE_CURRENT_LIST_DIR}/android/lib/wireguard/${abi}/libwg-go.so
${CMAKE_CURRENT_LIST_DIR}/android/lib/wireguard/${abi}/libwg-quick.so
${CMAKE_CURRENT_LIST_DIR}/android/lib/openvpn/${abi}/libjbcrypto.so
${CMAKE_CURRENT_LIST_DIR}/android/lib/openvpn/${abi}/libopenvpn.so
${CMAKE_CURRENT_LIST_DIR}/android/lib/openvpn/${abi}/libopvpnutil.so
${CMAKE_CURRENT_LIST_DIR}/android/lib/openvpn/${abi}/libovpn3.so
${CMAKE_CURRENT_LIST_DIR}/android/lib/openvpn/${abi}/libovpnexec.so
)
endforeach()
endif()
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