Skip to content

Commit 23f134c

Browse files
authored
Merge pull request swiftlang#22322 from nkcsgexi/libparser-version
cmake: allow SwiftSyntax parser to have an externally defined version number in the dylib
2 parents 482d2ba + 29a4ca8 commit 23f134c

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

tools/libSwiftSyntaxParser/CMakeLists.txt

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,27 @@ add_llvm_symbol_exports(libSwiftSyntaxParser ${LLVM_EXPORTED_SYMBOL_FILE})
2020
# Adds -dead_strip option
2121
add_link_opts(libSwiftSyntaxParser)
2222

23+
if (SWIFT_LIBPARSER_VER)
24+
set(SWIFTSYNTAX_PARSER_VERSION_STRING "${SWIFT_LIBPARSER_VER}")
25+
elseif (DARWIN_TOOLCHAIN_VERSION)
26+
set(SWIFTSYNTAX_PARSER_VERSION_STRING "${DARWIN_TOOLCHAIN_VERSION}")
27+
else()
28+
set(SWIFTSYNTAX_PARSER_VERSION_STRING "${SWIFT_COMPILER_VERSION}")
29+
endif()
30+
31+
if(SWIFTSYNTAX_PARSER_VERSION_STRING)
32+
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
33+
set(LIBPARSER_LINK_FLAGS " -Wl,-compatibility_version -Wl,1")
34+
set(LIBPARSER_LINK_FLAGS "${LIBPARSER_LINK_FLAGS} -Wl,-current_version -Wl,${SWIFTSYNTAX_PARSER_VERSION_STRING}")
35+
set_property(TARGET libSwiftSyntaxParser APPEND_STRING PROPERTY
36+
LINK_FLAGS ${LIBPARSER_LINK_FLAGS})
37+
else()
38+
set_target_properties(libSwiftSyntaxParser
39+
PROPERTIES
40+
VERSION ${SWIFTSYNTAX_PARSER_VERSION_STRING})
41+
endif()
42+
endif()
43+
2344
set_property(TARGET libSwiftSyntaxParser APPEND_STRING PROPERTY
2445
COMPILE_FLAGS " -fblocks")
2546
if(SWIFT_NEED_EXPLICIT_LIBDISPATCH)

utils/build-script-impl

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ KNOWN_SETTINGS=(
107107
test-installable-package "" "whether to run post-packaging tests on the produced package"
108108
reconfigure "" "force a CMake configuration run even if CMakeCache.txt already exists"
109109
build-libparser-only "" "only build libSwiftSyntaxParser"
110+
libparser-ver "" "current version of libSwiftSyntaxParser"
110111
skip-reconfigure "" "set to skip reconfigure"
111112
swift-primary-variant-sdk "" "default SDK for target binaries"
112113
swift-primary-variant-arch "" "default arch for target binaries"
@@ -2462,6 +2463,12 @@ for host in "${ALL_HOSTS[@]}"; do
24622463
fi
24632464
if [ "${BUILD_LIBPARSER_ONLY}" ]; then
24642465
build_targets=(libSwiftSyntaxParser)
2466+
if [ "${LIBPARSER_VER}" ] ; then
2467+
cmake_options=(
2468+
"${cmake_options[@]}"
2469+
-DSWIFT_LIBPARSER_VER:STRING="${LIBPARSER_VER}"
2470+
)
2471+
fi
24652472
fi
24662473
skip_build=${SKIP_BUILD_SWIFT}
24672474
;;

0 commit comments

Comments
 (0)