pyodide/packages/boost-cpp/meta.yaml

36 lines
1.4 KiB
YAML

package:
name: boost-cpp
version: 1.84.0
tag:
- library
source:
url: https://github.com/boostorg/boost/releases/download/boost-1.84.0/boost-1.84.0.tar.gz
sha256: 4d27e9efed0f6f152dc28db6430b9d3dfb40c0345da7342eaa5a987dde57bd95
build:
type: static_library
script: |
export INSTALL_DIR=${WASM_LIBRARY_DIR}
./bootstrap.sh --prefix=${INSTALL_DIR}
# https://github.com/emscripten-core/emscripten/issues/17052
# Without this, boost outputs WASM modules not static library archives as an output.
# I don't understand why... the jam file used by boost is quite hard to understand.
printf "using clang : emscripten : emcc : <archiver>emar <ranlib>emranlib <linker>emlink ;" | tee -a ./project-config.jam
./b2 variant=release toolset=clang-emscripten link=static threading=single \
--with-date_time --with-filesystem \
--with-system --with-regex --with-chrono --with-random --with-program_options --disable-icu \
cxxflags="$SIDE_MODULE_CXXFLAGS -fexceptions -DBOOST_SP_DISABLE_THREADS=1" \
cflags="$SIDE_MODULE_CFLAGS -fexceptions -DBOOST_SP_DISABLE_THREADS=1" \
linkflags="-fpic $SIDE_MODULE_LDFLAGS" \
--layout=system -j"${PYODIDE_JOBS:-3}" --prefix=${INSTALL_DIR} \
install
about:
home: https://www.boost.org/
summary: Free peer-reviewed portable C++ source libraries.
extra:
recipe-maintainers:
- johnwason