File tree Expand file tree Collapse file tree 6 files changed +38
-8
lines changed
swift_build_support/swift_build_support/products Expand file tree Collapse file tree 6 files changed +38
-8
lines changed Original file line number Diff line number Diff line change @@ -112,11 +112,11 @@ else()
112
112
# If we use Clang-cl or MSVC, CMake provides default compiler and linker flags that are incompatible
113
113
# with the frontend of Clang or Clang++.
114
114
if (SWIFT_COMPILER_IS_MSVC_LIKE )
115
- set (CMAKE_CXX_COMPILER "${SWIFT_NATIVE_LLVM_TOOLS_PATH } /clang-cl" )
116
- set (CMAKE_C_COMPILER "${SWIFT_NATIVE_LLVM_TOOLS_PATH } /clang-cl" )
115
+ set (CMAKE_CXX_COMPILER "${SWIFT_NATIVE_CLANG_TOOLS_PATH } /clang-cl" )
116
+ set (CMAKE_C_COMPILER "${SWIFT_NATIVE_CLANG_TOOLS_PATH } /clang-cl" )
117
117
else ()
118
- set (CMAKE_CXX_COMPILER "${SWIFT_NATIVE_LLVM_TOOLS_PATH } /clang++" )
119
- set (CMAKE_C_COMPILER "${SWIFT_NATIVE_LLVM_TOOLS_PATH } /clang" )
118
+ set (CMAKE_CXX_COMPILER "${SWIFT_NATIVE_CLANG_TOOLS_PATH } /clang++" )
119
+ set (CMAKE_C_COMPILER "${SWIFT_NATIVE_CLANG_TOOLS_PATH } /clang" )
120
120
endif ()
121
121
122
122
if (CMAKE_C_COMPILER_LAUNCHER MATCHES ".*distcc" )
Original file line number Diff line number Diff line change @@ -13,11 +13,11 @@ if(("${SWIFT_HOST_VARIANT_SDK}" STREQUAL "${SWIFT_PRIMARY_VARIANT_SDK}") AND
13
13
# If we use Clang-cl or MSVC, CMake provides default compiler and linker flags that are incompatible
14
14
# with the frontend of Clang or Clang++.
15
15
if (SWIFT_COMPILER_IS_MSVC_LIKE )
16
- set (CMAKE_CXX_COMPILER "${SWIFT_NATIVE_LLVM_TOOLS_PATH } /clang-cl" )
17
- set (CMAKE_C_COMPILER "${SWIFT_NATIVE_LLVM_TOOLS_PATH } /clang-cl" )
16
+ set (CMAKE_CXX_COMPILER "${SWIFT_NATIVE_CLANG_TOOLS_PATH } /clang-cl" )
17
+ set (CMAKE_C_COMPILER "${SWIFT_NATIVE_CLANG_TOOLS_PATH } /clang-cl" )
18
18
else ()
19
- set (CMAKE_CXX_COMPILER "${SWIFT_NATIVE_LLVM_TOOLS_PATH } /clang++" )
20
- set (CMAKE_C_COMPILER "${SWIFT_NATIVE_LLVM_TOOLS_PATH } /clang" )
19
+ set (CMAKE_CXX_COMPILER "${SWIFT_NATIVE_CLANG_TOOLS_PATH } /clang++" )
20
+ set (CMAKE_C_COMPILER "${SWIFT_NATIVE_CLANG_TOOLS_PATH } /clang" )
21
21
endif ()
22
22
23
23
if (CMAKE_C_COMPILER_LAUNCHER MATCHES ".*distcc" )
Original file line number Diff line number Diff line change @@ -704,6 +704,18 @@ class BuildScriptInvocation(object):
704
704
impl_args += [
705
705
"--host-libtool" , toolchain .libtool ,
706
706
]
707
+ if args .native_clang_tools_path is not None :
708
+ impl_args += [
709
+ "--native-clang-tools-path=%s" % args .native_clang_tools_path
710
+ ]
711
+ if args .native_llvm_tools_path is not None :
712
+ impl_args += [
713
+ "--native-llvm-tools-path=%s" % args .native_llvm_tools_path
714
+ ]
715
+ if args .native_swift_tools_path is not None :
716
+ impl_args += [
717
+ "--native-swift-tools-path=%s" % args .native_swift_tools_path
718
+ ]
707
719
708
720
# If we have extra_swift_args, combine all of them together and then
709
721
# add them as one command.
Original file line number Diff line number Diff line change @@ -374,6 +374,15 @@ def create_argument_parser():
374
374
option ('--host-cxx' , store_path (executable = True ),
375
375
help = 'the absolute path to CXX, the "clang++" compiler for the '
376
376
'host platform. Default is auto detected.' )
377
+ option ('--native-swift-tools-path' , store_path ,
378
+ help = 'the path to a directory that contains prebuilt Swift tools '
379
+ 'that are executable on the host platform' )
380
+ option ('--native-clang-tools-path' , store_path ,
381
+ help = 'the path to a directory that contains prebuilt Clang tools '
382
+ 'that are executable on the host platform' )
383
+ option ('--native-llvm-tools-path' , store_path ,
384
+ help = 'the path to a directory that contains prebuilt LLVM tools '
385
+ 'that are executable on the host platform' )
377
386
option ('--cmake-c-launcher' , store_path (executable = True ),
378
387
default = os .environ .get ('C_COMPILER_LAUNCHER' , None ),
379
388
help = 'the absolute path to set CMAKE_C_COMPILER_LAUNCHER' )
Original file line number Diff line number Diff line change 188
188
'lto_type' : None ,
189
189
'maccatalyst' : False ,
190
190
'maccatalyst_ios_tests' : False ,
191
+ 'native_clang_tools_path' : None ,
192
+ 'native_llvm_tools_path' : None ,
193
+ 'native_swift_tools_path' : None ,
191
194
'dump_config' : False ,
192
195
'show_sdks' : False ,
193
196
'skip_build' : False ,
@@ -652,6 +655,9 @@ class BuildScriptImplOption(_BaseOption):
652
655
PathOption ('--install-symroot' ),
653
656
PathOption ('--install-destdir' ),
654
657
EnableOption ('--install-all' ),
658
+ PathOption ('--native-clang-tools-path' ),
659
+ PathOption ('--native-llvm-tools-path' ),
660
+ PathOption ('--native-swift-tools-path' ),
655
661
PathOption ('--symbols-package' ),
656
662
PathOption ('--cmake-c-launcher' ),
657
663
PathOption ('--cmake-cxx-launcher' ),
Original file line number Diff line number Diff line change @@ -169,6 +169,9 @@ def install_toolchain_path(self, host_target):
169
169
Returns the path to the toolchain that is being created as part of this
170
170
build.
171
171
"""
172
+ if self .args .native_swift_tools_path is not None :
173
+ return os .path .split (self .args .native_swift_tools_path )[0 ]
174
+
172
175
install_destdir = self .args .install_destdir
173
176
if self .args .cross_compile_hosts :
174
177
build_root = os .path .dirname (self .build_dir )
You can’t perform that action at this time.
0 commit comments