From 988564ca8a6796702809fed73cd720562571aa1d Mon Sep 17 00:00:00 2001 From: Yuta Saito Date: Sun, 4 Feb 2024 13:57:13 +0000 Subject: [PATCH] [wasm][build] Guard libdispatch and Threads usage with HAS_LIBDISPATCH_API This is a follow-up to 5e7281b993ca04486ed8f2add39c8b11f132a550 --- CMakeLists.txt | 4 +++- CoreFoundation/CMakeLists.txt | 36 ++++++++++++++++++++++------------- 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2bb1099078..646cd3e4d4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -57,7 +57,9 @@ set(CF_DEPLOYMENT_SWIFT YES CACHE BOOL "Build for Swift" FORCE) set(CMAKE_THREAD_PREFER_PTHREAD TRUE) set(THREADS_PREFER_PTHREAD_FLAG OFF) -find_package(Threads REQUIRED) +if(HAS_LIBDISPATCH_API) + find_package(Threads REQUIRED) +endif() set(SAVED_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS}) set(BUILD_SHARED_LIBS NO) diff --git a/CoreFoundation/CMakeLists.txt b/CoreFoundation/CMakeLists.txt index beb48d6c86..18c2e508f4 100644 --- a/CoreFoundation/CMakeLists.txt +++ b/CoreFoundation/CMakeLists.txt @@ -22,7 +22,9 @@ set(CMAKE_POSITION_INDEPENDENT_CODE YES) set(CMAKE_THREAD_PREFER_PTHREAD TRUE) set(THREADS_PREFER_PTHREAD_FLAG OFF) -find_package(Threads REQUIRED) +if(HAS_LIBDISPATCH_API) + find_package(Threads REQUIRED) +endif() if(NOT CMAKE_SYSTEM_NAME STREQUAL Darwin) find_package(LibXml2 REQUIRED) @@ -385,10 +387,15 @@ target_include_directories(CoreFoundation PRIVATE ${PROJECT_SOURCE_DIR}) target_link_libraries(CoreFoundation PRIVATE - Threads::Threads ${CMAKE_DL_LIBS} - BlocksRuntime - dispatch) + BlocksRuntime) + +if(HAS_LIBDISPATCH_API) + target_link_libraries(CoreFoundation PRIVATE + Threads::Threads + dispatch) +endif() + if(CMAKE_SYSTEM_NAME STREQUAL Android) target_link_libraries(CoreFoundation PRIVATE log) @@ -504,15 +511,18 @@ if(NOT CMAKE_SYSTEM_NAME STREQUAL Windows AND NOT CMAKE_SYSTEM_NAME STREQUAL Dar PRIVATE m) endif() -target_link_libraries(CoreFoundation - PRIVATE - dispatch) -target_link_libraries(CFURLSessionInterface - PRIVATE - dispatch) -target_link_libraries(CFXMLInterface - PRIVATE - dispatch) + +if(HAS_LIBDISPATCH_API) + target_link_libraries(CoreFoundation + PRIVATE + dispatch) + target_link_libraries(CFURLSessionInterface + PRIVATE + dispatch) + target_link_libraries(CFXMLInterface + PRIVATE + dispatch) +endif() if(CMAKE_SYSTEM_NAME STREQUAL Darwin) target_link_libraries(CoreFoundation PRIVATE