Skip to content

Commit 968f1b4

Browse files
authored
Merge pull request #3487 from gottesmm/merge_swifttranslateflag_into_swiftutils
[cmake] Merge SwiftTranslateFlag.cmake into SwiftUtils.cmake
2 parents cf93e65 + c92f51a commit 968f1b4

File tree

4 files changed

+30
-31
lines changed

4 files changed

+30
-31
lines changed

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,7 @@ set(CMAKE_CXX_ARCHIVE_FINISH "")
351351

352352
include(CheckCXXSourceRuns)
353353
include(CMakeParseArguments)
354-
include(SwiftTranslateFlag)
354+
include(SwiftUtils)
355355
include(SwiftHandleGybSources)
356356
include(SwiftSetIfArchBitness)
357357
include(SwiftSource)

cmake/modules/SwiftAddCustomCommandTarget.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
include(CMakeParseArguments)
2-
include(SwiftTranslateFlag)
2+
include(SwiftUtils)
33

44
# Populate the variable 'args' in the parent scope with a keyword
55
# argument list. We read the variables options, ${k}_keyword, and

cmake/modules/SwiftTranslateFlag.cmake

Lines changed: 0 additions & 29 deletions
This file was deleted.

cmake/modules/SwiftUtils.cmake

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,31 @@ function(precondition var)
33
message(FATAL_ERROR "Error! Variable ${var} is false or not set!")
44
endif()
55
endfunction()
6+
7+
# Translate a yes/no variable to the presence of a given string in a
8+
# variable.
9+
#
10+
# Usage:
11+
# translate_flag(is_set flag_name var_name)
12+
#
13+
# If is_set is true, sets ${var_name} to ${flag_name}. Otherwise,
14+
# unsets ${var_name}.
15+
function(translate_flag is_set flag_name var_name)
16+
if(${is_set})
17+
set("${var_name}" "${flag_name}" PARENT_SCOPE)
18+
else()
19+
set("${var_name}" "" PARENT_SCOPE)
20+
endif()
21+
endfunction()
22+
23+
macro(translate_flags prefix options)
24+
foreach(var ${options})
25+
translate_flag("${${prefix}_${var}}" "${var}" "${prefix}_${var}_keyword")
26+
endforeach()
27+
endmacro()
28+
29+
# Set ${outvar} to ${${invar}}, asserting if ${invar} is not set.
30+
function(precondition_translate_flag invar outvar)
31+
precondition(${invar})
32+
set(${outvar} "${${invar}}" PARENT_SCOPE)
33+
endfunction()

0 commit comments

Comments
 (0)