Skip to content

Commit db2126c

Browse files
committed
[lto][cmake] Do not access SWIFT_TOOLS_ENABLE_LTO directly in _add_variant_{c_compile,variant_link}_flags. Pass it in as an arg instead.
This will allow control on the outside of these calls on whether or not LTO is enabled. This is necessary for turning off LTO on target libraries. rdar://24717107
1 parent c4a0c00 commit db2126c

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

cmake/modules/AddSwift.cmake

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ function(_add_variant_c_compile_link_flags)
117117
endfunction()
118118

119119
function(_add_variant_c_compile_flags)
120-
set(oneValueArgs SDK ARCH BUILD_TYPE ENABLE_ASSERTIONS ANALYZE_CODE_COVERAGE DEPLOYMENT_VERSION_IOS RESULT_VAR_NAME)
120+
set(oneValueArgs SDK ARCH BUILD_TYPE ENABLE_ASSERTIONS ANALYZE_CODE_COVERAGE DEPLOYMENT_VERSION_IOS RESULT_VAR_NAME ENABLE_LTO)
121121
cmake_parse_arguments(CFLAGS
122122
""
123123
"${oneValueArgs}"
@@ -131,7 +131,7 @@ function(_add_variant_c_compile_flags)
131131
ARCH "${CFLAGS_ARCH}"
132132
BUILD_TYPE "${CFLAGS_BUILD_TYPE}"
133133
ENABLE_ASSERTIONS "${CFLAGS_ENABLE_ASSERTIONS}"
134-
ENABLE_LTO "${SWIFT_TOOLS_ENABLE_LTO}"
134+
ENABLE_LTO "${CFLAGS_ENABLE_LTO}"
135135
ANALYZE_CODE_COVERAGE FALSE
136136
DEPLOYMENT_VERSION_IOS "${CFLAGS_DEPLOYMENT_VERSION_IOS}"
137137
RESULT_VAR_NAME result)
@@ -214,7 +214,7 @@ function(_add_variant_swift_compile_flags
214214
endfunction()
215215

216216
function(_add_variant_link_flags)
217-
set(oneValueArgs SDK ARCH BUILD_TYPE ENABLE_ASSERTIONS ANALYZE_CODE_COVERAGE DEPLOYMENT_VERSION_IOS RESULT_VAR_NAME)
217+
set(oneValueArgs SDK ARCH BUILD_TYPE ENABLE_ASSERTIONS ANALYZE_CODE_COVERAGE DEPLOYMENT_VERSION_IOS RESULT_VAR_NAME ENABLE_LTO)
218218
cmake_parse_arguments(LFLAGS
219219
""
220220
"${oneValueArgs}"
@@ -236,7 +236,7 @@ function(_add_variant_link_flags)
236236
ARCH "${LFLAGS_ARCH}"
237237
BUILD_TYPE "${LFLAGS_BUILD_TYPE}"
238238
ENABLE_ASSERTIONS "${LFLAGS_ENABLE_ASSERTIONS}"
239-
ENABLE_LTO "${SWIFT_TOOLS_ENABLE_LTO}"
239+
ENABLE_LTO "${LFLAGS_ENABLE_LTO}"
240240
ANALYZE_CODE_COVERAGE "${LFLAGS_ANALYZE_CODE_COVERAGE}"
241241
DEPLOYMENT_VERSION_IOS "${LFLAGS_DEPLOYMENT_VERSION_IOS}"
242242
RESULT_VAR_NAME result)
@@ -803,6 +803,7 @@ function(_add_swift_library_single target name)
803803
BUILD_TYPE "${build_type}"
804804
ENABLE_ASSERTIONS "${enable_assertions}"
805805
ANALYZE_CODE_COVERAGE "${analyze_code_coverage}"
806+
ENABLE_LTO "${SWIFT_TOOLS_ENABLE_LTO}"
806807
DEPLOYMENT_VERSION_IOS "${SWIFTLIB_DEPLOYMENT_VERSION_IOS}"
807808
RESULT_VAR_NAME c_compile_flags
808809
)
@@ -812,6 +813,7 @@ function(_add_swift_library_single target name)
812813
BUILD_TYPE "${build_type}"
813814
ENABLE_ASSERTIONS "${enable_assertions}"
814815
ANALYZE_CODE_COVERAGE "${analyze_code_coverage}"
816+
ENABLE_LTO "${SWIFT_TOOLS_ENABLE_LTO}"
815817
DEPLOYMENT_VERSION_IOS "${SWIFTLIB_DEPLOYMENT_VERSION_IOS}"
816818
RESULT_VAR_NAME link_flags
817819
)
@@ -1415,13 +1417,15 @@ function(_add_swift_executable_single name)
14151417
ARCH "${SWIFTEXE_SINGLE_ARCHITECTURE}"
14161418
BUILD_TYPE "${CMAKE_BUILD_TYPE}"
14171419
ENABLE_ASSERTIONS "${LLVM_ENABLE_ASSERTIONS}"
1420+
ENABLE_LTO "${SWIFT_TOOLS_ENABLE_LTO}"
14181421
ANALYZE_CODE_COVERAGE "${SWIFT_ANALYZE_CODE_COVERAGE}"
14191422
RESULT_VAR_NAME c_compile_flags)
14201423
_add_variant_link_flags(
14211424
SDK "${SWIFTEXE_SINGLE_SDK}"
14221425
ARCH "${SWIFTEXE_SINGLE_ARCHITECTURE}"
14231426
BUILD_TYPE "${CMAKE_BUILD_TYPE}"
14241427
ENABLE_ASSERTIONS "${LLVM_ENABLE_ASSERTIONS}"
1428+
ENABLE_LTO "${SWIFT_TOOLS_ENABLE_LTO}"
14251429
ANALYZE_CODE_COVERAGE "${SWIFT_ANALYZE_CODE_COVERAGE}"
14261430
RESULT_VAR_NAME link_flags)
14271431

0 commit comments

Comments
 (0)