mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Merge pull request #82285 from kateinoigakukun/yt/build-foundation
This commit is contained in:
@@ -80,6 +80,91 @@ class WasmSwiftSDK(product.Product):
|
||||
cmake_options.define('CMAKE_RANLIB', os.path.join(
|
||||
native_toolchain_path, 'bin', 'llvm-ranlib'))
|
||||
|
||||
def _build_libxml2(self, swift_host_triple, has_pthread, wasi_sysroot):
|
||||
libxml2 = CMakeProduct(
|
||||
args=self.args,
|
||||
toolchain=self.toolchain,
|
||||
source_dir=os.path.join(
|
||||
os.path.dirname(self.source_dir), 'libxml2'),
|
||||
build_dir=os.path.join(self.build_dir, 'libxml2', swift_host_triple))
|
||||
self._append_platform_cmake_options(
|
||||
libxml2.cmake_options, swift_host_triple, has_pthread, wasi_sysroot, [])
|
||||
libxml2.cmake_options.define('LIBXML2_WITH_C14N', 'FALSE')
|
||||
libxml2.cmake_options.define('LIBXML2_WITH_CATALOG', 'FALSE')
|
||||
libxml2.cmake_options.define('LIBXML2_WITH_DEBUG', 'FALSE')
|
||||
libxml2.cmake_options.define('LIBXML2_WITH_DOCB', 'FALSE')
|
||||
libxml2.cmake_options.define('LIBXML2_WITH_FTP', 'FALSE')
|
||||
libxml2.cmake_options.define('LIBXML2_WITH_HTML', 'FALSE')
|
||||
libxml2.cmake_options.define('LIBXML2_WITH_HTTP', 'FALSE')
|
||||
libxml2.cmake_options.define('LIBXML2_WITH_ICONV', 'FALSE')
|
||||
libxml2.cmake_options.define('LIBXML2_WITH_ICU', 'FALSE')
|
||||
libxml2.cmake_options.define('LIBXML2_WITH_ISO8859X', 'FALSE')
|
||||
libxml2.cmake_options.define('LIBXML2_WITH_LEGACY', 'FALSE')
|
||||
libxml2.cmake_options.define('LIBXML2_WITH_LZMA', 'FALSE')
|
||||
libxml2.cmake_options.define('LIBXML2_WITH_MEM_DEBUG', 'FALSE')
|
||||
libxml2.cmake_options.define('LIBXML2_WITH_MODULES', 'FALSE')
|
||||
libxml2.cmake_options.define('LIBXML2_WITH_OUTPUT', 'TRUE')
|
||||
libxml2.cmake_options.define('LIBXML2_WITH_PATTERN', 'FALSE')
|
||||
libxml2.cmake_options.define('LIBXML2_WITH_PROGRAMS', 'FALSE')
|
||||
libxml2.cmake_options.define('LIBXML2_WITH_PUSH', 'TRUE')
|
||||
libxml2.cmake_options.define('LIBXML2_WITH_PYTHON', 'FALSE')
|
||||
libxml2.cmake_options.define('LIBXML2_WITH_READER', 'FALSE')
|
||||
libxml2.cmake_options.define('LIBXML2_WITH_REGEXPS', 'TRUE')
|
||||
libxml2.cmake_options.define('LIBXML2_WITH_RUN_DEBUG', 'FALSE')
|
||||
libxml2.cmake_options.define('LIBXML2_WITH_SAX1', 'FALSE')
|
||||
libxml2.cmake_options.define('LIBXML2_WITH_SCHEMAS', 'FALSE')
|
||||
libxml2.cmake_options.define('LIBXML2_WITH_SCHEMATRON', 'FALSE')
|
||||
libxml2.cmake_options.define('LIBXML2_WITH_TESTS', 'FALSE')
|
||||
libxml2.cmake_options.define('LIBXML2_WITH_TREE', 'TRUE')
|
||||
libxml2.cmake_options.define('LIBXML2_WITH_VALID', 'TRUE')
|
||||
libxml2.cmake_options.define('LIBXML2_WITH_WRITER', 'FALSE')
|
||||
libxml2.cmake_options.define('LIBXML2_WITH_XINCLUDE', 'FALSE')
|
||||
libxml2.cmake_options.define('LIBXML2_WITH_XPATH', 'TRUE')
|
||||
libxml2.cmake_options.define('LIBXML2_WITH_XPTR', 'FALSE')
|
||||
libxml2.cmake_options.define('LIBXML2_WITH_ZLIB', 'FALSE')
|
||||
libxml2.cmake_options.define('BUILD_SHARED_LIBS', 'FALSE')
|
||||
|
||||
cmake_thread_enabled = 'TRUE' if has_pthread else 'FALSE'
|
||||
libxml2.cmake_options.define('LIBXML2_WITH_THREAD_ALLOC', cmake_thread_enabled)
|
||||
libxml2.cmake_options.define('LIBXML2_WITH_THREADS', cmake_thread_enabled)
|
||||
libxml2.cmake_options.define('HAVE_PTHREAD_H', cmake_thread_enabled)
|
||||
|
||||
libxml2.build_with_cmake([], self.args.build_variant, [],
|
||||
prefer_native_toolchain=True)
|
||||
with shell.pushd(libxml2.build_dir):
|
||||
shell.call([self.toolchain.cmake, '--install', '.', '--prefix', '/', '--component', 'development'],
|
||||
env={'DESTDIR': wasi_sysroot})
|
||||
|
||||
def _build_foundation(self, swift_host_triple, has_pthread, wasi_sysroot):
|
||||
source_root = os.path.dirname(self.source_dir)
|
||||
host_toolchain = self.native_toolchain_path(self.args.host_target)
|
||||
|
||||
foundation = CMakeProduct(
|
||||
args=self.args,
|
||||
toolchain=self.toolchain,
|
||||
source_dir=os.path.join(
|
||||
os.path.dirname(self.source_dir), 'swift-corelibs-foundation'),
|
||||
build_dir=os.path.join(self.build_dir, 'foundation', swift_host_triple))
|
||||
self._append_platform_cmake_options(
|
||||
foundation.cmake_options, swift_host_triple, has_pthread, wasi_sysroot, [])
|
||||
foundation.cmake_options.define('BUILD_SHARED_LIBS', 'FALSE')
|
||||
foundation.cmake_options.define('FOUNDATION_BUILD_TOOLS', 'FALSE')
|
||||
foundation.cmake_options.define('_SwiftCollections_SourceDIR', os.path.join(source_root, 'swift-collections'))
|
||||
foundation.cmake_options.define('_SwiftFoundation_SourceDIR', os.path.join(source_root, 'swift-foundation'))
|
||||
foundation.cmake_options.define('_SwiftFoundationICU_SourceDIR', os.path.join(source_root, 'swift-foundation-icu'))
|
||||
foundation.cmake_options.define('SwiftFoundation_MACRO', os.path.join(host_toolchain, 'lib', 'swift', 'host', 'plugins'))
|
||||
|
||||
foundation.cmake_options.define('LIBXML2_INCLUDE_DIR', os.path.join(wasi_sysroot, 'include', 'libxml2'))
|
||||
foundation.cmake_options.define('LIBXML2_LIBRARY', os.path.join(wasi_sysroot, 'lib'))
|
||||
|
||||
foundation.build_with_cmake([], self.args.build_variant, [],
|
||||
prefer_native_toolchain=True)
|
||||
|
||||
dest_dir = self._target_package_path(swift_host_triple)
|
||||
with shell.pushd(foundation.build_dir):
|
||||
shell.call([self.toolchain.cmake, '--install', '.', '--prefix', '/usr'],
|
||||
env={'DESTDIR': dest_dir})
|
||||
|
||||
def _build_swift_testing(self, swift_host_triple, has_pthread, wasi_sysroot):
|
||||
swift_testing = CMakeProduct(
|
||||
args=self.args,
|
||||
@@ -125,6 +210,9 @@ class WasmSwiftSDK(product.Product):
|
||||
shell.call([self.toolchain.cmake, '--install', '.',
|
||||
'--component', 'clang_rt.builtins-wasm32'],
|
||||
env={'DESTDIR': clang_dir})
|
||||
|
||||
self._build_libxml2(swift_host_triple, has_pthread, wasi_sysroot)
|
||||
self._build_foundation(swift_host_triple, has_pthread, wasi_sysroot)
|
||||
# Build swift-testing
|
||||
self._build_swift_testing(swift_host_triple, has_pthread, wasi_sysroot)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user