From 5e5fb917fee4ee1d5d31adeb5566ae02a27cf031 Mon Sep 17 00:00:00 2001 From: Macbook Date: Sat, 5 Oct 2024 00:10:05 +0700 Subject: [PATCH] error UIKet --- CMakeLists.txt | 3 ++- client/CMakeLists.txt | 8 +++++--- client/cmake/macos_ne.cmake | 2 +- client/macos/scripts/clangwrap.sh | 19 +++++++++++++++++++ client/macos/scripts/openvpn.sh | 4 +++- 5 files changed, 30 insertions(+), 6 deletions(-) create mode 100755 client/macos/scripts/clangwrap.sh diff --git a/CMakeLists.txt b/CMakeLists.txt index 2fa082af..ad6453b3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,7 +26,8 @@ elseif(${CMAKE_SYSTEM_NAME} STREQUAL "iOS") elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Emscripten") set(MZ_PLATFORM_NAME "wasm") endif() - +message(STATUS "Platform: ${MZ_PLATFORM_NAME}") +message(STATUS "Version: ${MACOS_NE}") set(QT_BUILD_TOOLS_WHEN_CROSS_COMPILING ON) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) diff --git a/client/CMakeLists.txt b/client/CMakeLists.txt index ab9a28cb..2742eb9f 100644 --- a/client/CMakeLists.txt +++ b/client/CMakeLists.txt @@ -45,14 +45,14 @@ set(LIBS ${LIBS} ) #Macos Network Extension doesn't need Widgets -if(WIN32 OR (APPLE AND NOT IOS) OR (LINUX AND NOT ANDROID) OR (APPLE NOT MACOS_NE)) +if(WIN32 OR (APPLE AND NOT IOS) OR (LINUX AND NOT ANDROID) OR (APPLE AND NOT MACOS_NE)) set(LIBS ${LIBS} Qt6::Widgets) endif() qt_standard_project_setup() qt_add_executable(${PROJECT} MANUAL_FINALIZATION) -if(WIN32 OR (APPLE AND NOT IOS) OR (LINUX AND NOT ANDROID) OR (APPLE NOT MACOS_NE)) +if(WIN32 OR (APPLE AND NOT IOS) OR (LINUX AND NOT ANDROID) OR (APPLE AND NOT MACOS_NE)) qt_add_repc_replicas(${PROJECT} ${CMAKE_CURRENT_LIST_DIR}/../ipc/ipc_interface.rep) qt_add_repc_replicas(${PROJECT} ${CMAKE_CURRENT_LIST_DIR}/../ipc/ipc_process_interface.rep) qt_add_repc_replicas(${PROJECT} ${CMAKE_CURRENT_LIST_DIR}/../ipc/ipc_process_tun2socks.rep) @@ -90,12 +90,14 @@ qt6_add_resources(QRC ${I18NQRC} ${CMAKE_CURRENT_BINARY_DIR}/translations.qrc) # -- i18n end if(IOS) + message("Building for iOS") execute_process(COMMAND bash ${CMAKE_CURRENT_LIST_DIR}/ios/scripts/openvpn.sh args WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}) endif() # Build openvpn adapter for MacOS Network Extension if(MACOS_NE) + message("Building for MacOS Network Extension") execute_process(COMMAND bash ${CMAKE_CURRENT_LIST_DIR}/macos/scripts/openvpn.sh args WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}) endif() @@ -319,7 +321,7 @@ if(LINUX AND NOT ANDROID) endif() # Macos Network Extension doesn't need -if(WIN32 OR (APPLE AND NOT IOS) OR (LINUX AND NOT ANDROID) OR (APPLE NOT MACOS_NE)) +if(WIN32 OR (APPLE AND NOT IOS) OR (LINUX AND NOT ANDROID) OR (APPLE AND NOT MACOS_NE)) message("Client desktop build") add_compile_definitions(AMNEZIA_DESKTOP) diff --git a/client/cmake/macos_ne.cmake b/client/cmake/macos_ne.cmake index 95f74093..85fe4fa6 100644 --- a/client/cmake/macos_ne.cmake +++ b/client/cmake/macos_ne.cmake @@ -1,4 +1,4 @@ -message("Client ==> iOS build") +message("Client ==> MacOS NE build") set_target_properties(${PROJECT} PROPERTIES MACOSX_BUNDLE TRUE) set(CMAKE_OSX_ARCHITECTURES "x86_64" CACHE INTERNAL "" FORCE) diff --git a/client/macos/scripts/clangwrap.sh b/client/macos/scripts/clangwrap.sh new file mode 100755 index 00000000..1d0db357 --- /dev/null +++ b/client/macos/scripts/clangwrap.sh @@ -0,0 +1,19 @@ +#!/bin/sh + +# go/clangwrap_macos.sh + +# Lấy đường dẫn SDK cho macOS +SDK_PATH=`xcrun --sdk macosx --show-sdk-path` + +# Tìm đường dẫn đến `clang` cho macOS +CLANG=`xcrun --sdk macosx --find clang` + +# Xác định kiến trúc máy dựa trên biến GOARCH +if [ "$GOARCH" == "amd64" ]; then + CARCH="x86_64" +elif [ "$GOARCH" == "arm64" ]; then + CARCH="arm64" +fi + +# Thực thi `clang` với các tùy chọn cụ thể cho macOS +exec $CLANG -arch $CARCH -isysroot $SDK_PATH -mmacosx-version-min=10.15 "$@" diff --git a/client/macos/scripts/openvpn.sh b/client/macos/scripts/openvpn.sh index ce8f6054..18c4729d 100644 --- a/client/macos/scripts/openvpn.sh +++ b/client/macos/scripts/openvpn.sh @@ -1,9 +1,11 @@ XCODEBUILD="/usr/bin/xcodebuild" WORKINGDIR=`pwd` PATCH="/usr/bin/patch" - +echo "Building OpenVPNAdapter for macOS ..." # Copy the Project.xcconfig settings to amnezia.xcconfig cat $WORKINGDIR/3rd/OpenVPNAdapter/Configuration/Project.xcconfig > $WORKINGDIR/3rd/OpenVPNAdapter/Configuration/amnezia.xcconfig +OTHER_LDFLAGS[sdk=iphoneos*] = -framework UIKit +OTHER_LDFLAGS[sdk=macosx*] = -framework Cocoa # Append macOS-specific build directory configurations to amnezia.xcconfig cat << EOF >> $WORKINGDIR/3rd/OpenVPNAdapter/Configuration/amnezia.xcconfig