Skip to content

Commit 27f36ee

Browse files
committed
Allow the compiler tag to be overridden and used for --version
Rather than showing the Swift/LLVM hashes for `--version`, allow a tag to be specified (`SWIFT_TOOLCHAIN_VERSION`) that is then used instead.
1 parent f7529ea commit 27f36ee

File tree

3 files changed

+15
-13
lines changed

3 files changed

+15
-13
lines changed

CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,8 @@ set(SWIFT_COMPILER_VERSION "" CACHE STRING
336336
"The internal version of the Swift compiler")
337337
set(CLANG_COMPILER_VERSION "" CACHE STRING
338338
"The internal version of the Clang compiler")
339+
set(SWIFT_TOOLCHAIN_VERSION "" CACHE STRING
340+
"The Swift compiler tag")
339341

340342
option(SWIFT_DISABLE_DEAD_STRIPPING
341343
"Turn off Darwin-specific dead stripping for Swift host tools." FALSE)

lib/Basic/CMakeLists.txt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -134,10 +134,8 @@ if(NOT "${SWIFT_VENDOR}" STREQUAL "")
134134
" -DSWIFT_VENDOR=\"\\\"${SWIFT_VENDOR}\\\"\"")
135135
endif()
136136

137-
set(SWIFT_COMPILER_VERSION "" CACHE STRING
138-
"The string that identifies the SCM commit(s) for this build")
139-
140137
message(STATUS "Swift compiler version: ${SWIFT_COMPILER_VERSION}")
138+
message(STATUS "Swift toolchain version: ${SWIFT_TOOLCHAIN_VERSION}")
141139
message(STATUS "Embedded clang compiler version: ${CLANG_COMPILER_VERSION}")
142140

143141
if(SWIFT_COMPILER_VERSION)
@@ -150,3 +148,7 @@ if(CLANG_COMPILER_VERSION)
150148
" -DCLANG_COMPILER_VERSION=\"\\\"${CLANG_COMPILER_VERSION}\\\"\"")
151149
endif()
152150

151+
if(SWIFT_TOOLCHAIN_VERSION)
152+
set_property(SOURCE Version.cpp APPEND_STRING PROPERTY COMPILE_FLAGS
153+
" -DSWIFT_TOOLCHAIN_VERSION=\"\\\"${SWIFT_TOOLCHAIN_VERSION}\\\"\"")
154+
endif()

lib/Basic/Version.cpp

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -50,21 +50,17 @@
5050
namespace swift {
5151
namespace version {
5252

53-
/// Print a string of the form "LLVM xxxxx, Swift zzzzz", where each placeholder
53+
/// Print a string of the form "Swift xxxxx LLVM zzzzz", where each placeholder
5454
/// is the revision for the associated repository.
5555
static void printFullRevisionString(raw_ostream &out) {
5656
// Arbitrarily truncate to 15 characters. This should be enough to unique Git
5757
// hashes while keeping the REPL version string from overflowing 80 columns.
58-
#if defined(LLVM_REVISION)
59-
out << "LLVM " << StringRef(LLVM_REVISION).slice(0, 15);
60-
# if defined(SWIFT_REVISION)
61-
out << ", ";
62-
# endif
63-
#endif
64-
6558
#if defined(SWIFT_REVISION)
6659
out << "Swift " << StringRef(SWIFT_REVISION).slice(0, 15);
6760
#endif
61+
#if defined(LLVM_REVISION)
62+
out << " LLVM " << StringRef(LLVM_REVISION).slice(0, 15);
63+
#endif
6864
}
6965

7066
Version Version::getCurrentLanguageVersion() {
@@ -270,15 +266,17 @@ std::string getSwiftFullVersion(Version effectiveVersion) {
270266
#endif
271267

272268
OS << "Swift version " SWIFT_VERSION_STRING;
273-
#ifndef SWIFT_COMPILER_VERSION
269+
#if !defined(SWIFT_COMPILER_VERSION) && !defined(SWIFT_TOOLCHAIN_VERSION)
274270
OS << "-dev";
275271
#endif
276272

277273
if (effectiveVersion != Version::getCurrentLanguageVersion()) {
278274
OS << " effective-" << effectiveVersion;
279275
}
280276

281-
#if defined(SWIFT_COMPILER_VERSION)
277+
#if defined(SWIFT_TOOLCHAIN_VERSION)
278+
OS << " (" SWIFT_TOOLCHAIN_VERSION ")";
279+
#elif defined(SWIFT_COMPILER_VERSION)
282280
OS << " (swiftlang-" SWIFT_COMPILER_VERSION;
283281
#if defined(CLANG_COMPILER_VERSION)
284282
OS << " clang-" CLANG_COMPILER_VERSION;

0 commit comments

Comments
 (0)