Skip to content

Commit 88e1905

Browse files
committed
[SourceKit] Link SwiftCompilerModules to SourceKit
This is required for SourceKit to parse Regex literals rdar://90236990
1 parent 30034d3 commit 88e1905

File tree

9 files changed

+216
-25
lines changed

9 files changed

+216
-25
lines changed

test/IDE/complete_regex.swift

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
// REQUIRES: swift_in_compiler
2+
3+
// RUN: %empty-directory(%t)
4+
// RUN: %target-swift-ide-test -enable-experimental-string-processing -batch-code-completion -source-filename %s -filecheck %raw-FileCheck -completion-output-dir %t
5+
6+
func testLiteral() {
7+
re'foo'.#^RE_LITERAL_MEMBER^#
8+
// RE_LITERAL_MEMBER: Begin completions
9+
// RE_LITERAL_MEMBER-DAG: Keyword[self]/CurrNominal: self[#Regex<Substring>#];
10+
// RE_LITERAL_MEMBER: End completions
11+
}
12+

test/SourceKit/Sema/sema_regex.swift

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
public func retRegex() -> Regex<Substring> {
2+
re'foo'
3+
}
4+
5+
// REQUIRES: swift_in_compiler
6+
// RUN: %sourcekitd-test -req=sema %s -- %s -Xfrontend -enable-experimental-string-processing | %FileCheck %s
7+
8+
// CHECK: [
9+
// CHECK: {
10+
// CHECK: key.kind: source.lang.swift.ref.struct
11+
// CHECK: key.offset: 26
12+
// CHECK: key.length: 5
13+
// CHECK: key.is_system: 1
14+
// CHECK: },
15+
// CHECK: {
16+
// CHECK: key.kind: source.lang.swift.ref.struct
17+
// CHECK: key.offset: 32
18+
// CHECK: key.length: 9
19+
// CHECK: key.is_system: 1
20+
// CHECK: }
21+
// CHECK: ]
22+
23+
// Ensure there's no diagnostics
24+
// CHECK-NOT: key.severity:

tools/SourceKit/cmake/modules/AddSwiftSourceKit.cmake

Lines changed: 159 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,136 @@ function(add_sourcekit_default_compiler_flags target)
1818
-fblocks)
1919
endfunction()
2020

21+
function(add_sourcekitd_swifrt_linking target path HAS_SWIFT_MODULES)
22+
set(RPATH_LIST)
23+
if(${SWIFT_HOST_VARIANT_SDK} IN_LIST SWIFT_DARWIN_PLATFORMS)
24+
25+
# Lists of rpaths that we are going to add to our executables.
26+
#
27+
# Please add each rpath separately below to the list, explaining why you are
28+
# adding it.
29+
set(sdk_dir "${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_ARCH_${SWIFT_HOST_VARIANT_ARCH}_PATH}/usr/lib/swift")
30+
31+
# If we found a swift compiler and are going to use swift code in swift
32+
# host side tools but link with clang, add the appropriate -L paths so we
33+
# find all of the necessary swift libraries on Darwin.
34+
if (HAS_SWIFT_MODULES AND BOOTSTRAPPING_MODE)
35+
36+
if(BOOTSTRAPPING_MODE STREQUAL "HOSTTOOLS")
37+
# Add in the toolchain directory so we can grab compatibility libraries
38+
get_filename_component(TOOLCHAIN_BIN_DIR ${SWIFT_EXEC_FOR_SWIFT_MODULES} DIRECTORY)
39+
get_filename_component(TOOLCHAIN_LIB_DIR "${TOOLCHAIN_BIN_DIR}/../lib/swift/macosx" ABSOLUTE)
40+
target_link_directories(${target} PUBLIC ${TOOLCHAIN_LIB_DIR})
41+
42+
# Add the SDK directory for the host platform.
43+
target_link_directories(${target} PRIVATE "${sdk_dir}")
44+
45+
# Include the abi stable system stdlib in our rpath.
46+
list(APPEND RPATH_LIST "/usr/lib/swift")
47+
48+
elseif(BOOTSTRAPPING_MODE STREQUAL "CROSSCOMPILE-WITH-HOSTLIBS")
49+
50+
# Intentinally don't add the lib dir of the cross-compiled compiler, so that
51+
# the stdlib is not picked up from there, but from the SDK.
52+
# This requires to explicitly add all the needed compatibility libraries. We
53+
# can take them from the current build.
54+
set(vsuffix "-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH}")
55+
set(conctarget "swiftCompatibilityConcurrency${vsuffix}")
56+
target_link_libraries(${target} PUBLIC ${conctarget})
57+
58+
# Add the SDK directory for the host platform.
59+
target_link_directories(${target} PRIVATE "${sdk_dir}")
60+
61+
# Include the abi stable system stdlib in our rpath.
62+
list(APPEND RPATH_LIST "/usr/lib/swift")
63+
64+
elseif(BOOTSTRAPPING_MODE STREQUAL "BOOTSTRAPPING-WITH-HOSTLIBS")
65+
# Add the SDK directory for the host platform.
66+
target_link_directories(${target} PRIVATE "${sdk_dir}")
67+
68+
# A backup in case the toolchain doesn't have one of the compatibility libraries.
69+
target_link_directories(${target} PRIVATE
70+
"${SWIFTLIB_DIR}/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}")
71+
72+
# Include the abi stable system stdlib in our rpath.
73+
list(APPEND RPATH_LIST "/usr/lib/swift")
74+
75+
elseif(BOOTSTRAPPING_MODE STREQUAL "BOOTSTRAPPING")
76+
# At build time link against the built swift libraries from the
77+
# previous bootstrapping stage.
78+
get_bootstrapping_swift_lib_dir(bs_lib_dir "")
79+
target_link_directories(${target} PRIVATE ${bs_lib_dir})
80+
81+
# Required to pick up the built libswiftCompatibility<n>.a libraries
82+
target_link_directories(${target} PRIVATE
83+
"${SWIFTLIB_DIR}/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}")
84+
85+
# At runtime link against the built swift libraries from the current
86+
# bootstrapping stage.
87+
file(RELATIVE_PATH relative_rtlib_path "${path}" "${SWIFTLIB_DIR}/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}")
88+
list(APPEND RPATH_LIST "@loader_path/${relative_rtlib_path}")
89+
else()
90+
message(FATAL_ERROR "Unknown BOOTSTRAPPING_MODE '${BOOTSTRAPPING_MODE}'")
91+
endif()
92+
93+
# Workaround to make lldb happy: we have to explicitly add all swift compiler modules
94+
# to the linker command line.
95+
set(swift_ast_path_flags "-Wl")
96+
get_property(modules GLOBAL PROPERTY swift_compiler_modules)
97+
foreach(module ${modules})
98+
get_target_property(module_file "SwiftModule${module}" "module_file")
99+
string(APPEND swift_ast_path_flags ",-add_ast_path,${module_file}")
100+
endforeach()
101+
102+
set_property(TARGET ${target} APPEND_STRING PROPERTY
103+
LINK_FLAGS " ${swift_ast_path_flags} ")
104+
105+
# Workaround for a linker crash related to autolinking: rdar://77839981
106+
set_property(TARGET ${target} APPEND_STRING PROPERTY
107+
LINK_FLAGS " -lobjc ")
108+
109+
endif() # HAS_SWIFT_MODULES AND BOOTSTRAPPING_MODE
110+
111+
elseif(SWIFT_HOST_VARIANT_SDK MATCHES "LINUX|ANDROID|OPENBSD" AND HAS_SWIFT_MODULES AND BOOTSTRAPPING_MODE)
112+
set(swiftrt "swiftImageRegistrationObject${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_OBJECT_FORMAT}-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH}")
113+
if(${BOOTSTRAPPING_MODE} MATCHES "HOSTTOOLS|CROSSCOMPILE")
114+
# At build time and and run time, link against the swift libraries in the
115+
# installed host toolchain.
116+
get_filename_component(swift_bin_dir ${SWIFT_EXEC_FOR_SWIFT_MODULES} DIRECTORY)
117+
get_filename_component(swift_dir ${swift_bin_dir} DIRECTORY)
118+
set(host_lib_dir "${swift_dir}/lib/swift/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}")
119+
120+
target_link_libraries(${target} PRIVATE ${swiftrt})
121+
target_link_libraries(${target} PRIVATE "swiftCore")
122+
123+
target_link_directories(${target} PRIVATE ${host_lib_dir})
124+
if(BOOTSTRAPPING_MODE STREQUAL "HOSTTOOLS")
125+
list(APPEND RPATH_LIST "${host_lib_dir}")
126+
else()
127+
file(RELATIVE_PATH relative_rtlib_path "${path}" "${SWIFTLIB_DIR}/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}")
128+
list(APPEND RPATH_LIST "$ORIGIN/${relative_rtlib_path}")
129+
endif()
130+
131+
elseif(BOOTSTRAPPING_MODE STREQUAL "BOOTSTRAPPING")
132+
get_bootstrapping_swift_lib_dir(bs_lib_dir "")
133+
target_link_directories(${target} PRIVATE ${bs_lib_dir})
134+
target_link_libraries(${target} PRIVATE ${swiftrt})
135+
target_link_libraries(${target} PRIVATE "swiftCore")
136+
137+
# At runtime link against the built swift libraries from the current
138+
# bootstrapping stage.
139+
file(RELATIVE_PATH relative_rtlib_path "${path}" "${SWIFTLIB_DIR}/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}")
140+
list(APPEND RPATH_LIST "$ORIGIN/${relative_rtlib_path}")
141+
142+
elseif(BOOTSTRAPPING_MODE STREQUAL "BOOTSTRAPPING-WITH-HOSTLIBS")
143+
message(FATAL_ERROR "BOOTSTRAPPING_MODE 'BOOTSTRAPPING-WITH-HOSTLIBS' not supported on Linux")
144+
else()
145+
message(FATAL_ERROR "Unknown BOOTSTRAPPING_MODE '${BOOTSTRAPPING_MODE}'")
146+
endif()
147+
endif()
148+
set(RPATH_LIST ${RPATH_LIST} PARENT_SCOPE)
149+
endfunction()
150+
21151
# Add a new SourceKit library.
22152
#
23153
# Usage:
@@ -26,10 +156,11 @@ endfunction()
26156
# [LLVM_LINK_COMPONENTS comp1 ...] # LLVM components this library depends on
27157
# [INSTALL_IN_COMPONENT comp] # The Swift installation component that this library belongs to.
28158
# [SHARED]
159+
# [HAS_SWIFT_MODULES] # Whether to link SwiftCompilerModules
29160
# source1 [source2 source3 ...]) # Sources to add into this library
30161
macro(add_sourcekit_library name)
31162
cmake_parse_arguments(SOURCEKITLIB
32-
"SHARED"
163+
"SHARED;HAS_SWIFT_MODULES"
33164
"INSTALL_IN_COMPONENT"
34165
"HEADERS;DEPENDS;LLVM_LINK_COMPONENTS"
35166
${ARGN})
@@ -89,25 +220,16 @@ macro(add_sourcekit_library name)
89220
add_llvm_symbol_exports(${name} ${EXPORTED_SYMBOL_FILE})
90221
endif()
91222

92-
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
93-
if(SOURCEKITLIB_SHARED)
94-
set_target_properties(${name} PROPERTIES BUILD_WITH_INSTALL_RPATH TRUE)
95-
set_target_properties(${name} PROPERTIES INSTALL_NAME_DIR "@rpath")
96-
endif()
97-
endif()
98223

99-
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
100-
if(SOURCEKITLIB_SHARED)
101-
set_target_properties(${name} PROPERTIES BUILD_WITH_INSTALL_RPATH TRUE)
102-
set_target_properties(${name} PROPERTIES INSTALL_RPATH "$ORIGIN/../lib/swift/linux")
103-
endif()
104-
endif()
224+
if(SOURCEKITLIB_SHARED)
225+
set(RPATH_LIST)
226+
add_sourcekitd_swifrt_linking(${name} ${SOURCEKIT_LIBRARY_OUTPUT_INTDIR} ${SOURCEKITLIB_HAS_SWIFT_MODULES})
105227

106-
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Android")
107-
if(SOURCEKITLIB_SHARED)
108-
set_target_properties(${name} PROPERTIES BUILD_WITH_INSTALL_RPATH TRUE)
109-
set_target_properties(${name} PROPERTIES INSTALL_RPATH "$ORIGIN/../lib/swift/android")
228+
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
229+
set_target_properties(${name} PROPERTIES INSTALL_NAME_DIR "@rpath")
110230
endif()
231+
set_target_properties(${name} PROPERTIES BUILD_WITH_INSTALL_RPATH TRUE)
232+
set_target_properties(${name} PROPERTIES INSTALL_RPATH "${RPATH_LIST}")
111233
endif()
112234

113235
if("${SOURCEKITLIB_INSTALL_IN_COMPONENT}" STREQUAL "")
@@ -185,10 +307,11 @@ endmacro()
185307
# [LLVM_LINK_COMPONENTS comp1 ...] # LLVM components this framework depends on
186308
# [MODULEMAP modulemap] # Module map file for this framework
187309
# [INSTALL_IN_COMPONENT comp] # The Swift installation component that this framework belongs to.
310+
# [HAS_SWIFT_MODULES] # Whether to link SwiftCompilerModules
188311
# source1 [source2 source3 ...]) # Sources to add into this framework
189312
macro(add_sourcekit_framework name)
190313
cmake_parse_arguments(SOURCEKITFW
191-
"" "MODULEMAP;INSTALL_IN_COMPONENT" "LLVM_LINK_COMPONENTS" ${ARGN})
314+
"HAS_SWIFT_MODULES" "MODULEMAP;INSTALL_IN_COMPONENT" "LLVM_LINK_COMPONENTS" ${ARGN})
192315
set(srcs ${SOURCEKITFW_UNPARSED_ARGUMENTS})
193316

194317
set(lib_dir ${SOURCEKIT_LIBRARY_OUTPUT_INTDIR})
@@ -255,11 +378,14 @@ macro(add_sourcekit_framework name)
255378
set_output_directory(${name}
256379
BINARY_DIR ${SOURCEKIT_RUNTIME_OUTPUT_INTDIR}
257380
LIBRARY_DIR ${SOURCEKIT_LIBRARY_OUTPUT_INTDIR})
381+
set(RPATH_LIST)
382+
add_sourcekitd_swifrt_linking(${name} "${SOURCEKIT_LIBRARY_OUTPUT_INTDIR}" ${SOURCEKITFW_HAS_SWIFT_MODULES})
258383
set_target_properties(${name} PROPERTIES
259384
BUILD_WITH_INSTALL_RPATH TRUE
260385
FOLDER "SourceKit frameworks"
261386
FRAMEWORK TRUE
262387
INSTALL_NAME_DIR "@rpath"
388+
INSTALL_RPATH "${RPATH_LIST}"
263389
MACOSX_FRAMEWORK_INFO_PLIST "${SOURCEKIT_SOURCE_DIR}/cmake/MacOSXFrameworkInfo.plist.in"
264390
MACOSX_FRAMEWORK_IDENTIFIER "com.apple.${name}"
265391
MACOSX_FRAMEWORK_SHORT_VERSION_STRING "1.0"
@@ -283,10 +409,13 @@ macro(add_sourcekit_framework name)
283409
set_output_directory(${name}
284410
BINARY_DIR ${framework_location}
285411
LIBRARY_DIR ${framework_location})
412+
set(RPATH_LIST)
413+
add_sourcekitd_swifrt_linking(${name} "${framework_location}" SOURCEKITFW_HAS_SWIFT_MODULES RPATH_LIST)
286414
set_target_properties(${name} PROPERTIES
287415
BUILD_WITH_INSTALL_RPATH TRUE
288416
FOLDER "SourceKit frameworks"
289417
INSTALL_NAME_DIR "@rpath/${name}.framework"
418+
INSTALL_RPATH "${RPATH_LIST}"
290419
PREFIX ""
291420
SUFFIX "")
292421
swift_install_in_component(DIRECTORY ${framework_location}
@@ -316,9 +445,10 @@ endmacro(add_sourcekit_framework)
316445
# Usage:
317446
# add_sourcekit_xpc_service(name # Name of the XPC service
318447
# [LLVM_LINK_COMPONENTS comp1 ...] # LLVM components this service depends on
448+
# [HAS_SWIFT_MODULES] # Whether to link SwiftCompilerModules
319449
# source1 [source2 source3 ...]) # Sources to add into this service
320450
macro(add_sourcekit_xpc_service name framework_target)
321-
cmake_parse_arguments(SOURCEKITXPC "" "" "LLVM_LINK_COMPONENTS" ${ARGN})
451+
cmake_parse_arguments(SOURCEKITXPC "HAS_SWIFT_MODULES" "" "LLVM_LINK_COMPONENTS" ${ARGN})
322452
set(srcs ${SOURCEKITXPC_UNPARSED_ARGUMENTS})
323453

324454
set(lib_dir ${SOURCEKIT_LIBRARY_OUTPUT_INTDIR})
@@ -364,10 +494,17 @@ macro(add_sourcekit_xpc_service name framework_target)
364494

365495
add_dependencies(${framework_target} ${name})
366496

497+
set(RPATH_LIST)
498+
add_sourcekitd_swifrt_linking(${name} ${xpc_bin_dir} ${SOURCEKITXPC_HAS_SWIFT_MODULES})
499+
500+
file(RELATIVE_PATH relative_lib_path "${xpc_bin_dir}" "${lib_dir}")
501+
list(APPEND RPATH_LIST "@loader_path/${relative_lib_path}")
502+
367503
# Add rpath for sourcekitdInProc
504+
# lib/${framework_taget}.framework/Versions/A/XPCServices/${name}.xpc/Contents/MacOS/${name}
368505
set_target_properties(${name} PROPERTIES
369506
BUILD_WITH_INSTALL_RPATH On
370-
INSTALL_RPATH "@loader_path/../../../../../../.."
507+
INSTALL_RPATH "${RPATH_LIST}"
371508
INSTALL_NAME_DIR "@rpath")
372509

373510
if (SOURCEKIT_DEPLOYMENT_OS MATCHES "^macosx")
@@ -379,9 +516,8 @@ macro(add_sourcekit_xpc_service name framework_target)
379516
# ASan does not play well with exported_symbol option. This should be fixed soon.
380517
if(NOT SWIFT_ASAN_BUILD)
381518
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
382-
set_target_properties(${name}
383-
PROPERTIES
384-
LINK_FLAGS "-Wl,-exported_symbol,_main")
519+
set_property(TARGET ${name} APPEND_STRING PROPERTY
520+
LINK_FLAGS " -Wl,-exported_symbol,_main ")
385521
endif()
386522
endif()
387523
add_sourcekit_default_compiler_flags("${name}")

tools/SourceKit/tools/sourcekitd/bin/InProc/CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ if (SOURCEKIT_INSTALLING_INPROC)
2121
${sourcekitdInProc_args}
2222
MODULEMAP module.modulemap
2323
INSTALL_IN_COMPONENT sourcekit-inproc
24+
HAS_SWIFT_MODULES
2425
)
2526
set_property(TARGET sourcekitdInProc APPEND_STRING PROPERTY LINK_FLAGS " -fapplication-extension")
2627
if (SOURCEKIT_DEPLOYMENT_OS MATCHES "^macosx")
@@ -35,6 +36,7 @@ if (SOURCEKIT_INSTALLING_INPROC)
3536
${SOURCEKITD_SOURCE_DIR}/include/sourcekitd/sourcekitd.h
3637
INSTALL_IN_COMPONENT sourcekit-inproc
3738
SHARED
39+
HAS_SWIFT_MODULES
3840
)
3941
endif()
4042
else()
@@ -44,6 +46,7 @@ else()
4446
${SOURCEKITD_SOURCE_DIR}/include/sourcekitd/sourcekitd.h
4547
INSTALL_IN_COMPONENT sourcekit-inproc
4648
SHARED
49+
HAS_SWIFT_MODULES
4750
)
4851
endif()
4952
target_link_libraries(sourcekitdInProc PRIVATE

tools/SourceKit/tools/sourcekitd/bin/XPC/Service/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ if (BUILD_SOURCEKIT_XPC_SERVICE)
22
add_sourcekit_xpc_service(SourceKitService sourcekitd
33
XPCService.cpp
44
LLVM_LINK_COMPONENTS support coverage
5+
HAS_SWIFT_MODULES
56
)
67
swift_is_installing_component(sourcekit-inproc SOURCEKIT_INSTALLING_INPROC)
78
if(SOURCEKIT_INSTALLING_INPROC)

tools/SourceKit/tools/sourcekitd/lib/API/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ add_sourcekit_library(sourcekitdAPI
1818
target_link_libraries(sourcekitdAPI PRIVATE
1919
swiftBasic
2020
SourceKitSupport
21-
SourceKitSwiftLang)
21+
SourceKitSwiftLang
22+
swiftCompilerModules)
2223

2324
if(APPLE AND HAVE_XPC_H)
2425
target_sources(sourcekitdAPI PRIVATE

tools/SourceKit/tools/sourcekitd/lib/API/Requests.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131

3232
#include "swift/Basic/ExponentialGrowthAppendingBinaryByteStream.h"
3333
#include "swift/Basic/LLVMInitialize.h"
34+
#include "swift/Basic/InitializeSwiftModules.h"
3435
#include "swift/Basic/Mangler.h"
3536
#include "swift/Basic/Statistic.h"
3637
#include "swift/Basic/Version.h"
@@ -109,6 +110,7 @@ void sourcekitd::initializeService(
109110
StringRef runtimeLibPath, StringRef diagnosticDocumentationPath,
110111
std::function<void(sourcekitd_response_t)> postNotification) {
111112
INITIALIZE_LLVM();
113+
initializeSwiftModules();
112114
llvm::EnablePrettyStackTrace();
113115
GlobalCtx =
114116
new SourceKit::Context(runtimeLibPath, diagnosticDocumentationPath,

tools/swift-ide-test/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,15 @@ add_swift_host_tool(swift-ide-test
44
XMLValidator.cpp
55
SWIFT_COMPONENT tools
66
THINLTO_LD64_ADD_FLTO_CODEGEN_ONLY
7+
HAS_SWIFT_MODULES
78
)
89
target_link_libraries(swift-ide-test
910
PRIVATE
1011
swiftAST
1112
swiftDriver
1213
swiftFrontend
13-
swiftIDE)
14+
swiftIDE
15+
swiftCompilerModules)
1416

1517
# If libxml2 is available, make it available for swift-ide-test.
1618
if(LLVM_ENABLE_LIBXML2)

0 commit comments

Comments
 (0)