Skip to content

Commit 18b2fa0

Browse files
authored
Merge pull request swiftlang#40561 from kubamracek/avoid-building-runtime-reflection-code-when-reflection-is-off
When SWIFT_ENABLE_REFLECTION is Off, don't build the reflection runtime code (stdlib/public/Reflection/*.cpp)
2 parents 47037ae + c10c1bb commit 18b2fa0

File tree

7 files changed

+23
-2
lines changed

7 files changed

+23
-2
lines changed

lib/SwiftReflection/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@ add_swift_host_library(swiftReflection STATIC
44
${SWIFT_SOURCE_DIR}/stdlib/public/Reflection/TypeLowering.cpp
55
${SWIFT_SOURCE_DIR}/stdlib/public/Reflection/TypeRef.cpp
66
${SWIFT_SOURCE_DIR}/stdlib/public/Reflection/TypeRefBuilder.cpp)
7+
target_compile_options(swiftReflection PRIVATE -DSWIFT_ENABLE_REFLECTION)
78
target_link_libraries(swiftReflection PUBLIC
89
swiftDemangling)

stdlib/public/Reflection/CMakeLists.txt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,14 @@ set(swiftReflection_SOURCES
44
TypeRef.cpp
55
TypeRefBuilder.cpp)
66

7+
set(swiftReflection_C_COMPILE_FLAGS -DswiftCore_EXPORTS)
8+
if(SWIFT_ENABLE_REFLECTION)
9+
list(APPEND swiftReflection_C_COMPILE_FLAGS -DSWIFT_ENABLE_REFLECTION)
10+
endif()
11+
712
add_swift_target_library(swiftReflection STATIC
813
${swiftReflection_SOURCES}
9-
C_COMPILE_FLAGS ${SWIFT_RUNTIME_CXX_FLAGS} -DswiftCore_EXPORTS
14+
C_COMPILE_FLAGS ${SWIFT_RUNTIME_CXX_FLAGS} ${swiftReflection_C_COMPILE_FLAGS}
1015
LINK_FLAGS ${SWIFT_RUNTIME_LINK_FLAGS}
1116
INCORPORATE_OBJECT_LIBRARIES
1217
swiftLLVMSupport swiftDemangling

stdlib/public/Reflection/MetadataSource.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
//
1111
//===----------------------------------------------------------------------===//
1212

13+
#if SWIFT_ENABLE_REFLECTION
14+
1315
#include "swift/Reflection/MetadataSource.h"
1416
#include <iostream>
1517

@@ -103,3 +105,5 @@ void MetadataSource::dump(std::ostream &stream, unsigned Indent) const {
103105
PrintMetadataSource(stream, Indent).visit(this);
104106
stream << "\n";
105107
}
108+
109+
#endif

stdlib/public/Reflection/TypeLowering.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
//
1919
//===----------------------------------------------------------------------===//
2020

21+
#if SWIFT_ENABLE_REFLECTION
22+
2123
#include "swift/ABI/Enum.h"
2224
#include "swift/ABI/MetadataValues.h"
2325
#include "swift/Reflection/TypeLowering.h"
@@ -2300,3 +2302,5 @@ const TypeInfo *TypeConverter::getClassInstanceTypeInfo(
23002302

23012303
} // namespace reflection
23022304
} // namespace swift
2305+
2306+
#endif

stdlib/public/Reflection/TypeRef.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
//
1616
//===----------------------------------------------------------------------===//
1717

18+
#if SWIFT_ENABLE_REFLECTION
19+
1820
#include "swift/Basic/Range.h"
1921
#include "swift/Demangling/Demangle.h"
2022
#include "swift/Reflection/TypeRef.h"
@@ -1478,3 +1480,5 @@ bool TypeRef::deriveSubstitutions(GenericArgumentMap &Subs,
14781480
// exactly.
14791481
return (OrigTR == SubstTR);
14801482
}
1483+
1484+
#endif

stdlib/public/Reflection/TypeRefBuilder.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
//
1616
//===----------------------------------------------------------------------===//
1717

18+
#if SWIFT_ENABLE_REFLECTION
19+
1820
#include "swift/Reflection/TypeRefBuilder.h"
1921

2022
#include "swift/Demangling/Demangle.h"
@@ -510,3 +512,5 @@ void TypeRefBuilder::dumpAllSections(std::ostream &stream) {
510512
dumpCaptureSection(stream);
511513
stream << "\n";
512514
}
515+
516+
#endif

stdlib/public/runtime/Demangle.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
#include "Private.h"
1414
#include "swift/ABI/TypeIdentity.h"
1515
#include "swift/Basic/Range.h"
16-
#include "swift/Reflection/TypeRef.h"
1716
#include "swift/Runtime/Metadata.h"
1817
#include "swift/Runtime/Portability.h"
1918
#include "swift/Strings.h"

0 commit comments

Comments
 (0)