Frameworks, libcrypto, libssl and some properties added for iOS.

This commit is contained in:
Shahzain Ali 2022-11-29 18:00:59 +05:00
parent a0b5491178
commit de9167cae6
2 changed files with 89 additions and 20 deletions

View file

@ -42,6 +42,9 @@ set(BUILD_SHARED_LIBS OFF)
add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/3rd/qtkeychain) add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/3rd/qtkeychain)
set(LIBS ${LIBS} qt6keychain) set(LIBS ${LIBS} qt6keychain)
qt_add_executable(${PROJECT} ${SOURCES} ${HEADERS} ${RESOURCES} ${QRC})
include_directories( include_directories(
${CMAKE_CURRENT_LIST_DIR}/3rd/QSimpleCrypto/include ${CMAKE_CURRENT_LIST_DIR}/3rd/QSimpleCrypto/include
${CMAKE_CURRENT_LIST_DIR}/3rd/OpenSSL/include ${CMAKE_CURRENT_LIST_DIR}/3rd/OpenSSL/include
@ -163,20 +166,51 @@ if(WIN32)
endif() endif()
if(APPLE) if(APPLE)
add_compile_definitions(MVPN_MACOS) if(IOS)
message("ios in mac")
#do nothing, IOS is added in below
else() #mac
message("MAC build")
set(HEADERS ${HEADERS} ${CMAKE_CURRENT_LIST_DIR}/ui/macos_util.h)
set(SOURCES ${SOURCES} ${CMAKE_CURRENT_LIST_DIR}/ui/macos_util.mm)
# set(CMAKE_OSX_DEPLOYMENT_TARGET 10.14)
add_compile_definitions(MVPN_MACOS)
# ICON = $$PWD/images/app.icns # ICON = $$PWD/images/app.icns
set(HEADERS ${HEADERS} ${CMAKE_CURRENT_LIST_DIR}/ui/macos_util.h)
set(SOURCES ${SOURCES} ${CMAKE_CURRENT_LIST_DIR}/ui/macos_util.mm)
# LIBS += -framework Cocoa -framework ApplicationServices -framework CoreServices -framework Foundation -framework AppKit -framework Security message(STATUS "test ${PROJECT_SOURCE_DIR}")
# LIBS += $$PWD/3rd/OpenSSL/lib/macos/x86_64/libcrypto.a find_library(LIB_LIBCRYPTO NAMES "libcrypto.a"
# LIBS += $$PWD/3rd/OpenSSL/lib/macos/x86_64/libssl.a PATHS ${PROJECT_SOURCE_DIR}/3rd/OpenSSL/lib/macos/x86_64/ NO_DEFAULT_PATH)
find_library(LIB_SSL NAMES "libssl.a"
PATHS ${PROJECT_SOURCE_DIR}/3rd/OpenSSL/lib/macos/x86_64/ NO_DEFAULT_PATH)
find_library(FW_COCOA Cocoa)
find_library(FW_APPLICATIONSERVICES ApplicationServices)
find_library(FW_CORESERVICES CoreServices)
find_library(FW_FOUNDATION Foundation)
find_library(FW_APPKIT AppKit)
find_library(FW_SECURITY Security)
target_link_libraries(${PROJECT} PRIVATE ${FW_COCOA})
target_link_libraries(${PROJECT} PRIVATE ${FW_APPLICATIONSERVICES})
target_link_libraries(${PROJECT} PRIVATE ${FW_CORESERVICES})
target_link_libraries(${PROJECT} PRIVATE ${FW_FOUNDATION})
target_link_libraries(${PROJECT} PRIVATE ${FW_APPKIT})
target_link_libraries(${PROJECT} PRIVATE ${FW_SECURITY})
target_link_libraries(${PROJECT} PRIVATE ${LIB_LIBCRYPTO})
target_link_libraries(${PROJECT} PRIVATE ${LIB_SSL})
endif()
endif() endif()
if(LINUX AND NOT ANDROID) if(LINUX AND NOT ANDROID)
add_compile_definitions(MVPN_LINUX) add_compile_definitions(MVPN_LINUX)
@ -240,18 +274,25 @@ endif()
if(IOS) if(IOS)
message("Client iOS build") message("Client iOS build")
target_include_directories(${PROJECT} PRIVATE ${Qt6Gui_PRIVATE_INCLUDE_DIRS})
# CONFIG += static # CONFIG += static
# CONFIG += file_copies # CONFIG += file_copies
# # For the authentication
# LIBS += -framework AuthenticationServices
# # For notifications find_library(FW_AUTHENTICATIONSERVICES AuthenticationServices)
# LIBS += -framework UIKit find_library(FW_UIKIT UIKit)
# LIBS += -framework Foundation find_library(FW_FOUNDATION Foundation)
# LIBS += -framework StoreKit find_library(FW_STOREKIT StoreKit)
# LIBS += -framework UserNotifications find_library(FW_USERNOTIFICATIONS UserNotifications)
target_link_libraries(${PROJECT} PRIVATE ${FW_AUTHENTICATIONSERVICES})
target_link_libraries(${PROJECT} PRIVATE ${FW_UIKIT})
target_link_libraries(${PROJECT} PRIVATE ${FW_FOUNDATION})
target_link_libraries(${PROJECT} PRIVATE ${FW_STOREKIT})
target_link_libraries(${PROJECT} PRIVATE ${FW_USERNOTIFICATIONS})
add_compile_definitions(MVPN_IOS) add_compile_definitions(MVPN_IOS)
@ -267,7 +308,7 @@ if(IOS)
${CMAKE_CURRENT_LIST_DIR}/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? yes in iOS we are using native
# SOURCES -= # SOURCES -=
# platforms/ios/QRCodeReaderBase.cpp # platforms/ios/QRCodeReaderBase.cpp
# platforms/ios/MobileUtils.cpp # platforms/ios/MobileUtils.cpp
@ -284,11 +325,40 @@ if(IOS)
${CMAKE_CURRENT_LIST_DIR}/platforms/ios/MobileUtils.mm ${CMAKE_CURRENT_LIST_DIR}/platforms/ios/MobileUtils.mm
) )
set_target_properties(${PROJECT} PROPERTIES XCODE_ATTRIBUTE_ENABLE_BITCODE "NO")
# Q_ENABLE_BITCODE.value = NO # Q_ENABLE_BITCODE.value = NO
# Q_ENABLE_BITCODE.name = ENABLE_BITCODE # Q_ENABLE_BITCODE.name = ENABLE_BITCODE
# QMAKE_MAC_XCODE_SETTINGS += Q_ENABLE_BITCODE # QMAKE_MAC_XCODE_SETTINGS += Q_ENABLE_BITCODE
endif() endif()
if(CMAKE_OSX_SYSROOT STREQUAL "iphoneos")
message("Building for iPhone OS")
set(CMAKE_OSX_DEPLOYMENT_TARGET 13.0)
set_target_properties(${PROJECT} PROPERTIES XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "org.amnezia"
OUTPUT_NAME "Mozilla VPN"
XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY "1"
XCODE_ATTRIBUTE_DEVELOPMENT_TEAM "X7UJ388FXK"
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_SOURCE_DIR}/client/ios/app/Info.plist
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Apple Distribution"
)
endif()
#if(IPHONEOS) #if(IPHONEOS)
# message("Building for iPhone OS") # message("Building for iPhone OS")
# QMAKE_TARGET_BUNDLE_PREFIX = org.amnezia # QMAKE_TARGET_BUNDLE_PREFIX = org.amnezia
@ -296,11 +366,11 @@ endif()
# QMAKE_IOS_DEPLOYMENT_TARGET = 12.0 # QMAKE_IOS_DEPLOYMENT_TARGET = 12.0
# QMAKE_APPLE_TARGETED_DEVICE_FAMILY = 1 # QMAKE_APPLE_TARGETED_DEVICE_FAMILY = 1
# QMAKE_DEVELOPMENT_TEAM = X7UJ388FXK # QMAKE_DEVELOPMENT_TEAM = X7UJ388FXK
# QMAKE_PROVISIONING_PROFILE = f2fefb59-14aa-4aa9-ac14-1d5531b06dcc # QMAKE_PROVISIONING_PROFILE = f2fefb59-14aa-4aa9-ac14-1d5531b06dcc not added yet
# QMAKE_XCODE_CODE_SIGN_IDENTITY = "Apple Distribution" # QMAKE_XCODE_CODE_SIGN_IDENTITY = "Apple Distribution"
# QMAKE_INFO_PLIST = $$PWD/ios/app/Info.plist # QMAKE_INFO_PLIST = $$PWD/ios/app/Info.plist
# XCODEBUILD_FLAGS += -allowProvisioningUpdates # XCODEBUILD_FLAGS += -allowProvisioningUpdates not added yet
# DEFINES += iphoneos # DEFINES += iphoneos
@ -318,7 +388,6 @@ endif()
# NETWORKEXTENSION=1 # NETWORKEXTENSION=1
qt_add_executable(${PROJECT} ${SOURCES} ${HEADERS} ${RESOURCES} ${QRC})
qt_add_translations(${PROJECT} TS_FILES qt_add_translations(${PROJECT} TS_FILES
${CMAKE_CURRENT_LIST_DIR}/translations/amneziavpn_ru.ts) ${CMAKE_CURRENT_LIST_DIR}/translations/amneziavpn_ru.ts)

View file

@ -1,9 +1,9 @@
#ifndef IOS_VPNPROTOCOL_H #ifndef IOS_VPNPROTOCOL_H
#define IOS_VPNPROTOCOL_H #define IOS_VPNPROTOCOL_H
#include "platforms/ios/json.h"
#include "vpnprotocol.h" #include "vpnprotocol.h"
#include "protocols/protocols_defs.h" #include "protocols/protocols_defs.h"
#include "json.h"
using namespace amnezia; using namespace amnezia;