Skip to content

Commit e2d8ddc

Browse files
committed
Merge pull request #2840 from apple/cmake-use-object-libraries-fix-fallout
Fix fallout from "CMake: use object libraries"
2 parents 7ae9683 + 83b9815 commit e2d8ddc

File tree

6 files changed

+17
-7
lines changed

6 files changed

+17
-7
lines changed
File renamed without changes.

cmake/modules/AddSwift.cmake

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -488,6 +488,10 @@ function(_add_swift_library_single target name)
488488

489489
file(GLOB_RECURSE SWIFTLIB_SINGLE_TDS
490490
${SWIFT_SOURCE_DIR}/include/swift${dir}/*.td)
491+
492+
set_source_files_properties(${SWIFTLIB_SINGLE_HEADERS} ${SWIFTLIB_SINGLE_TDS}
493+
PROPERTIES
494+
HEADER_FILE_ONLY true)
491495
source_group("TableGen descriptions" FILES ${SWIFTLIB_SINGLE_TDS})
492496

493497
set(SWIFTLIB_SINGLE_SOURCES ${SWIFTLIB_SINGLE_SOURCES} ${SWIFTLIB_SINGLE_HEADERS} ${SWIFTLIB_SINGLE_TDS})
@@ -575,11 +579,20 @@ function(_add_swift_library_single target name)
575579
$<TARGET_OBJECTS:${object_library}${VARIANT_SUFFIX}>)
576580
endforeach()
577581

582+
set(SWIFTLIB_SINGLE_XCODE_WORKAROUND_SOURCES)
583+
if(XCODE AND SWIFTLIB_SINGLE_TARGET_LIBRARY)
584+
set(SWIFTLIB_SINGLE_XCODE_WORKAROUND_SOURCES
585+
# Note: the dummy.cpp source file provides no definitions. However,
586+
# it forces Xcode to properly link the static library.
587+
${SWIFT_SOURCE_DIR}/cmake/dummy.cpp)
588+
endif()
589+
578590
add_library("${target}" ${libkind}
579591
${SWIFT_SECTIONS_OBJECT_BEGIN}
580592
${SWIFTLIB_SINGLE_SOURCES}
581593
${SWIFTLIB_SINGLE_EXTERNAL_SOURCES}
582594
${SWIFTLIB_INCORPORATED_OBJECT_LIBRARIES_EXPRESSIONS}
595+
${SWIFTLIB_SINGLE_XCODE_WORKAROUND_SOURCES}
583596
${SWIFT_SECTIONS_OBJECT_END})
584597

585598
# The section metadata objects are generated sources, and we need to tell CMake
@@ -661,10 +674,7 @@ function(_add_swift_library_single target name)
661674
add_library(${target_static} STATIC
662675
${SWIFTLIB_SINGLE_SOURCES}
663676
${SWIFTLIB_INCORPORATED_OBJECT_LIBRARIES_EXPRESSIONS}
664-
665-
# Note: the dummy.c source file provides no definitions. However,
666-
# it forces Xcode to properly link the static library.
667-
${SWIFT_SOURCE_DIR}/cmake/dummy.c)
677+
${SWIFTLIB_SINGLE_XCODE_WORKAROUND_SOURCES})
668678

669679
set_output_directory(${target_static}
670680
BINARY_DIR ${SWIFT_RUNTIME_OUTPUT_INTDIR}

stdlib/public/runtime/CMakeLists.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ set(swift_runtime_sources
4949
Casting.cpp
5050
Demangle.cpp
5151
Enum.cpp
52-
ErrorObject.cpp
52+
ErrorObjectNative.cpp
5353
Errors.cpp
5454
Heap.cpp
5555
HeapObject.cpp
@@ -59,9 +59,9 @@ set(swift_runtime_sources
5959
Once.cpp
6060
Portability.cpp
6161
ProtocolConformance.cpp
62-
Reflection.cpp
62+
ReflectionNative.cpp
6363
RuntimeEntrySymbols.cpp
64-
SwiftObject.cpp)
64+
SwiftObjectNative.cpp)
6565

6666
# Acknowledge that the following sources are known.
6767
set(LLVM_OPTIONAL_SOURCES

0 commit comments

Comments
 (0)