Swift: honour -swift-version
in Ninja generator
Swift has supported `CMAKE_Swift_LANGUAGE_VERSION` and `Swift_LANGUAGE_VERSION` but didn't apply that to Ninja generated targets. Consider the property when calculating the flags.
This commit is contained in:
parent
19612dffd2
commit
369c48ee43
@ -316,6 +316,7 @@ Properties on Targets
|
||||
/prop_tgt/STATIC_LIBRARY_OPTIONS
|
||||
/prop_tgt/SUFFIX
|
||||
/prop_tgt/Swift_DEPENDENCIES_FILE
|
||||
/prop_tgt/Swift_LANGUAGE_VERSION
|
||||
/prop_tgt/Swift_MODULE_DIRECTORY
|
||||
/prop_tgt/Swift_MODULE_NAME
|
||||
/prop_tgt/TYPE
|
||||
|
6
Help/prop_tgt/Swift_LANGUAGE_VERSION.rst
Normal file
6
Help/prop_tgt/Swift_LANGUAGE_VERSION.rst
Normal file
@ -0,0 +1,6 @@
|
||||
Swift_LANGUAGE_VERSION
|
||||
----------------------
|
||||
|
||||
This property sets the language version for the Swift sources in the target. If
|
||||
one is not specified, it will default to ``<CMAKE_Swift_LANGUAGE_VERSION>`` if
|
||||
specified, otherwise it is the latest version supported by the compiler.
|
@ -1566,6 +1566,17 @@ void cmLocalGenerator::AddLanguageFlags(std::string& flags,
|
||||
this->AddConfigVariableFlags(flags, cmStrCat("CMAKE_", lang, "_FLAGS"),
|
||||
config);
|
||||
|
||||
if (lang == "Swift") {
|
||||
if (const char* v = target->GetProperty("Swift_LANGUAGE_VERSION")) {
|
||||
if (cmSystemTools::VersionCompare(
|
||||
cmSystemTools::OP_GREATER_EQUAL,
|
||||
this->Makefile->GetDefinition("CMAKE_Swift_COMPILER_VERSION"),
|
||||
"4.2")) {
|
||||
this->AppendFlags(flags, "-swift-version " + std::string(v));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Add MSVC runtime library flags. This is activated by the presence
|
||||
// of a default selection whether or not it is overridden by a property.
|
||||
const char* msvcRuntimeLibraryDefault =
|
||||
|
@ -347,6 +347,7 @@ cmTarget::cmTarget(std::string const& name, cmStateEnums::TargetType type,
|
||||
initProp("LINK_SEARCH_START_STATIC");
|
||||
initProp("LINK_SEARCH_END_STATIC");
|
||||
initProp("FOLDER");
|
||||
initProp("Swift_LANGUAGE_VERSION");
|
||||
initProp("Swift_MODULE_DIRECTORY");
|
||||
initProp("VS_JUST_MY_CODE_DEBUGGING");
|
||||
#ifdef __APPLE__
|
||||
|
Loading…
Reference in New Issue
Block a user