From d71d721ef76ffd35ef6c1deddc9daed7aa93a4ea Mon Sep 17 00:00:00 2001 From: Pan Block Date: Thu, 14 May 2026 16:20:06 -0700 Subject: [PATCH 01/14] fix ios cmake build issue --- Source/Task/iOS/ios_WaitTimer.mm | 4 ++-- Source/Task/iOS/ios_WaitTimerImpl.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Source/Task/iOS/ios_WaitTimer.mm b/Source/Task/iOS/ios_WaitTimer.mm index 8ddc5d19..4487bc2c 100644 --- a/Source/Task/iOS/ios_WaitTimer.mm +++ b/Source/Task/iOS/ios_WaitTimer.mm @@ -43,7 +43,7 @@ uint64_t DueTimeFromDeadline(Deadline deadline) noexcept } } -HRESULT WaitTimerImpl::Initialize(_In_opt_ void* context, _In_ WaitTimerCallback* callback){ +HRESULT WaitTimerImpl::Initialize(_In_opt_ void* context, _In_ OS::WaitTimerCallback* callback){ m_context = context; m_callback = callback; m_target = [ios_WaitTimer_target new]; @@ -95,7 +95,7 @@ uint64_t DueTimeFromDeadline(Deadline deadline) noexcept Terminate(); } -HRESULT WaitTimer::Initialize(_In_opt_ void* context, _In_ WaitTimerCallback* callback) noexcept +HRESULT OS::WaitTimer::Initialize(_In_opt_ void* context, _In_ OS::WaitTimerCallback* callback) noexcept { if (m_impl != nullptr || callback == nullptr) { diff --git a/Source/Task/iOS/ios_WaitTimerImpl.h b/Source/Task/iOS/ios_WaitTimerImpl.h index 17c255ec..5a82f0c7 100644 --- a/Source/Task/iOS/ios_WaitTimerImpl.h +++ b/Source/Task/iOS/ios_WaitTimerImpl.h @@ -16,14 +16,14 @@ class WaitTimerImpl public: WaitTimerImpl(); ~WaitTimerImpl(); - HRESULT Initialize(_In_opt_ void* context, _In_ WaitTimerCallback* callback); + HRESULT Initialize(_In_opt_ void* context, _In_ OS::WaitTimerCallback* callback); void Start(_In_ uint64_t dueTime); void Cancel(); void TimerFired(); private: void* m_context; - WaitTimerCallback* m_callback; + OS::WaitTimerCallback* m_callback; ios_WaitTimer_target* m_target; NSTimer* m_timer; }; From 1a7d147da3690e1499be77d7d82a249624b2688e Mon Sep 17 00:00:00 2001 From: Pan Block Date: Thu, 14 May 2026 16:40:05 -0700 Subject: [PATCH 02/14] try fix ios --- Source/Task/iOS/ios_WaitTimer.mm | 9 +++++++-- Source/Task/iOS/ios_WaitTimerImpl.h | 9 +++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/Source/Task/iOS/ios_WaitTimer.mm b/Source/Task/iOS/ios_WaitTimer.mm index 4487bc2c..721d1a0b 100644 --- a/Source/Task/iOS/ios_WaitTimer.mm +++ b/Source/Task/iOS/ios_WaitTimer.mm @@ -27,6 +27,9 @@ uint64_t DueTimeFromDeadline(Deadline deadline) noexcept } } +namespace OS +{ + WaitTimerImpl::WaitTimerImpl() : m_context(nullptr), m_callback(nullptr), @@ -43,7 +46,7 @@ uint64_t DueTimeFromDeadline(Deadline deadline) noexcept } } -HRESULT WaitTimerImpl::Initialize(_In_opt_ void* context, _In_ OS::WaitTimerCallback* callback){ +HRESULT WaitTimerImpl::Initialize(_In_opt_ void* context, _In_ WaitTimerCallback* callback){ m_context = context; m_callback = callback; m_target = [ios_WaitTimer_target new]; @@ -95,7 +98,7 @@ uint64_t DueTimeFromDeadline(Deadline deadline) noexcept Terminate(); } -HRESULT OS::WaitTimer::Initialize(_In_opt_ void* context, _In_ OS::WaitTimerCallback* callback) noexcept +HRESULT WaitTimer::Initialize(_In_opt_ void* context, _In_ WaitTimerCallback* callback) noexcept { if (m_impl != nullptr || callback == nullptr) { @@ -142,3 +145,5 @@ uint64_t DueTimeFromDeadline(Deadline deadline) noexcept auto deadline = Clock::now() + std::chrono::milliseconds(msFromNow); return DueTimeFromDeadline(deadline); } + +} // namespace OS diff --git a/Source/Task/iOS/ios_WaitTimerImpl.h b/Source/Task/iOS/ios_WaitTimerImpl.h index 5a82f0c7..6220143c 100644 --- a/Source/Task/iOS/ios_WaitTimerImpl.h +++ b/Source/Task/iOS/ios_WaitTimerImpl.h @@ -11,23 +11,28 @@ #include "../WaitTimer.h" #include "ios_WaitTimer_target.h" +namespace OS +{ + class WaitTimerImpl { public: WaitTimerImpl(); ~WaitTimerImpl(); - HRESULT Initialize(_In_opt_ void* context, _In_ OS::WaitTimerCallback* callback); + HRESULT Initialize(_In_opt_ void* context, _In_ WaitTimerCallback* callback); void Start(_In_ uint64_t dueTime); void Cancel(); void TimerFired(); private: void* m_context; - OS::WaitTimerCallback* m_callback; + WaitTimerCallback* m_callback; ios_WaitTimer_target* m_target; NSTimer* m_timer; }; +} // namespace OS + #endif /* ios_WaitTimerImpl_h */ From 6e22029425b35717e27cae28ef180b1beb432ec2 Mon Sep 17 00:00:00 2001 From: Pan Block Date: Thu, 14 May 2026 16:58:16 -0700 Subject: [PATCH 03/14] + --- Source/Task/iOS/ios_WaitTimer_target.mm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Task/iOS/ios_WaitTimer_target.mm b/Source/Task/iOS/ios_WaitTimer_target.mm index 06979cfc..29c23ae6 100644 --- a/Source/Task/iOS/ios_WaitTimer_target.mm +++ b/Source/Task/iOS/ios_WaitTimer_target.mm @@ -13,7 +13,7 @@ @implementation ios_WaitTimer_target - (void)timerFireMethod:(NSTimer*)timer { auto value = (NSValue*)timer.userInfo; - auto impl = static_cast(value.pointerValue); + auto impl = static_cast(value.pointerValue); impl->TimerFired(); } From 9ae2635244aec04c630fa9e2bf42b6b10203d130 Mon Sep 17 00:00:00 2001 From: Pan Block Date: Thu, 14 May 2026 17:13:58 -0700 Subject: [PATCH 04/14] + --- Source/Task/iOS/ios_WaitTimer.mm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Source/Task/iOS/ios_WaitTimer.mm b/Source/Task/iOS/ios_WaitTimer.mm index 721d1a0b..53257ebe 100644 --- a/Source/Task/iOS/ios_WaitTimer.mm +++ b/Source/Task/iOS/ios_WaitTimer.mm @@ -100,7 +100,7 @@ uint64_t DueTimeFromDeadline(Deadline deadline) noexcept HRESULT WaitTimer::Initialize(_In_opt_ void* context, _In_ WaitTimerCallback* callback) noexcept { - if (m_impl != nullptr || callback == nullptr) + if (m_impl.load() != nullptr || callback == nullptr) { ASSERT(false); return E_UNEXPECTED; @@ -127,12 +127,12 @@ uint64_t DueTimeFromDeadline(Deadline deadline) noexcept void WaitTimer::Start(_In_ uint64_t dueTime) noexcept { - m_impl->Start(dueTime); + m_impl.load()->Start(dueTime); } void WaitTimer::Cancel() noexcept { - m_impl->Cancel(); + m_impl.load()->Cancel(); } uint64_t WaitTimer::GetCurrentTime() noexcept From 01b0f65f9abd3af1f536eaae436ef4003524b346 Mon Sep 17 00:00:00 2001 From: Pan Block Date: Thu, 14 May 2026 17:17:26 -0700 Subject: [PATCH 05/14] add cmake --- Build/libHttpClient.iOS.CMake/CMakeLists.txt | 99 ++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 Build/libHttpClient.iOS.CMake/CMakeLists.txt diff --git a/Build/libHttpClient.iOS.CMake/CMakeLists.txt b/Build/libHttpClient.iOS.CMake/CMakeLists.txt new file mode 100644 index 00000000..5e2d43b2 --- /dev/null +++ b/Build/libHttpClient.iOS.CMake/CMakeLists.txt @@ -0,0 +1,99 @@ +cmake_minimum_required(VERSION 3.6) + +get_filename_component(PATH_TO_ROOT "../.." ABSOLUTE) + +project("libHttpClient.iOS") + +set(HC_WEBSOCKETS FALSE) + +add_definitions(-D_NO_ASYNCRTIMP -D_NO_PPLXIMP -D_NO_XSAPIIMP -DXSAPI_BUILD) + +if(HC_WEBSOCKETS) + message(STATUS "websockets usage is on") +else() + message(STATUS "websockets usage is off") + add_definitions(-DHC_NOWEBSOCKETS) +endif() + +########################################### +### Set up paths for source and include ### +########################################### + +include("../libHttpClient.CMake/GetCommonHCSourceFiles.cmake") +get_common_hc_source_files( + PUBLIC_SOURCE_FILES + HC_COMMON_SOURCE_FILES + GLOBAL_SOURCE_FILES + PLATFORM_SOURCE_FILES + WEBSOCKET_SOURCE_FILES + TASK_SOURCE_FILES + MOCK_SOURCE_FILES + HTTP_SOURCE_FILES + LOGGER_SOURCE_FILES + "${PATH_TO_ROOT}" + ) + +set(COMMON_SOURCE_FILES + "${PUBLIC_SOURCE_FILES}" + "${HC_COMMON_SOURCE_FILES}" + "${GLOBAL_SOURCE_FILES}" + "${PLATFORM_SOURCE_FILES}" + "${WEBSOCKET_SOURCE_FILES}" + "${MOCK_SOURCE_FILES}" + "${HTTP_SOURCE_FILES}" + "${LOGGER_SOURCE_FILES}" + "${TASK_SOURCE_FILES}" + ) + +set(IOS_SOURCE_FILES + # Task + "${PATH_TO_ROOT}/Source/Task/ThreadPool_stl.cpp" + "${PATH_TO_ROOT}/Source/Task/WaitTimer_stl.cpp" + "${PATH_TO_ROOT}/Source/Task/iOS/ios_WaitTimer.mm" + "${PATH_TO_ROOT}/Source/Task/iOS/ios_WaitTimer_target.mm" + "${PATH_TO_ROOT}/Source/Task/iOS/ios_WaitTimer_target.h" + "${PATH_TO_ROOT}/Source/Task/iOS/ios_WaitTimerImpl.h" + # HTTP + "${PATH_TO_ROOT}/Source/HTTP/Apple/http_apple.mm" + "${PATH_TO_ROOT}/Source/HTTP/Apple/http_apple.h" + # Common + "${PATH_TO_ROOT}/Source/Common/Apple/utils_apple.mm" + "${PATH_TO_ROOT}/Source/Common/Apple/utils_apple.h" + # Platform + "${PATH_TO_ROOT}/Source/Platform/Apple/PlatformComponents_Apple.cpp" + "${PATH_TO_ROOT}/Source/Platform/Apple/PlatformTrace_Apple.cpp" + ) + +set(COMMON_INCLUDE_DIRS + "${PATH_TO_ROOT}/" + "${PATH_TO_ROOT}/Source/" + "${PATH_TO_ROOT}/Source/Common" + "${PATH_TO_ROOT}/Source/HTTP" + "${PATH_TO_ROOT}/Source/Logger" + "${PATH_TO_ROOT}/Source/Platform" + "${PATH_TO_ROOT}/Source/Task" + "${PATH_TO_ROOT}/Source/WebSocket" + "${PATH_TO_ROOT}/Include" + "${PATH_TO_ROOT}/Include/httpClient" + ) + +######################### +### Set up static lib ### +######################### + +set(ALL_SOURCE_FILES ${COMMON_SOURCE_FILES} ${IOS_SOURCE_FILES}) +list(SORT ALL_SOURCE_FILES) + +add_library( + "${PROJECT_NAME}" + ${ALL_SOURCE_FILES} + ) + +target_include_directories( + "${PROJECT_NAME}" + PRIVATE + "${COMMON_INCLUDE_DIRS}" + ) + +message(STATUS "CMAKE_SYSTEM_VERSION='${CMAKE_SYSTEM_VERSION}'") +message(STATUS "CMAKE_SYSTEM_NAME='${CMAKE_SYSTEM_NAME}'") From 7c242097595baf29f8563c03696f35774ccf52c2 Mon Sep 17 00:00:00 2001 From: Pan Block Date: Mon, 18 May 2026 16:21:24 -0700 Subject: [PATCH 06/14] pr --- Build/libHttpClient.iOS.CMake/CMakeLists.txt | 1 - Source/Task/iOS/ios_WaitTimer.mm | 5 ----- Source/Task/iOS/ios_WaitTimerImpl.h | 6 ------ Source/Task/iOS/ios_WaitTimer_target.mm | 2 +- 4 files changed, 1 insertion(+), 13 deletions(-) diff --git a/Build/libHttpClient.iOS.CMake/CMakeLists.txt b/Build/libHttpClient.iOS.CMake/CMakeLists.txt index 5e2d43b2..915046f2 100644 --- a/Build/libHttpClient.iOS.CMake/CMakeLists.txt +++ b/Build/libHttpClient.iOS.CMake/CMakeLists.txt @@ -48,7 +48,6 @@ set(COMMON_SOURCE_FILES set(IOS_SOURCE_FILES # Task "${PATH_TO_ROOT}/Source/Task/ThreadPool_stl.cpp" - "${PATH_TO_ROOT}/Source/Task/WaitTimer_stl.cpp" "${PATH_TO_ROOT}/Source/Task/iOS/ios_WaitTimer.mm" "${PATH_TO_ROOT}/Source/Task/iOS/ios_WaitTimer_target.mm" "${PATH_TO_ROOT}/Source/Task/iOS/ios_WaitTimer_target.h" diff --git a/Source/Task/iOS/ios_WaitTimer.mm b/Source/Task/iOS/ios_WaitTimer.mm index 53257ebe..26e0ab46 100644 --- a/Source/Task/iOS/ios_WaitTimer.mm +++ b/Source/Task/iOS/ios_WaitTimer.mm @@ -27,9 +27,6 @@ uint64_t DueTimeFromDeadline(Deadline deadline) noexcept } } -namespace OS -{ - WaitTimerImpl::WaitTimerImpl() : m_context(nullptr), m_callback(nullptr), @@ -145,5 +142,3 @@ uint64_t DueTimeFromDeadline(Deadline deadline) noexcept auto deadline = Clock::now() + std::chrono::milliseconds(msFromNow); return DueTimeFromDeadline(deadline); } - -} // namespace OS diff --git a/Source/Task/iOS/ios_WaitTimerImpl.h b/Source/Task/iOS/ios_WaitTimerImpl.h index 6220143c..455c0499 100644 --- a/Source/Task/iOS/ios_WaitTimerImpl.h +++ b/Source/Task/iOS/ios_WaitTimerImpl.h @@ -11,9 +11,6 @@ #include "../WaitTimer.h" #include "ios_WaitTimer_target.h" -namespace OS -{ - class WaitTimerImpl { public: @@ -31,8 +28,5 @@ class WaitTimerImpl NSTimer* m_timer; }; -} // namespace OS - - #endif /* ios_WaitTimerImpl_h */ diff --git a/Source/Task/iOS/ios_WaitTimer_target.mm b/Source/Task/iOS/ios_WaitTimer_target.mm index 29c23ae6..06979cfc 100644 --- a/Source/Task/iOS/ios_WaitTimer_target.mm +++ b/Source/Task/iOS/ios_WaitTimer_target.mm @@ -13,7 +13,7 @@ @implementation ios_WaitTimer_target - (void)timerFireMethod:(NSTimer*)timer { auto value = (NSValue*)timer.userInfo; - auto impl = static_cast(value.pointerValue); + auto impl = static_cast(value.pointerValue); impl->TimerFired(); } From 422c0f5bf10bc25a67638cd3b105786e08d14f75 Mon Sep 17 00:00:00 2001 From: Pan Block Date: Mon, 18 May 2026 22:19:07 -0700 Subject: [PATCH 07/14] Revert "pr" This reverts commit 7c242097595baf29f8563c03696f35774ccf52c2. --- Build/libHttpClient.iOS.CMake/CMakeLists.txt | 1 + Source/Task/iOS/ios_WaitTimer.mm | 5 +++++ Source/Task/iOS/ios_WaitTimerImpl.h | 6 ++++++ Source/Task/iOS/ios_WaitTimer_target.mm | 2 +- 4 files changed, 13 insertions(+), 1 deletion(-) diff --git a/Build/libHttpClient.iOS.CMake/CMakeLists.txt b/Build/libHttpClient.iOS.CMake/CMakeLists.txt index 915046f2..5e2d43b2 100644 --- a/Build/libHttpClient.iOS.CMake/CMakeLists.txt +++ b/Build/libHttpClient.iOS.CMake/CMakeLists.txt @@ -48,6 +48,7 @@ set(COMMON_SOURCE_FILES set(IOS_SOURCE_FILES # Task "${PATH_TO_ROOT}/Source/Task/ThreadPool_stl.cpp" + "${PATH_TO_ROOT}/Source/Task/WaitTimer_stl.cpp" "${PATH_TO_ROOT}/Source/Task/iOS/ios_WaitTimer.mm" "${PATH_TO_ROOT}/Source/Task/iOS/ios_WaitTimer_target.mm" "${PATH_TO_ROOT}/Source/Task/iOS/ios_WaitTimer_target.h" diff --git a/Source/Task/iOS/ios_WaitTimer.mm b/Source/Task/iOS/ios_WaitTimer.mm index 26e0ab46..53257ebe 100644 --- a/Source/Task/iOS/ios_WaitTimer.mm +++ b/Source/Task/iOS/ios_WaitTimer.mm @@ -27,6 +27,9 @@ uint64_t DueTimeFromDeadline(Deadline deadline) noexcept } } +namespace OS +{ + WaitTimerImpl::WaitTimerImpl() : m_context(nullptr), m_callback(nullptr), @@ -142,3 +145,5 @@ uint64_t DueTimeFromDeadline(Deadline deadline) noexcept auto deadline = Clock::now() + std::chrono::milliseconds(msFromNow); return DueTimeFromDeadline(deadline); } + +} // namespace OS diff --git a/Source/Task/iOS/ios_WaitTimerImpl.h b/Source/Task/iOS/ios_WaitTimerImpl.h index 455c0499..6220143c 100644 --- a/Source/Task/iOS/ios_WaitTimerImpl.h +++ b/Source/Task/iOS/ios_WaitTimerImpl.h @@ -11,6 +11,9 @@ #include "../WaitTimer.h" #include "ios_WaitTimer_target.h" +namespace OS +{ + class WaitTimerImpl { public: @@ -28,5 +31,8 @@ class WaitTimerImpl NSTimer* m_timer; }; +} // namespace OS + + #endif /* ios_WaitTimerImpl_h */ diff --git a/Source/Task/iOS/ios_WaitTimer_target.mm b/Source/Task/iOS/ios_WaitTimer_target.mm index 06979cfc..29c23ae6 100644 --- a/Source/Task/iOS/ios_WaitTimer_target.mm +++ b/Source/Task/iOS/ios_WaitTimer_target.mm @@ -13,7 +13,7 @@ @implementation ios_WaitTimer_target - (void)timerFireMethod:(NSTimer*)timer { auto value = (NSValue*)timer.userInfo; - auto impl = static_cast(value.pointerValue); + auto impl = static_cast(value.pointerValue); impl->TimerFired(); } From fe16c9ea52a239c5db82367893ce5d944424c732 Mon Sep 17 00:00:00 2001 From: Pan Block Date: Tue, 19 May 2026 12:59:54 -0700 Subject: [PATCH 08/14] pipeline --- Utilities/Pipelines/Tasks/ios-build.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Utilities/Pipelines/Tasks/ios-build.yml b/Utilities/Pipelines/Tasks/ios-build.yml index f57d2c99..acf9343e 100644 --- a/Utilities/Pipelines/Tasks/ios-build.yml +++ b/Utilities/Pipelines/Tasks/ios-build.yml @@ -92,3 +92,13 @@ steps: scheme: 'libHttpClientFramework_NOWEBSOCKETS_macOS' packageApp: false useXctool: false + + # Build the CMake version, which is different from libhttpClient.Apple.C + - script: | + cmake -B Build/libHttpClient.iOS.CMake/build \ + -S Build/libHttpClient.iOS.CMake \ + -DCMAKE_SYSTEM_NAME=iOS \ + -DCMAKE_OSX_ARCHITECTURES=arm64 \ + -DCMAKE_BUILD_TYPE=${{ parameters.configuration }} + cmake --build Build/libHttpClient.iOS.CMake/build --config ${{ parameters.configuration }} + displayName: 'Clean build iOS CMake static lib' From dbdf78ac31f4e1027ebc3c6224f8a3932f401807 Mon Sep 17 00:00:00 2001 From: Pan Block Date: Tue, 19 May 2026 13:48:05 -0700 Subject: [PATCH 09/14] fix --- Build/libHttpClient.iOS.CMake/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Build/libHttpClient.iOS.CMake/CMakeLists.txt b/Build/libHttpClient.iOS.CMake/CMakeLists.txt index 5e2d43b2..e229cdb3 100644 --- a/Build/libHttpClient.iOS.CMake/CMakeLists.txt +++ b/Build/libHttpClient.iOS.CMake/CMakeLists.txt @@ -6,7 +6,7 @@ project("libHttpClient.iOS") set(HC_WEBSOCKETS FALSE) -add_definitions(-D_NO_ASYNCRTIMP -D_NO_PPLXIMP -D_NO_XSAPIIMP -DXSAPI_BUILD) +add_definitions(-D_NO_ASYNCRTIMP -D_NO_PPLXIMP -D_NO_XSAPIIMP -DXSAPI_BUILD -DHC_LINK_STATIC=1) if(HC_WEBSOCKETS) message(STATUS "websockets usage is on") From 2c5d88bee30498911f25cab171d1f9a39878b953 Mon Sep 17 00:00:00 2001 From: Pan Block Date: Tue, 19 May 2026 13:48:24 -0700 Subject: [PATCH 10/14] move to top of pipeline for testing --- Utilities/Pipelines/Tasks/ios-build.yml | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/Utilities/Pipelines/Tasks/ios-build.yml b/Utilities/Pipelines/Tasks/ios-build.yml index acf9343e..85f2b8ca 100644 --- a/Utilities/Pipelines/Tasks/ios-build.yml +++ b/Utilities/Pipelines/Tasks/ios-build.yml @@ -5,6 +5,16 @@ parameters: steps: - template: checkout.yml + # Build the CMake version, which is different from libhttpClient.Apple.C + - script: | + cmake -B Build/libHttpClient.iOS.CMake/build \ + -S Build/libHttpClient.iOS.CMake \ + -DCMAKE_SYSTEM_NAME=iOS \ + -DCMAKE_OSX_ARCHITECTURES=arm64 \ + -DCMAKE_BUILD_TYPE=${{ parameters.configuration }} + cmake --build Build/libHttpClient.iOS.CMake/build --config ${{ parameters.configuration }} + displayName: 'Clean build iOS CMake static lib' + - task: Xcode@2 displayName: 'Clean build iOS static lib' inputs: @@ -93,12 +103,3 @@ steps: packageApp: false useXctool: false - # Build the CMake version, which is different from libhttpClient.Apple.C - - script: | - cmake -B Build/libHttpClient.iOS.CMake/build \ - -S Build/libHttpClient.iOS.CMake \ - -DCMAKE_SYSTEM_NAME=iOS \ - -DCMAKE_OSX_ARCHITECTURES=arm64 \ - -DCMAKE_BUILD_TYPE=${{ parameters.configuration }} - cmake --build Build/libHttpClient.iOS.CMake/build --config ${{ parameters.configuration }} - displayName: 'Clean build iOS CMake static lib' From a8fa20faaa3eff2a4e20ae540b2dfe9486984af7 Mon Sep 17 00:00:00 2001 From: Pan Block Date: Tue, 19 May 2026 14:05:28 -0700 Subject: [PATCH 11/14] + --- Build/libHttpClient.iOS.CMake/CMakeLists.txt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/Build/libHttpClient.iOS.CMake/CMakeLists.txt b/Build/libHttpClient.iOS.CMake/CMakeLists.txt index e229cdb3..d4639d14 100644 --- a/Build/libHttpClient.iOS.CMake/CMakeLists.txt +++ b/Build/libHttpClient.iOS.CMake/CMakeLists.txt @@ -95,5 +95,20 @@ target_include_directories( "${COMMON_INCLUDE_DIRS}" ) +set_target_properties( + "${PROJECT_NAME}" + PROPERTIES + CXX_STANDARD 17 + CXX_STANDARD_REQUIRED ON + ) + +set(IOS_MM_SOURCE_FILES + "${PATH_TO_ROOT}/Source/Task/iOS/ios_WaitTimer.mm" + "${PATH_TO_ROOT}/Source/Task/iOS/ios_WaitTimer_target.mm" + "${PATH_TO_ROOT}/Source/HTTP/Apple/http_apple.mm" + "${PATH_TO_ROOT}/Source/Common/Apple/utils_apple.mm" + ) +set_source_files_properties(${IOS_MM_SOURCE_FILES} PROPERTIES COMPILE_FLAGS "-fobjc-arc") + message(STATUS "CMAKE_SYSTEM_VERSION='${CMAKE_SYSTEM_VERSION}'") message(STATUS "CMAKE_SYSTEM_NAME='${CMAKE_SYSTEM_NAME}'") From 5ce19a4c75c742c0ec46ddb5ed2f235b86bc6f2a Mon Sep 17 00:00:00 2001 From: Pan Block Date: Tue, 19 May 2026 14:13:19 -0700 Subject: [PATCH 12/14] update xcode --- Utilities/Pipelines/Tasks/ios-build.yml | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/Utilities/Pipelines/Tasks/ios-build.yml b/Utilities/Pipelines/Tasks/ios-build.yml index 85f2b8ca..8bf464c8 100644 --- a/Utilities/Pipelines/Tasks/ios-build.yml +++ b/Utilities/Pipelines/Tasks/ios-build.yml @@ -15,7 +15,7 @@ steps: cmake --build Build/libHttpClient.iOS.CMake/build --config ${{ parameters.configuration }} displayName: 'Clean build iOS CMake static lib' - - task: Xcode@2 + - task: Xcode@5 displayName: 'Clean build iOS static lib' inputs: actions: 'clean build' @@ -24,9 +24,8 @@ steps: xcWorkspacePath: Build/libHttpClient.Apple.C/libHttpClient.xcworkspace scheme: 'libHttpClient_iOS' packageApp: false - useXctool: false - - task: Xcode@2 + - task: Xcode@5 displayName: 'Clean build iOS framework' inputs: actions: 'clean build' @@ -35,9 +34,8 @@ steps: xcWorkspacePath: Build/libHttpClient.Apple.C/libHttpClient.xcworkspace scheme: 'libHttpClientFramework_iOS' packageApp: false - useXctool: false - - task: Xcode@2 + - task: Xcode@5 displayName: 'Clean build iOS_NOWEBSOCKETS static lib' inputs: actions: 'clean build' @@ -46,9 +44,8 @@ steps: xcWorkspacePath: Build/libHttpClient.Apple.C/libHttpClient.xcworkspace scheme: 'libHttpClient_NOWEBSOCKETS_iOS' packageApp: false - useXctool: false - - task: Xcode@2 + - task: Xcode@5 displayName: 'Clean build iOS_NOWEBSOCKETS framework' inputs: actions: 'clean build' @@ -57,9 +54,8 @@ steps: xcWorkspacePath: Build/libHttpClient.Apple.C/libHttpClient.xcworkspace scheme: 'libHttpClientFramework_NOWEBSOCKETS_iOS' packageApp: false - useXctool: false - - task: Xcode@2 + - task: Xcode@5 displayName: 'Clean build macOS static lib' inputs: actions: 'clean build' @@ -68,9 +64,8 @@ steps: xcWorkspacePath: Build/libHttpClient.Apple.C/libHttpClient.xcworkspace scheme: 'libHttpClient_macOS' packageApp: false - useXctool: false - - task: Xcode@2 + - task: Xcode@5 displayName: 'Clean build macOS framework' inputs: actions: 'clean build' @@ -79,9 +74,8 @@ steps: xcWorkspacePath: Build/libHttpClient.Apple.C/libHttpClient.xcworkspace scheme: 'libHttpClientFramework_macOS' packageApp: false - useXctool: false - - task: Xcode@2 + - task: Xcode@5 displayName: 'Clean build macOS_NOWEBSOCKETS static lib' inputs: actions: 'clean build' @@ -90,9 +84,8 @@ steps: xcWorkspacePath: Build/libHttpClient.Apple.C/libHttpClient.xcworkspace scheme: 'libHttpClient_NOWEBSOCKETS_macOS' packageApp: false - useXctool: false - - task: Xcode@2 + - task: Xcode@5 displayName: 'Clean build macOS_NOWEBSOCKETS framework' inputs: actions: 'clean build' @@ -101,5 +94,4 @@ steps: xcWorkspacePath: Build/libHttpClient.Apple.C/libHttpClient.xcworkspace scheme: 'libHttpClientFramework_NOWEBSOCKETS_macOS' packageApp: false - useXctool: false From 0b22fec7c1e1780180dc13a7c843f592d149bd57 Mon Sep 17 00:00:00 2001 From: Pan Block Date: Tue, 19 May 2026 14:18:06 -0700 Subject: [PATCH 13/14] comments --- Utilities/Pipelines/Tasks/ios-build.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Utilities/Pipelines/Tasks/ios-build.yml b/Utilities/Pipelines/Tasks/ios-build.yml index 8bf464c8..d4d8748d 100644 --- a/Utilities/Pipelines/Tasks/ios-build.yml +++ b/Utilities/Pipelines/Tasks/ios-build.yml @@ -4,8 +4,8 @@ parameters: steps: - template: checkout.yml - - # Build the CMake version, which is different from libhttpClient.Apple.C + + # Build the CMake static lib - script: | cmake -B Build/libHttpClient.iOS.CMake/build \ -S Build/libHttpClient.iOS.CMake \ @@ -15,6 +15,7 @@ steps: cmake --build Build/libHttpClient.iOS.CMake/build --config ${{ parameters.configuration }} displayName: 'Clean build iOS CMake static lib' + # Build libHttpClient.Apple.C configurations - task: Xcode@5 displayName: 'Clean build iOS static lib' inputs: From 781ab952e940fe910d6aee535e9a474a398f8307 Mon Sep 17 00:00:00 2001 From: Pan Block Date: Tue, 19 May 2026 15:25:17 -0700 Subject: [PATCH 14/14] pr --- Build/libHttpClient.iOS.CMake/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Build/libHttpClient.iOS.CMake/CMakeLists.txt b/Build/libHttpClient.iOS.CMake/CMakeLists.txt index d4639d14..9cd1ebc2 100644 --- a/Build/libHttpClient.iOS.CMake/CMakeLists.txt +++ b/Build/libHttpClient.iOS.CMake/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.6) +cmake_minimum_required(VERSION 3.14) get_filename_component(PATH_TO_ROOT "../.." ABSOLUTE)