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" +}