diff --git a/client/cmake/ios.cmake b/client/cmake/ios.cmake index 0bfafb48..23bf5a66 100644 --- a/client/cmake/ios.cmake +++ b/client/cmake/ios.cmake @@ -1,20 +1,5 @@ message("Client ==> iOS build") -# Đường dẫn tới thư mục chứa HevSocks5Tunnel.xcframework -set(HEV_SOCKS5_TUNNEL_PATH "${CMAKE_CURRENT_SOURCE_DIR}/3rd-prebuilt/3rd-prebuilt/xray") - -# Đường dẫn tới thư viện .a -set(HEV_SOCKS5_TUNNEL_LIB "${HEV_SOCKS5_TUNNEL_PATH}/ios/libhev-socks5-tunnel.a") - -# Đường dẫn tới tệp header -set(HEV_SOCKS5_TUNNEL_INCLUDE_DIR "${HEV_SOCKS5_TUNNEL_PATH}/ios/Headers") - -# Thêm tệp header vào include directories -target_include_directories(${PROJECT} PRIVATE ${HEV_SOCKS5_TUNNEL_INCLUDE_DIR}) - -# Liên kết thư viện tĩnh vào mục tiêu (target) của bạn -target_link_libraries(${PROJECT} PRIVATE ${HEV_SOCKS5_TUNNEL_LIB}) - set_target_properties(${PROJECT} PROPERTIES MACOSX_BUNDLE TRUE) set(CMAKE_OSX_ARCHITECTURES "x86_64" CACHE INTERNAL "" FORCE) set(CMAKE_OSX_DEPLOYMENT_TARGET 10.15) diff --git a/client/ios/networkextension/CMakeLists.txt b/client/ios/networkextension/CMakeLists.txt index 2296fb0d..7ab941e5 100644 --- a/client/ios/networkextension/CMakeLists.txt +++ b/client/ios/networkextension/CMakeLists.txt @@ -103,12 +103,19 @@ find_library(FW_LIBRESOLV libresolv.9.tbd) -set_property(TARGET networkextension PROPERTY XCODE_EMBED_FRAMEWORKS - "${CMAKE_CURRENT_SOURCE_DIR}/3rd/OpenVPNAdapter/build/Release-macos/OpenVPNAdapter.framework" - ) +# Set the root directory +set(CLIENT_ROOT_DIR ${CMAKE_CURRENT_LIST_DIR}/../..) -set(CMAKE_XCODE_ATTRIBUTE_FRAMEWORK_SEARCH_PATHS ${CMAKE_CURRENT_SOURCE_DIR}/3rd/OpenVPNAdapter/build/Release-macos) -target_link_libraries("networkextension" PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/3rd/OpenVPNAdapter/build/Release-macos/OpenVPNAdapter.framework") +# Embedding the framework using CLIENT_ROOT_DIR +set_property(TARGET networkextension PROPERTY XCODE_EMBED_FRAMEWORKS + "${CLIENT_ROOT_DIR}/3rd/OpenVPNAdapter/build/Release-macos/OpenVPNAdapter.framework" +) + +# Setting the framework search paths using CLIENT_ROOT_DIR +set(CMAKE_XCODE_ATTRIBUTE_FRAMEWORK_SEARCH_PATHS "${CLIENT_ROOT_DIR}/3rd/OpenVPNAdapter/build/Release-macos") + +# Linking the framework using CLIENT_ROOT_DIR +target_link_libraries("networkextension" PRIVATE "${CLIENT_ROOT_DIR}/3rd/OpenVPNAdapter/build/Release-macos/OpenVPNAdapter.framework") @@ -182,6 +189,10 @@ target_include_directories(networkextension PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) target_link_libraries(networkextension PRIVATE ${CLIENT_ROOT_DIR}/3rd-prebuilt/3rd-prebuilt/wireguard/ios/arm64/libwg-go.a) -target_link_libraries(networkextension PRIVATE ${CLIENT_ROOT_DIR}/3rd-prebuilt/3rd-prebuilt/xray/HevSocks5Tunnel.xcframework/macos-arm64_x86_64/libhev-socks5-tunnel.a) +# Print the root directory for debugging purposes +message("---------") +message(${CLIENT_ROOT_DIR}) +message(${CLIENT_ROOT_DIR}/3rd-prebuilt/3rd-prebuilt/xray/HevSocks5Tunnel.xcframework/macos-arm64_x86_64/libhev-socks5-tunnel.a) +target_link_libraries("networkextension" PRIVATE "${CLIENT_ROOT_DIR}/3rd-prebuilt/3rd-prebuilt/xray/HevSocks5Tunnel.xcframework/macos-arm64_x86_64/libhev-socks5-tunnel.a") -target_include_directories(networkextension PRIVATE ${CLIENT_ROOT_DIR}/3rd-prebuilt/3rd-prebuilt/xray/HevSocks5Tunnel.xcframework/macos-arm64_x86_64/Headers) +target_include_directories(networkextension PRIVATE ${CLIENT_ROOT_DIR}/3rd-prebuilt/3rd-prebuilt/xray/HevSocks5Tunnel.xcframework/macos-arm64_x86_64/Headers) \ No newline at end of file diff --git a/client/ios/networkextension/WireGuardNetworkExtension-Bridging-Header.h b/client/ios/networkextension/WireGuardNetworkExtension-Bridging-Header.h index 8e4a1268..f911e186 100644 --- a/client/ios/networkextension/WireGuardNetworkExtension-Bridging-Header.h +++ b/client/ios/networkextension/WireGuardNetworkExtension-Bridging-Header.h @@ -22,4 +22,5 @@ void write_msg_to_log(const char* tag, const char* msg); // Khai báo hàm C để Swift có thể sử dụng void hev_socks5_tunnel_quit(void); -void hev_socks5_tunnel_main(void); \ No newline at end of file +// Updated function definition in C +int hev_socks5_tunnel_main(const char* configFile, int fd);