You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
1.0 KiB
25 lines
1.0 KiB
cmake_minimum_required(VERSION 3.24)
|
|
project(SwiftMixLib C CXX Swift)
|
|
|
|
# Swift on Windows only provides a release runtime.
|
|
set(CMAKE_MSVC_RUNTIME_LIBRARY MultiThreadedDLL)
|
|
|
|
add_library(SwiftMixedLib lib.c lib.cpp lib.swift)
|
|
add_executable(Swifty main.swift)
|
|
target_link_libraries(Swifty PUBLIC SwiftMixedLib)
|
|
|
|
add_executable(c_main main.c)
|
|
target_link_libraries(c_main PUBLIC SwiftMixedLib)
|
|
|
|
if(WIN32)
|
|
# TODO: On macOS and Linux, Swift has mechanism for determining what libraries
|
|
# an object, or objects from a static archive, need to link against,
|
|
# which is how the Swift driver is able to determine that `c_main`
|
|
# needs to link swiftCore. Windows does not have this mechanism.
|
|
# Eventually CMake should learn how to do this, explicitly forwarding
|
|
# the required library to the link command when linking a static
|
|
# archive containing Swift sources into something else, even if the
|
|
# linker language is Swift.
|
|
target_link_libraries(c_main PRIVATE swiftCore)
|
|
endif()
|