From b27f6f343ca8556f669bbcc1449099a19567a0ca Mon Sep 17 00:00:00 2001 From: Dario Rexin Date: Fri, 31 Jul 2020 10:10:48 -0700 Subject: [PATCH] Add modulemap for static compilation When compiling statically, we have to link against DispatchStubs in addition to the other dependencies, so we are defining a separate modulemap for that. --- dispatch/CMakeLists.txt | 12 +++++++++++- dispatch/generic_static/module.modulemap | 19 +++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 dispatch/generic_static/module.modulemap diff --git a/dispatch/CMakeLists.txt b/dispatch/CMakeLists.txt index 8b8be8cfb..7f68ed381 100644 --- a/dispatch/CMakeLists.txt +++ b/dispatch/CMakeLists.txt @@ -16,7 +16,17 @@ install(FILES DESTINATION "${INSTALL_DISPATCH_HEADERS_DIR}") if(ENABLE_SWIFT) - get_filename_component(MODULE_MAP module.modulemap REALPATH) + set(base_dir "${CMAKE_CURRENT_SOURCE_DIR}") + if(NOT BUILD_SHARED_LIBS) + set(base_dir "${CMAKE_CURRENT_SOURCE_DIR}/generic_static") + endif() + + get_filename_component( + MODULE_MAP + module.modulemap + REALPATH + BASE_DIR "${base_dir}") + install(FILES ${MODULE_MAP} DESTINATION diff --git a/dispatch/generic_static/module.modulemap b/dispatch/generic_static/module.modulemap new file mode 100644 index 000000000..d5d64d2d1 --- /dev/null +++ b/dispatch/generic_static/module.modulemap @@ -0,0 +1,19 @@ +module Dispatch { + requires blocks + export * + link "dispatch" + link "BlocksRuntime" + link "DispatchStubs" +} + +module DispatchIntrospection [system] [extern_c] { + header "introspection.h" + export * +} + +module CDispatch [system] [extern_c] { + umbrella header "dispatch.h" + export * + requires blocks + link "dispatch" +}