[boost] Enable Boost building with wasm32-emscripten (#14102)

This commit is contained in:
stoperro 2020-10-28 22:22:51 +01:00 committed by GitHub
parent 09a647a526
commit 318a8adbd0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
18 changed files with 86 additions and 42 deletions

View File

@ -1,7 +1,8 @@
# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
Source: boost-asio
Version: 1.73.0
Port-Version: 1
Build-Depends: boost-array, boost-assert, boost-bind, boost-chrono, boost-compatibility, boost-config, boost-coroutine (!arm&!uwp), boost-date-time, boost-detail, boost-function, boost-integer, boost-regex, boost-smart-ptr, boost-system, boost-throw-exception, boost-type-traits, boost-utility, boost-vcpkg-helpers, openssl
Port-Version: 2
Build-Depends: boost-array, boost-assert, boost-bind, boost-chrono, boost-compatibility, boost-config, boost-coroutine (!arm&!uwp&!emscripten), boost-date-time, boost-detail, boost-function, boost-integer, boost-regex, boost-smart-ptr, boost-system, boost-throw-exception, boost-type-traits, boost-utility, boost-vcpkg-helpers, openssl
Homepage: https://github.com/boostorg/asio
Description: Boost asio module
Supports: !emscripten

View File

@ -1,6 +1,8 @@
# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
Source: boost-beast
Version: 1.73.0
Build-Depends: boost-asio, boost-assert, boost-bind, boost-config, boost-container, boost-core, boost-endian, boost-intrusive, boost-logic, boost-mp11, boost-optional, boost-smart-ptr, boost-static-assert, boost-system, boost-throw-exception, boost-type-traits, boost-utility, boost-vcpkg-helpers, boost-winapi
Port-Version: 2
Build-Depends: boost-asio (!emscripten), boost-assert, boost-bind, boost-config, boost-container, boost-core, boost-endian, boost-intrusive, boost-logic, boost-mp11, boost-optional, boost-smart-ptr, boost-static-assert, boost-system, boost-throw-exception, boost-type-traits, boost-utility, boost-vcpkg-helpers, boost-winapi
Homepage: https://github.com/boostorg/beast
Description: Boost beast module
Supports: !emscripten

View File

@ -5,4 +5,4 @@ Port-Version: 2
Build-Depends: boost-assert, boost-build, boost-config, boost-detail, boost-integer, boost-modular-build-helper, boost-pool, boost-predef, boost-smart-ptr, boost-thread, boost-vcpkg-helpers
Homepage: https://github.com/boostorg/context
Description: Boost context module
Supports: !uwp
Supports: !uwp&!emscripten

View File

@ -6,8 +6,7 @@ vcpkg_from_github(
REF boost-1.73.0
SHA512 cb460e9d7f5b2782164e49820b097402f6a443718d689b2f793f5ab7030012a80418dfc51154f299c9f987d6864d87f7536476ffa97da1089bf6b70f2990ebea
HEAD_REF master
PATCHES
fix_exports_for_32bit_GNU_asm_for_windows.patch
PATCHES fix_exports_for_32bit_GNU_asm_for_windows.patch
)
file(READ "${SOURCE_PATH}/build/Jamfile.v2" _contents)

View File

@ -1,8 +1,8 @@
# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
Source: boost-coroutine
Version: 1.73.0
Port-Version: 1
Build-Depends: boost-assert, boost-build, boost-config, boost-context (!uwp), boost-detail, boost-exception, boost-integer, boost-modular-build-helper, boost-move, boost-range, boost-system, boost-thread, boost-throw-exception, boost-type-traits, boost-utility, boost-vcpkg-helpers
Port-Version: 2
Build-Depends: boost-assert, boost-build, boost-config, boost-context (!uwp&!emscripten), boost-detail, boost-exception, boost-integer, boost-modular-build-helper, boost-move, boost-range, boost-system, boost-thread, boost-throw-exception, boost-type-traits, boost-utility, boost-vcpkg-helpers
Homepage: https://github.com/boostorg/coroutine
Description: Boost coroutine module
Supports: !arm&!uwp
Supports: !arm&!uwp&!emscripten

View File

@ -1,6 +1,8 @@
# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
Source: boost-coroutine2
Version: 1.73.0
Build-Depends: boost-assert, boost-config, boost-context (!uwp), boost-detail, boost-vcpkg-helpers
Port-Version: 2
Build-Depends: boost-assert, boost-config, boost-context (!uwp&!emscripten), boost-detail, boost-vcpkg-helpers
Homepage: https://github.com/boostorg/coroutine2
Description: Boost coroutine2 module
Supports: !emscripten

View File

@ -1,8 +1,8 @@
# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
Source: boost-fiber
Version: 1.73.0
Port-Version: 1
Build-Depends: boost-algorithm, boost-assert, boost-build, boost-config, boost-context (!uwp), boost-core, boost-detail, boost-filesystem (!uwp), boost-format, boost-intrusive, boost-modular-build-helper, boost-predef, boost-smart-ptr, boost-vcpkg-helpers
Port-Version: 2
Build-Depends: boost-algorithm, boost-assert, boost-build, boost-config, boost-context (!uwp&!emscripten), boost-core, boost-detail, boost-filesystem (!uwp), boost-format, boost-intrusive, boost-modular-build-helper, boost-predef, boost-smart-ptr, boost-vcpkg-helpers
Homepage: https://github.com/boostorg/fiber
Description: Boost fiber module
Supports: !osx&!uwp&!arm
Supports: !osx&!uwp&!arm&!emscripten

View File

@ -1,7 +1,7 @@
# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
Source: boost-locale
Version: 1.73.0
Port-Version: 1
Port-Version: 2
Build-Depends: boost-assert, boost-build, boost-config, boost-function, boost-integer, boost-iterator, boost-modular-build-helper, boost-smart-ptr, boost-static-assert, boost-system, boost-thread, boost-type-traits, boost-unordered, boost-vcpkg-helpers, libiconv (!uwp&!windows)
Homepage: https://github.com/boostorg/locale
Description: Boost locale module

View File

@ -0,0 +1,24 @@
diff --git a/libs/locale/build/Jamfile.v2 b/libs/locale/build/Jamfile.v2
index 88a8cb1..e6a6b7f 100644
--- a/build/Jamfile.v2
+++ b/build/Jamfile.v2
@@ -17,6 +17,7 @@ import feature ;
# Features
feature.feature boost.locale.iconv : on off : optional propagated ;
+feature.feature boost.locale.force-found-iconv : on off : optional propagated ;
feature.feature boost.locale.icu : on off : optional propagated ;
feature.feature boost.locale.posix : on off : optional propagated ;
feature.feature boost.locale.std : on off : optional propagated ;
@@ -164,6 +164,11 @@ local flags-result ;
local found-iconv ;
+ if <boost.locale.force-found-iconv>on in $(properties)
+ {
+ found-iconv = true ;
+ }
+
if <boost.locale.iconv>on in $(properties)
|| ! <boost.locale.iconv> in $(properties:G)
&& ! <target-os>solaris in $(properties)

View File

@ -22,4 +22,9 @@ else()
boost.locale.icu=off
-sICONV_PATH=${LIBICONV_DIR}
)
endif()
if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Emscripten" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "wasm32")
list(APPEND B2_OPTIONS
boost.locale.force-found-iconv=on
)
endif()
endif()

View File

@ -6,7 +6,8 @@ vcpkg_from_github(
REF boost-1.73.0
SHA512 0af88d8db7b18395a2b3668bcb51a5f32cd0de9acb9633572c2fb7edcdf06f354802392606394cf75ec4fd4d9cfe5c96351db766e55f8ef30f746b0a7017ad1f
HEAD_REF master
PATCHES 0001-Fix-boost-ICU-support.patch
PATCHES
0001-Fix-boost-ICU-support.patch allow-force-finding-iconv.patch
)
include(${CURRENT_INSTALLED_DIR}/share/boost-build/boost-modular-build.cmake)

View File

@ -1,8 +1,8 @@
# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
Source: boost-log
Version: 1.73.0
Port-Version: 1
Build-Depends: boost-align, boost-array, boost-asio, boost-assert, boost-atomic, boost-bind, boost-build, boost-compatibility, boost-config, boost-container, boost-core, boost-date-time, boost-detail, boost-exception, boost-filesystem (!uwp), boost-function-types, boost-fusion, boost-integer, boost-interprocess, boost-intrusive, boost-io, boost-iterator, boost-lexical-cast, boost-locale (!uwp), boost-math, boost-modular-build-helper, boost-move, boost-mpl, boost-optional, boost-parameter, boost-phoenix, boost-predef, boost-preprocessor, boost-property-tree, boost-proto, boost-random, boost-range, boost-regex, boost-smart-ptr, boost-spirit, boost-static-assert, boost-system, boost-thread, boost-throw-exception, boost-type-index, boost-type-traits, boost-utility, boost-vcpkg-helpers, boost-winapi, boost-xpressive
Port-Version: 2
Build-Depends: boost-align, boost-array, boost-asio (!emscripten), boost-assert, boost-atomic, boost-bind, boost-build, boost-compatibility, boost-config, boost-container, boost-core, boost-date-time, boost-detail, boost-exception, boost-filesystem (!uwp), boost-function-types, boost-fusion, boost-integer, boost-interprocess, boost-intrusive, boost-io, boost-iterator, boost-lexical-cast, boost-locale (!uwp), boost-math, boost-modular-build-helper, boost-move, boost-mpl, boost-optional, boost-parameter, boost-phoenix, boost-predef, boost-preprocessor, boost-property-tree, boost-proto, boost-random, boost-range, boost-regex, boost-smart-ptr, boost-spirit, boost-static-assert, boost-system, boost-thread, boost-throw-exception, boost-type-index, boost-type-traits, boost-utility, boost-vcpkg-helpers, boost-winapi, boost-xpressive
Homepage: https://github.com/boostorg/log
Description: Boost log module
Supports: !uwp
Supports: !uwp&!emscripten

View File

@ -2,6 +2,6 @@
Source: boost-mpi
Version: 1.73.0
Port-Version: 1
Build-Depends: boost-assert, boost-build, boost-compatibility, boost-config, boost-core, boost-foreach, boost-function, boost-graph, boost-integer, boost-iterator, boost-lexical-cast, boost-math, boost-modular-build-helper, boost-mpl, boost-optional, boost-python (!uwp&!(arm&windows)), boost-serialization, boost-smart-ptr, boost-static-assert, boost-throw-exception, boost-type-traits, boost-utility, boost-vcpkg-helpers, mpi
Build-Depends: boost-assert, boost-build, boost-compatibility, boost-config, boost-core, boost-foreach, boost-function, boost-graph, boost-integer, boost-iterator, boost-lexical-cast, boost-math, boost-modular-build-helper, boost-mpl, boost-optional, boost-python (!uwp&!(arm&windows)&!emscripten), boost-serialization, boost-smart-ptr, boost-static-assert, boost-throw-exception, boost-type-traits, boost-utility, boost-vcpkg-helpers, mpi
Homepage: https://github.com/boostorg/mpi
Description: Boost mpi module

View File

@ -1,7 +1,8 @@
# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
Source: boost-parameter-python
Version: 1.73.0
Port-Version: 1
Build-Depends: boost-mpl, boost-parameter, boost-preprocessor, boost-python (!uwp&!(arm&windows)), boost-vcpkg-helpers
Port-Version: 2
Build-Depends: boost-mpl, boost-parameter, boost-preprocessor, boost-python (!uwp&!(arm&windows)&!emscripten), boost-vcpkg-helpers
Homepage: https://github.com/boostorg/parameter_python
Description: Boost parameter_python module
Supports: !emscripten

View File

@ -1,6 +1,8 @@
# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
Source: boost-process
Version: 1.73.0
Build-Depends: boost-algorithm, boost-asio, boost-config, boost-core, boost-filesystem (!uwp), boost-fusion, boost-iterator, boost-move, boost-optional, boost-system, boost-tokenizer, boost-type-index, boost-vcpkg-helpers, boost-winapi
Port-Version: 2
Build-Depends: boost-algorithm, boost-asio (!emscripten), boost-config, boost-core, boost-filesystem (!uwp), boost-fusion, boost-iterator, boost-move, boost-optional, boost-system, boost-tokenizer, boost-type-index, boost-vcpkg-helpers, boost-winapi
Homepage: https://github.com/boostorg/process
Description: Boost process module
Supports: !emscripten

View File

@ -1,11 +1,11 @@
# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
Source: boost-python
Version: 1.73.0
Port-Version: 1
Port-Version: 2
Build-Depends: boost-bind, boost-compatibility, boost-config, boost-conversion, boost-core, boost-detail, boost-foreach, boost-function, boost-graph, boost-integer, boost-iterator, boost-lexical-cast, boost-math, boost-mpl, boost-numeric-conversion, boost-preprocessor, boost-property-map, boost-smart-ptr, boost-static-assert, boost-tuple, boost-type-traits, boost-utility, boost-vcpkg-helpers, python3
Homepage: https://github.com/boostorg/python
Description: Boost python module
Supports: !uwp&!(arm&windows)
Supports: !uwp&!(arm&windows)&!emscripten
Feature: python2
Build-Depends: python2 (windows)

View File

@ -1,11 +1,10 @@
# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
Source: boost
Version: 1.73.0
Port-Version: 3
Port-Version: 4
Homepage: https://boost.org
Description: Peer-reviewed portable C++ source libraries
Build-Depends: boost-accumulators, boost-algorithm, boost-align, boost-any, boost-array, boost-asio, boost-assert, boost-assign, boost-atomic, boost-beast, boost-bimap, boost-bind, boost-callable-traits, boost-chrono, boost-circular-buffer, boost-compatibility, boost-compute, boost-concept-check, boost-config, boost-container, boost-container-hash, boost-context (!uwp), boost-contract, boost-conversion, boost-convert, boost-core, boost-coroutine (!arm&!uwp), boost-coroutine2, boost-crc, boost-date-time, boost-detail, boost-dll, boost-dynamic-bitset, boost-endian, boost-exception, boost-fiber (!osx&!uwp&!arm), boost-filesystem (!uwp), boost-flyweight, boost-foreach, boost-format, boost-function, boost-functional, boost-function-types, boost-fusion, boost-geometry, boost-gil, boost-graph, boost-graph-parallel, boost-hana, boost-heap, boost-histogram, boost-hof, boost-icl, boost-integer, boost-interprocess, boost-intrusive, boost-io, boost-iostreams (!uwp), boost-iterator, boost-lambda, boost-lexical-cast, boost-locale (!uwp), boost-local-function, boost-lockfree, boost-log (!uwp), boost-logic, boost-math, boost-metaparse, boost-move, boost-mp11, boost-mpl, boost-msm, boost-multiprecision, boost-multi-array, boost-multi-index, boost-nowide, boost-numeric-conversion, boost-interval, boost-odeint, boost-ublas, boost-safe-numerics, boost-optional, boost-outcome, boost-parameter, boost-parameter-python, boost-phoenix, boost-polygon, boost-poly-collection, boost-pool, boost-predef, boost-preprocessor, boost-process, boost-program-options, boost-property-map, boost-property-tree, boost-proto, boost-ptr-container, boost-python (!uwp&!(arm&windows)), boost-qvm, boost-random, boost-range, boost-ratio, boost-rational, boost-regex, boost-numeric-conversion, boost-interval, boost-odeint, boost-ublas, boost-safe-numerics, boost-scope-exit, boost-serialization, boost-signals2, boost-smart-ptr, boost-sort, boost-spirit, boost-stacktrace (!uwp), boost-statechart, boost-static-assert, boost-static-string, boost-system, boost-test (!uwp), boost-thread, boost-throw-exception, boost-timer, boost-tokenizer, boost-tti, boost-tuple, boost-typeof, boost-type-erasure, boost-type-index, boost-type-traits, boost-units, boost-unordered, boost-utility, boost-uuid, boost-variant, boost-variant2, boost-vmd, boost-wave (!uwp), boost-winapi, boost-xpressive, boost-yap
Build-Depends: boost-accumulators, boost-algorithm, boost-align, boost-any, boost-array, boost-asio (!emscripten), boost-assert, boost-assign, boost-atomic, boost-beast (!emscripten), boost-bimap, boost-bind, boost-callable-traits, boost-chrono, boost-circular-buffer, boost-compatibility, boost-compute, boost-concept-check, boost-config, boost-container, boost-container-hash, boost-context (!uwp&!emscripten), boost-contract, boost-conversion, boost-convert, boost-core, boost-coroutine (!arm&!uwp&!emscripten), boost-coroutine2 (!emscripten), boost-crc, boost-date-time, boost-detail, boost-dll, boost-dynamic-bitset, boost-endian, boost-exception, boost-fiber (!osx&!uwp&!arm&!emscripten), boost-filesystem (!uwp), boost-flyweight, boost-foreach, boost-format, boost-function, boost-functional, boost-function-types, boost-fusion, boost-geometry, boost-gil, boost-graph, boost-graph-parallel, boost-hana, boost-heap, boost-histogram, boost-hof, boost-icl, boost-integer, boost-interprocess, boost-intrusive, boost-io, boost-iostreams (!uwp), boost-iterator, boost-lambda, boost-lexical-cast, boost-locale (!uwp), boost-local-function, boost-lockfree, boost-log (!uwp&!emscripten), boost-logic, boost-math, boost-metaparse, boost-move, boost-mp11, boost-mpl, boost-msm, boost-multiprecision, boost-multi-array, boost-multi-index, boost-nowide, boost-numeric-conversion, boost-interval, boost-odeint, boost-ublas, boost-safe-numerics, boost-optional, boost-outcome, boost-parameter, boost-parameter-python (!emscripten), boost-phoenix, boost-polygon, boost-poly-collection, boost-pool, boost-predef, boost-preprocessor, boost-process (!emscripten), boost-program-options, boost-property-map, boost-property-tree, boost-proto, boost-ptr-container, boost-python (!uwp&!(arm&windows)&!emscripten), boost-qvm, boost-random, boost-range, boost-ratio, boost-rational, boost-regex, boost-numeric-conversion, boost-interval, boost-odeint, boost-ublas, boost-safe-numerics, boost-scope-exit, boost-serialization, boost-signals2, boost-smart-ptr, boost-sort, boost-spirit, boost-stacktrace (!uwp), boost-statechart, boost-static-assert, boost-static-string, boost-system, boost-test (!uwp), boost-thread, boost-throw-exception, boost-timer, boost-tokenizer, boost-tti, boost-tuple, boost-typeof, boost-type-erasure, boost-type-index, boost-type-traits, boost-units, boost-unordered, boost-utility, boost-uuid, boost-variant, boost-variant2, boost-vmd, boost-wave (!uwp), boost-winapi, boost-xpressive, boost-yap
Feature: mpi
Description: Build with MPI support

View File

@ -13,36 +13,42 @@ if ($null -eq $portsDir)
# Optionally clear this array when moving to a new boost version
$port_versions = @{
"asio" = 1;
"context" = 1;
"coroutine" = 1;
"fiber" = 1;
"asio" = 2;
"beast" = 2;
"context" = 2;
"coroutine" = 2;
"coroutine2" = 2;
"fiber" = 2;
"filesystem" = 1;
"graph-parallel" = 1;
"iostreams" = 1;
"locale" = 1;
"log" = 1;
"locale" = 2;
"log" = 2;
"mpi" = 1;
"parameter-python" = 1;
"parameter-python" = 2;
"poly-collection" = 1;
"python" = 1;
"process" = 2;
"python" = 2;
"safe-numerics" = 1;
"stacktrace" = 1;
"test" = 1;
"wave" = 1;
"boost" = 1
"boost" = 4
}
$per_port_data = @{
"fiber" = @{ "supports" = "windows&!uwp&!arm" };
"asio" = @{ "supports" = "!emscripten" };
"beast" = @{ "supports" = "!emscripten" };
"fiber" = @{ "supports" = "!osx&!uwp&!arm&!emscripten" };
"filesystem" = @{ "supports" = "!uwp" };
"iostreams" = @{ "supports" = "!uwp" };
"context" = @{ "supports" = "!uwp" };
"context" = @{ "supports" = "!uwp&!emscripten" };
"stacktrace" = @{ "supports" = "!uwp" };
"coroutine" = @{ "supports" = "!arm&!uwp" };
"coroutine" = @{ "supports" = "!arm&!uwp&!emscripten" };
"coroutine2" = @{ "supports" = "!emscripten" };
"test" = @{ "supports" = "!uwp" };
"wave" = @{ "supports" = "!uwp" };
"log" = @{ "supports" = "!uwp" };
"log" = @{ "supports" = "!uwp&!emscripten" };
"locale" = @{
"supports" = "!uwp";
"features" = @(
@ -50,8 +56,10 @@ $per_port_data = @{
"Build-Depends: icu"
"Description: ICU backend for Boost.Locale"
)};
"parameter-python" = @{ "supports" = "!emscripten" };
"process" = @{ "supports" = "!emscripten" };
"python" = @{
"supports" = "!uwp&!(arm&windows)";
"supports" = "!uwp&!(arm&windows)&!emscripten";
"features" = @(
"Feature: python2"
"Build-Depends: python2 (windows)"