Skip to content

Commit 9412f19

Browse files
committed
[cmake] Change set_swift_llvm_is_available to set definitions on a specific target.
Otherwise we set it on all targets/languages in a subdirectory (I forgot if it propagates up). Regardless, this type of viral stuff is something we want to move away from since it creates a code that is a "forall" piece of code rather than a piece of code that only effects a single target. I also conditionalized the actual definitions being added on the compiled file's language being C,CXX,OBJC,OBJCXX since as we add Swift sources to the host side of the compiler, we will not want these flags to propagate to Swift sources.
1 parent 0d4d98e commit 9412f19

File tree

22 files changed

+54
-27
lines changed

22 files changed

+54
-27
lines changed

cmake/modules/AddSwift.cmake

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -638,6 +638,7 @@ endmacro()
638638

639639
# Declare that files in this library are built with LLVM's support
640640
# libraries available.
641-
macro(set_swift_llvm_is_available)
642-
add_compile_options(-DSWIFT_LLVM_SUPPORT_IS_AVAILABLE)
643-
endmacro()
641+
function(set_swift_llvm_is_available name)
642+
target_compile_definitions(${name} PRIVATE
643+
$<$<COMPILE_LANGUAGE:C,CXX,OBJC,OBJCXX>:SWIFT_LLVM_SUPPORT_IS_AVAILABLE>)
644+
endfunction()

lib/APIDigester/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
set_swift_llvm_is_available()
1+
22

33
add_swift_host_library(swiftAPIDigester STATIC
44
ModuleAnalyzerNodes.cpp
@@ -8,3 +8,5 @@ target_link_libraries(swiftAPIDigester PRIVATE
88
swiftFrontend
99
swiftSIL
1010
swiftIDE)
11+
12+
set_swift_llvm_is_available(swiftAPIDigester)

lib/AST/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@ else()
99
)
1010
endif()
1111

12-
set_swift_llvm_is_available()
13-
1412
add_swift_host_library(swiftAST STATIC
1513
AbstractSourceFileDepGraphFactory.cpp
1614
AccessNotes.cpp
@@ -146,3 +144,5 @@ endif()
146144
# headers.
147145
# For more information see the comment at the top of lib/CMakeLists.txt.
148146
add_dependencies(swiftAST intrinsics_gen clang-tablegen-targets)
147+
148+
set_swift_llvm_is_available(swiftAST)

lib/ASTSectionImporter/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
set_swift_llvm_is_available()
1+
22

33
add_swift_host_library(swiftASTSectionImporter STATIC
44
ASTSectionImporter.cpp
55
LLVM_LINK_COMPONENTS core)
66
target_link_libraries(swiftASTSectionImporter PRIVATE
77
swiftBasic)
88

9+
set_swift_llvm_is_available(swiftASTSectionImporter)

lib/ClangImporter/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ set(SWIFT_GYB_FLAGS
44
add_gyb_target(generated_sorted_cf_database
55
SortedCFDatabase.def.gyb)
66

7-
set_swift_llvm_is_available()
8-
97
add_swift_host_library(swiftClangImporter STATIC
108
CFTypeInfo.cpp
119
ClangAdapter.cpp
@@ -37,3 +35,5 @@ get_property(CLANG_TABLEGEN_TARGETS GLOBAL PROPERTY CLANG_TABLEGEN_TARGETS)
3735
add_dependencies(swiftClangImporter
3836
generated_sorted_cf_database
3937
${CLANG_TABLEGEN_TARGETS})
38+
39+
set_swift_llvm_is_available(swiftClangImporter)

lib/DependencyScan/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#set_swift_llvm_is_available()
1+
22

33
add_swift_host_library(swiftDependencyScan STATIC
44
DependencyScanningTool.cpp

lib/Driver/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
set_swift_llvm_is_available()
1+
22

33
set(swiftDriver_sources
44
Action.cpp
@@ -25,3 +25,5 @@ target_link_libraries(swiftDriver PRIVATE
2525
swiftAST
2626
swiftBasic
2727
swiftOption)
28+
29+
set_swift_llvm_is_available(swiftDriver)

lib/Frontend/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
set_swift_llvm_is_available()
1+
22
add_swift_host_library(swiftFrontend STATIC
33
ArgsToFrontendInputsConverter.cpp
44
ArgsToFrontendOptionsConverter.cpp
@@ -29,3 +29,4 @@ target_link_libraries(swiftFrontend PRIVATE
2929
swiftSerialization
3030
swiftTBDGen)
3131

32+
set_swift_llvm_is_available(swiftFrontend)

lib/FrontendTool/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
set_swift_llvm_is_available()
1+
22
add_swift_host_library(swiftFrontendTool STATIC
33
FrontendTool.cpp
44
ImportedModules.cpp
@@ -27,3 +27,5 @@ target_link_libraries(swiftFrontendTool PRIVATE
2727
swiftSILGen
2828
swiftSILOptimizer
2929
swiftTBDGen)
30+
31+
set_swift_llvm_is_available(swiftFrontendTool)

lib/IDE/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
set_swift_llvm_is_available()
1+
22
add_swift_host_library(swiftIDE STATIC
33
CodeCompletion.cpp
44
CodeCompletionCache.cpp
@@ -29,3 +29,4 @@ target_link_libraries(swiftIDE PRIVATE
2929
swiftParse
3030
swiftSema)
3131

32+
set_swift_llvm_is_available(swiftIDE)

lib/IRGen/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
set_swift_llvm_is_available()
1+
22
add_swift_host_library(swiftIRGen STATIC
33
AllocStackHoisting.cpp
44
ClassLayout.cpp
@@ -73,3 +73,5 @@ target_link_libraries(swiftIRGen PRIVATE
7373
swiftSILGen
7474
swiftSILOptimizer
7575
swiftTBDGen)
76+
77+
set_swift_llvm_is_available(swiftIRGen)

lib/LLVMPasses/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
set_swift_llvm_is_available()
1+
22
add_swift_host_library(swiftLLVMPasses STATIC
33
LLVMSwiftAA.cpp
44
LLVMSwiftRCIdentity.cpp
@@ -12,3 +12,5 @@ add_swift_host_library(swiftLLVMPasses STATIC
1212
)
1313
target_link_libraries(swiftLLVMPasses PRIVATE
1414
swiftDemangling)
15+
16+
set_swift_llvm_is_available(swiftLLVMPasses)

lib/Migrator/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,6 @@ swift_install_in_component(FILES ${datafiles}
4747
DESTINATION "lib/swift/migrator"
4848
COMPONENT compiler)
4949

50-
set_swift_llvm_is_available()
51-
5250
add_swift_host_library(swiftMigrator STATIC
5351
APIDiffMigratorPass.cpp
5452
EditorAdapter.cpp
@@ -63,3 +61,5 @@ target_link_libraries(swiftMigrator PRIVATE
6361

6462
add_dependencies(swiftMigrator
6563
"symlink_migrator_data")
64+
65+
set_swift_llvm_is_available(swiftMigrator)

lib/Parse/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
set_swift_llvm_is_available()
1+
22

33
if(CMAKE_HOST_SYSTEM_NAME STREQUAL Windows)
44
set(SWIFT_GYB_FLAGS --line-directive "^\"#line %(line)d \\\"%(file)s\\\"^\"")
@@ -34,3 +34,5 @@ target_link_libraries(swiftParse PRIVATE
3434
swiftSyntaxParse)
3535

3636
add_dependencies(swiftParse swift-parse-syntax-generated-headers)
37+
38+
set_swift_llvm_is_available(swiftParse)

lib/PrintAsObjC/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
set_swift_llvm_is_available()
1+
22
add_swift_host_library(swiftPrintAsObjC STATIC
33
DeclAndTypePrinter.cpp
44
ModuleContentsWriter.cpp
@@ -9,3 +9,4 @@ target_link_libraries(swiftPrintAsObjC PRIVATE
99
swiftFrontend
1010
swiftIDE)
1111

12+
set_swift_llvm_is_available(swiftPrintAsObjC)

lib/SIL/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
set_swift_llvm_is_available()
21
add_swift_host_library(swiftSIL STATIC
32
SIL.cpp)
43
target_link_libraries(swiftSIL PUBLIC
@@ -17,3 +16,5 @@ add_subdirectory(Parser)
1716
# headers.
1817
# For more information see the comment at the top of lib/CMakeLists.txt.
1918
add_dependencies(swiftSIL intrinsics_gen clang-tablegen-targets)
19+
20+
set_swift_llvm_is_available(swiftSIL)

lib/SILGen/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
set_swift_llvm_is_available()
1+
22
add_swift_host_library(swiftSILGen STATIC
33
ArgumentSource.cpp
44
Cleanup.cpp
@@ -35,3 +35,5 @@ add_swift_host_library(swiftSILGen STATIC
3535
SILGenType.cpp)
3636
target_link_libraries(swiftSILGen PRIVATE
3737
swiftSIL)
38+
39+
set_swift_llvm_is_available(swiftSILGen)

lib/SILOptimizer/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
set_swift_llvm_is_available()
21
add_swift_host_library(swiftSILOptimizer STATIC
32
SILOptimizer.cpp)
43
target_link_libraries(swiftSILOptimizer PRIVATE
54
swiftSIL)
5+
set_swift_llvm_is_available(swiftSILOptimizer)
66

77
add_subdirectory(ARC)
88
add_subdirectory(Analysis)

lib/Sema/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
set_swift_llvm_is_available()
1+
22
add_swift_host_library(swiftSema STATIC
33
BuilderTransform.cpp
44
CSApply.cpp
@@ -77,3 +77,5 @@ target_link_libraries(swiftSema PRIVATE
7777
swiftAST
7878
swiftParse
7979
swiftSerialization)
80+
81+
set_swift_llvm_is_available(swiftSema)

lib/Serialization/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
set_swift_llvm_is_available()
1+
22
add_swift_host_library(swiftSerialization STATIC
33
Deserialization.cpp
44
DeserializeSIL.cpp
@@ -19,3 +19,4 @@ target_link_libraries(swiftSerialization PRIVATE
1919
swiftSIL
2020
swiftSymbolGraphGen)
2121

22+
set_swift_llvm_is_available(swiftSerialization)

lib/SyntaxParse/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
set_swift_llvm_is_available()
1+
22
add_swift_host_library(swiftSyntaxParse STATIC
33
SyntaxTreeCreator.cpp)
44
target_link_libraries(swiftSyntaxParse PRIVATE
55
swiftParse
66
swiftSyntax)
7+
8+
set_swift_llvm_is_available(swiftSyntaxParse)

lib/TBDGen/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
set_swift_llvm_is_available()
1+
22
add_swift_host_library(swiftTBDGen STATIC
33
APIGen.cpp
44
TBDGen.cpp
@@ -11,3 +11,5 @@ target_link_libraries(swiftTBDGen PRIVATE
1111
swiftAST
1212
swiftIRGen
1313
swiftSIL)
14+
15+
set_swift_llvm_is_available(swiftTBDGen)

0 commit comments

Comments
 (0)