Browse Source

Modules: setup `CMAKE_Swift_LINKER_PREFERENCE`

Swift's driver will invoke the C++ driver (`clang++`) to invoke the
linker.  Additionally, it will configure the command line to deal with
the linkage runtime support object (`swiftrt.o` or `swiftrt.obj`) to be
added at the right time (similar to C/C++).  Since it indirects through
`clang++` it will properly setup the linker invocation for C++ and C as
well.  This should permit the correct linker driver to be invoked in
multi-language projects.

Closes #19299
Saleem Abdulrasool 6 years ago
parent
commit
abea06efdf
1 changed files with 3 additions and 0 deletions
  1. 3 0
      Modules/CMakeSwiftInformation.cmake

+ 3 - 0
Modules/CMakeSwiftInformation.cmake

@@ -23,6 +23,9 @@ set(CMAKE_Swift_COMPILE_OPTIONS_TARGET "-target ")
 set(CMAKE_Swift_COMPILER_ARG1 -frontend)
 set(CMAKE_Swift_FRAMEWORK_SEARCH_FLAG "-F ")
 
+set(CMAKE_Swift_LINKER_PREFERENCE 50)
+set(CMAKE_Swift_LINKER_PREFERENCE_PROPAGATES 1)
+
 # NOTE(compnerd) use the short form for convenience and ease of search.  They
 # are treated equivalent to their long form names as well as custom Swift
 # specific names.