diff --git a/.github/workflows/build_recipes.yaml b/.github/workflows/build_recipes.yaml index 753496670..498ef30f8 100644 --- a/.github/workflows/build_recipes.yaml +++ b/.github/workflows/build_recipes.yaml @@ -59,14 +59,6 @@ jobs: cache-environment: true post-cleanup: 'all' - ################################################################ - # EMSDK - ################################################################ - - name: Setup emsdk - shell: bash -el {0} - run: | - ./emsdk/setup_emsdk.sh ${{ matrix.emsdk_ver }} $(pwd)/emsdk_install - ################################################################ # POST ENV INSTALL CONFIG ################################################################ @@ -106,6 +98,6 @@ jobs: mkdir -p ${GITHUB_WORKSPACE}/output/${platform} for package in $(ls ${GITHUB_WORKSPACE}/output/${platform}/*.tar.bz2); do echo "Uploading ${package} for ${platform} (build with rattler)" - QUETZ_API_KEY=${{ secrets.QUETZ_API_KEY}} quetz-client -u https://beta.mamba.pm post_file_to_channel emscripten-forge ${package} + QUETZ_API_KEY=${{ secrets.QUETZ_API_KEY}} quetz-client -u https://beta.mamba.pm post_file_to_channel emscripten-forge ${package} || true done done \ No newline at end of file diff --git a/docs/blog/.authors.yml b/docs/blog/.authors.yml index eebd7268c..e7aa3a399 100644 --- a/docs/blog/.authors.yml +++ b/docs/blog/.authors.yml @@ -5,3 +5,10 @@ authors: avatar: https://avatars.githubusercontent.com/u/904752?v=4 # Author avatar slug: DerThorsten # Author profile slug url: https://github.com/DerThorsten # Author website URL + + wolfv: + name: Wolf Vollprecht + description: main author of emscripten-forge + avatar: https://avatars.githubusercontent.com/u/885054?v=4 + slug: wolfv # Author profile slug + url: https://prefix.dev # Author website URL \ No newline at end of file diff --git a/docs/blog/posts/repack_emscripten.md b/docs/blog/posts/repack_emscripten.md new file mode 100644 index 000000000..3332facf3 --- /dev/null +++ b/docs/blog/posts/repack_emscripten.md @@ -0,0 +1,15 @@ +--- +date: 2024-05-24 +category: + - rust + +authors: + - derthorsten + - wolfv +--- + +# Emscripten is now a proper package + +So far, the emscripten package was a bit of a hack. It relied on a text file `~.emsdkdir` in the home directory which contained the directory of the emscripten installation. This was not very nice, because it was hard to build packages for several emscripten versions. + +But now, emscripten is a repacked package that installs emscripten into the conda environment. This allows in principle to compile packages for multiple emscripten versions. diff --git a/docs/development/local_builds.md b/docs/development/local_builds.md index 9c46738e4..5fba6257a 100644 --- a/docs/development/local_builds.md +++ b/docs/development/local_builds.md @@ -45,13 +45,13 @@ I.e. if you open a new terminal, you have to activate the environment again with This is only needed for MacOS. On Linux, the compiler packages are already built and available in the `emscripten-forge` channel. ```bash -rattler-build build --recipe recipes/recipes/emscripten_emscripten-wasm32/rattler_recipe.yaml -c https://repo.mamba.pm/emscripten-forge -c conda-forge -c microsoft -m conda_build_config.yaml -rattler-build build --recipe recipes/recipes/cross-python_emscripten-wasm32/rattler_recipe.yaml -c https://repo.mamba.pm/emscripten-forge -c conda-forge -c microsoft -m conda_build_config.yaml -rattler-build build --recipe recipes/recipes/pytester/rattler_recipe.yaml -c https://repo.mamba.pm/emscripten-forge -c conda-forge -c microsoft -m conda_build_config.yaml +rattler-build build --recipe recipes/recipes/emscripten_emscripten-wasm32/recipe.yaml -c https://repo.mamba.pm/emscripten-forge -c conda-forge -c microsoft -m conda_build_config.yaml +rattler-build build --recipe recipes/recipes/cross-python_emscripten-wasm32/recipe.yaml -c https://repo.mamba.pm/emscripten-forge -c conda-forge -c microsoft -m conda_build_config.yaml +rattler-build build --recipe recipes/recipes/pytester/recipe.yaml -c https://repo.mamba.pm/emscripten-forge -c conda-forge -c microsoft -m conda_build_config.yaml ``` ### Build packages with `rattler-build`: ```bash -rattler-build build --recipe recipes/recipes_emscripten/regex/rattler_recipe.yaml --target-platform=emscripten-wasm32 -c https://repo.mamba.pm/emscripten-forge -c conda-forge -c microsoft -m conda_build_config.yaml +rattler-build build --recipe recipes/recipes_emscripten/regex/recipe.yaml --target-platform=emscripten-wasm32 -c https://repo.mamba.pm/emscripten-forge -c conda-forge -c microsoft -m conda_build_config.yaml ``` \ No newline at end of file diff --git a/pixi.toml b/pixi.toml index 7b8b049d2..2ceccdc42 100644 --- a/pixi.toml +++ b/pixi.toml @@ -4,17 +4,7 @@ version = "0.1.0" description = "The emscripten-forge for emscripten-wasm32- builds." authors = ["DerThorsten "] channels = ["conda-forge"] -platforms = ["osx-arm64", "linux-64"] - -############################################ -# setup-emsdk feature / tasks -############################################ -[feature.feature_setup_emsdk] -[feature.feature_setup_emsdk.dependencies] -cxx-compiler = "1.5.2.*" -[feature.feature_setup_emsdk.tasks.setup-emsdk] -cmd = ["./emsdk/setup_emsdk.sh", "3.1.45", "$(pwd)/emscripten_forge_emsdk_install"] -outputs = ["emscripten_forge_emsdk_install/emsdk_env.sh"] +platforms = ["osx-arm64", "osx-64", "linux-64"] ############################################ @@ -40,7 +30,6 @@ cmd = [ "--recipe", "recipes/recipes/emscripten_emscripten-wasm32" ] -depends_on = ["setup-emsdk"] [feature.feature_rattler_build.tasks.build-cross-python-pkg] cmd = [ @@ -56,7 +45,6 @@ cmd = [ "--recipe", "recipes/recipes/cross-python_emscripten-wasm32" ] -depends_on = ["setup-emsdk"] [feature.feature_rattler_build.tasks.build-pytester-pkg] cmd = [ @@ -72,7 +60,6 @@ cmd = [ "--recipe", "recipes/recipes/pytester" ] -depends_on = ["setup-emsdk"] [feature.feature_rattler_build.tasks.setup] @@ -118,6 +105,5 @@ cmd = ["mkdocs", "build"] ############################################ [environments] -setup-emsdk-env = ["feature_setup_emsdk"] rattler-build-env = ["feature_rattler_build"] -documentation-env = ["feature_documentation"] \ No newline at end of file +documentation-env = ["feature_documentation"] diff --git a/recipes/recipes/emscripten_emscripten-wasm32/LICENSE b/recipes/recipes/emscripten_emscripten-wasm32/LICENSE.txt similarity index 100% rename from recipes/recipes/emscripten_emscripten-wasm32/LICENSE rename to recipes/recipes/emscripten_emscripten-wasm32/LICENSE.txt diff --git a/recipes/recipes/emscripten_emscripten-wasm32/activate.sh b/recipes/recipes/emscripten_emscripten-wasm32/activate.sh index 8857c1794..ad0a7ed9f 100644 --- a/recipes/recipes/emscripten_emscripten-wasm32/activate.sh +++ b/recipes/recipes/emscripten_emscripten-wasm32/activate.sh @@ -1,4 +1,3 @@ - if [ -z ${CONDA_FORGE_EMSCRIPTEN_ACTIVATED+x} ]; then export CONDA_FORGE_EMSCRIPTEN_ACTIVATED=1 @@ -6,30 +5,10 @@ if [ -z ${CONDA_FORGE_EMSCRIPTEN_ACTIVATED+x} ]; then export EMSDK_PYTHON=${BUILD_PREFIX}/bin/python3 export PYTHON=${BUILD_PREFIX}/bin/python3 - - - - CONDA_EMSDK_DIR_CONFIG_FILE=$HOME/.emsdkdir - if test -f "$CONDA_EMSDK_DIR_CONFIG_FILE"; then - echo "Found config file $CONDA_EMSDK_DIR_CONFIG_FILE" - else - # return an error - echo "Config file $CONDA_EMSDK_DIR_CONFIG_FILE not found" - return 1 - fi - - + CONDA_EMSDK_DIR=$CONDA_PREFIX/opt/emsdk + export EMSCRIPTEN_VERSION=$PKG_VERSION - - export CONDA_EMSDK_DIR=$(<$CONDA_EMSDK_DIR_CONFIG_FILE) export EMSCRIPTEN_FORGE_EMSDK_DIR=$CONDA_EMSDK_DIR - echo "Using EMSCRIPTEN_FORGE_EMSDK_DIR $CONDA_EMSDK_DIR_CONFIG_FILE: " $EMSCRIPTEN_FORGE_EMSDK_DIR - - $CONDA_EMSDK_DIR/emsdk activate --embedded --build=Release $EMSCRIPTEN_VERSION - - source $CONDA_EMSDK_DIR/emsdk_env.sh - - export PATH="$CONDA_EMSDK_DIR/upstream/emscripten/":$PATH # clear all prexisting cmake args / CC / CXX / AR / RANLIB export CC="emcc" @@ -39,8 +18,6 @@ if [ -z ${CONDA_FORGE_EMSCRIPTEN_ACTIVATED+x} ]; then export CMAKE_ARGS="" - - # set the emscripten toolchain export CMAKE_ARGS="$CMAKE_ARGS -DCMAKE_TOOLCHAIN_FILE=$CONDA_EMSDK_DIR/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake" @@ -82,5 +59,4 @@ if [ -z ${CONDA_FORGE_EMSCRIPTEN_ACTIVATED+x} ]; then # wasm bigint export LDFLAGS="$LDFLAGS -sWASM_BIGINT" - fi diff --git a/recipes/recipes/emscripten_emscripten-wasm32/build_compiler_package.sh b/recipes/recipes/emscripten_emscripten-wasm32/build_compiler_package.sh index 26fdde830..5365935bc 100644 --- a/recipes/recipes/emscripten_emscripten-wasm32/build_compiler_package.sh +++ b/recipes/recipes/emscripten_emscripten-wasm32/build_compiler_package.sh @@ -9,4 +9,31 @@ do done mkdir -p ${PREFIX}/bin -cp "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" ${PREFIX}/bin/activate_emscripten.sh \ No newline at end of file +cp "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" ${PREFIX}/bin/activate_emscripten.sh + +export EMSDK_PYTHON=${BUILD_PREFIX}/bin/python + +./emsdk install $PKG_VERSION + +# export EMSDK=/Users/wolfv/Programs/emscripten-forge/emscripten_forge_emsdk_install +export EMSDK=. + +mkdir -p $PREFIX/opt/emsdk/ +cp -r $EMSDK/upstream $PREFIX/opt/emsdk/upstream +rm -rf $PREFIX/opt/emsdk/upstream/emscripten/test/ + +mkdir -p $PREFIX/bin + +for file in $PREFIX/opt/emsdk/upstream/bin/*; do + echo "Linking $file" + ln -sf $file $PREFIX/bin/ +done + +for file in $PREFIX/opt/emsdk/upstream/emscripten/*; do + # Check if the file is executable + if [ -x "$file" ] && [ ! -d "$file" ]; then + # Create a symbolic link in the $PREFIX/bin directory + echo "Linking $file" + ln -sf $file $PREFIX/bin/ + fi +done diff --git a/recipes/recipes/emscripten_emscripten-wasm32/recipe.yaml b/recipes/recipes/emscripten_emscripten-wasm32/recipe.yaml index b666c2448..775f8be4e 100644 --- a/recipes/recipes/emscripten_emscripten-wasm32/recipe.yaml +++ b/recipes/recipes/emscripten_emscripten-wasm32/recipe.yaml @@ -3,23 +3,31 @@ context: version: 3.1.45 build: - number: 25 + number: 27 outputs: - package: name: ${{ name|lower }} version: ${{ version }} + + source: + git: https://github.com/emscripten-core/emsdk.git build: script: build_compiler_package.sh + + dynamic_linking: + binary_relocation: false requirements: build: - - gettext + - curl + - python run: - python + - nodejs 16.* run_exports: - - ${{ pin_subpackage('emscripten-abi', min_pin='x.x.x', max_pin='x.x.x') }} + - ${{ pin_subpackage('emscripten-abi', min_pin='x.x.x', max_pin='x.x.x') }} - package: name: emscripten-abi @@ -33,7 +41,7 @@ outputs: about: homepage: https://emscripten.org license: MIT - license_file: LICENSE + license_file: LICENSE.txt summary: emscripten description: Emscripten is a complete compiler toolchain to WebAssembly, using LLVM, with a special focus on speed, size, and the Web platform. documentation: https://emscripten.org/ @@ -41,3 +49,4 @@ about: extra: recipe-maintainers: - DerThorsten + - wolfv diff --git a/recipes/recipes/emscripten_emscripten-wasm32/recipe_legacy.yaml b/recipes/recipes/emscripten_emscripten-wasm32/recipe_legacy.yaml deleted file mode 100644 index abc302619..000000000 --- a/recipes/recipes/emscripten_emscripten-wasm32/recipe_legacy.yaml +++ /dev/null @@ -1,52 +0,0 @@ -context: - name: emscripten_emscripten-wasm32 - version: 3.1.45 - -package: - name: '{{ name|lower }}' - version: '{{ version }}' - - -build: - number: 25 - - -outputs: - # TODO make run_exports work with boa - - package: - name: '{{ name | lower }}' - version: '{{ version }}' - - build: - script: build_compiler_package.sh - run_exports: - strong: - - "{{ pin_compatible('emscripten-abi', min_pin='x.x.x', max_pin='x.x.x') }}" - - requirements: - build: - - gettext - run: - - python - - - - package: - name: emscripten-abi - version: '{{ version }}' - build: - noarch: generic - script: - - echo "emscripten abi is built." - - -about: - home: https://emscripten.org/ - license: MIT - license_file: LICENSE - summary: emscripten - description: Emscripten is a complete compiler toolchain to WebAssembly, using LLVM, with a special focus on speed, size, and the Web platform. - doc_url: https://emscripten.org/ - -extra: - recipe-maintainers: - - DerThorsten diff --git a/recipes/recipes_emscripten/freetype/recipe.yaml b/recipes/recipes_emscripten/freetype/recipe.yaml index 5dc9b4303..3f34ab95b 100644 --- a/recipes/recipes_emscripten/freetype/recipe.yaml +++ b/recipes/recipes_emscripten/freetype/recipe.yaml @@ -7,7 +7,7 @@ package: source: url: https://download.savannah.gnu.org/releases/freetype/freetype-${{ version }}.tar.gz - sha256: + sha256: 0b109c59914f25b4411a8de2a506fdd18fa8457eb86eca6c7b15c19110a92fa5 build: number: 0 diff --git a/recipes/recipes_emscripten/ipython/recipe.yaml b/recipes/recipes_emscripten/ipython/recipe.yaml index b16ffd7ec..7d320cf3d 100644 --- a/recipes/recipes_emscripten/ipython/recipe.yaml +++ b/recipes/recipes_emscripten/ipython/recipe.yaml @@ -1,5 +1,5 @@ context: - version: 8.24.0 + version: 8.25.0 package: name: ipython @@ -7,7 +7,7 @@ package: source: - url: https://pypi.io/packages/source/i/ipython/ipython-${{ version }}.tar.gz - sha256: 010db3f8a728a578bb641fdd06c063b9fb8e96a9464c63aec6310fbcb5e80501 + sha256: c6ed726a140b6e725b911528f80439c534fac915246af3efc39440a6b0f9d716 patches: - patches/0001-Patch-asyncio-tornado.patch diff --git a/recipes/recipes_emscripten/lfortran/build.sh b/recipes/recipes_emscripten/lfortran/build.sh index 4b28e7e48..fe0b7b218 100644 --- a/recipes/recipes_emscripten/lfortran/build.sh +++ b/recipes/recipes_emscripten/lfortran/build.sh @@ -20,4 +20,7 @@ emcmake cmake \ emmake make -j8 # Install step -emmake make install \ No newline at end of file +emmake make install + +cp src/lfortran/tests/test_lfortran.js $PREFIX/bin/test_lfortran.js +cp src/lfortran/tests/test_lfortran.wasm $PREFIX/bin/test_lfortran.wasm \ No newline at end of file diff --git a/recipes/recipes_emscripten/lfortran/recipe.yaml b/recipes/recipes_emscripten/lfortran/recipe.yaml index 2fe7a169d..93a673a62 100644 --- a/recipes/recipes_emscripten/lfortran/recipe.yaml +++ b/recipes/recipes_emscripten/lfortran/recipe.yaml @@ -1,6 +1,6 @@ context: name: lfortran - version: 0.35.0 + version: 0.36.0 package: name: ${{ name }} @@ -9,10 +9,10 @@ package: source: url: https://github.com/lfortran/lfortran/releases/download/v${{ version }}/${{ name }}-${{ version }}.tar.gz - sha256: 5ecc1ae03067b985943c45f6ec05e9f6e72efd6ad004b052e7a98ba552ff79b0 + sha256: 6b3b7cb1380e96a98a9fd3166a3e7e43c3339f736f76029c246436784ffc868f build: - number: 2 + number: 0 requirements: build: @@ -33,6 +33,14 @@ requirements: host: - zlib +tests: +- script: + - test -f ${PREFIX}/lib/liblfortran_runtime.a + - node ${PREFIX}/bin/test_lfortran.js + requirements: + build: + - nodejs + about: license: BSD-3-Clause license_family: BSD diff --git a/recipes/recipes_emscripten/numpy/recipe.yaml b/recipes/recipes_emscripten/numpy/recipe.yaml index 76a1d6d95..d3e8e751d 100644 --- a/recipes/recipes_emscripten/numpy/recipe.yaml +++ b/recipes/recipes_emscripten/numpy/recipe.yaml @@ -1,5 +1,5 @@ context: - version: 1.26.0 + version: 1.26.4 cross_target_plattform: emscripten-wasm32 target_plattform: emscripten-wasm32 @@ -9,7 +9,7 @@ package: source: url: https://github.com/numpy/numpy/releases/download/v${{ version }}/numpy-${{ version }}.tar.gz - sha256: f93fc78fe8bf15afe2b8d6b6499f1c73953169fad1e9a8dd086cdff3190e7fdf + sha256: 2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010 build: number: 0 diff --git a/recipes/recipes_emscripten/pyjs/recipe.yaml b/recipes/recipes_emscripten/pyjs/recipe.yaml index 3f5695019..50b7c3248 100644 --- a/recipes/recipes_emscripten/pyjs/recipe.yaml +++ b/recipes/recipes_emscripten/pyjs/recipe.yaml @@ -1,5 +1,5 @@ context: - version: 2.0.0 + version: 2.0.1 name: pyjs package: name: ${{name}} @@ -8,7 +8,7 @@ package: source: - url: https://github.com/emscripten-forge/${{name}}/archive/refs/tags/${{version}}.tar.gz - sha256: 668f36da03ab81d35850205c47e96e1c08afc20559d72dc3c734bba2c678b826 + sha256: 54146c30594dc1d4fccf93f4d9313bc389a488196498f99fa2eb74fa5c872dfa build: number: 1 diff --git a/recipes/recipes_emscripten/pytest/recipe.yaml b/recipes/recipes_emscripten/pytest/recipe.yaml index 70909291b..be5fe78ae 100644 --- a/recipes/recipes_emscripten/pytest/recipe.yaml +++ b/recipes/recipes_emscripten/pytest/recipe.yaml @@ -1,5 +1,5 @@ context: - version: 8.2.1 + version: 8.2.2 package: name: pytest @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/p/pytest/pytest-${{ version }}.tar.gz - sha256: 5046e5b46d8e4cac199c373041f26be56fdb81eb4e67dc11d4e10811fc3408fd + sha256: de4bb8104e201939ccdc688b27a89a7be2079b22e2bd2b07f806b6ba71117977 build: number: 0 diff --git a/recipes/recipes_emscripten/pythran/recipe.yaml b/recipes/recipes_emscripten/pythran/recipe.yaml index 877d5b36a..eac7a6fa8 100644 --- a/recipes/recipes_emscripten/pythran/recipe.yaml +++ b/recipes/recipes_emscripten/pythran/recipe.yaml @@ -1,5 +1,5 @@ context: - version: 0.16.0 + version: 0.16.1 package: name: pythran @@ -7,7 +7,7 @@ package: source: url: https://github.com/serge-sans-paille/pythran/archive/refs/tags/${{ version}}.tar.gz - sha256: 56c42c745c4f253fb5053b3706345c6e111288f2f2df75e9dc265fff24e230de + sha256: a2510f370a7d62761844daa112a455785e5a6a216cf9ae704c3926fe68eb65ce patches: # this is necessary to fix a problem with mutable global # [wasm-validator error in module] unexpected true: Imported global cannot be mutable diff --git a/recipes/recipes_emscripten/xcanvas/recipe.yaml b/recipes/recipes_emscripten/xcanvas/recipe.yaml index 8a653d560..6a7c0a0a0 100644 --- a/recipes/recipes_emscripten/xcanvas/recipe.yaml +++ b/recipes/recipes_emscripten/xcanvas/recipe.yaml @@ -1,5 +1,5 @@ context: - version: 0.4.2 + version: 0.5.1 package: name: xcanvas @@ -7,7 +7,7 @@ package: source: url: https://github.com/jupyter-xeus/xcanvas/archive/refs/tags/${{ version }}.tar.gz - sha256: 697c83f1d34577c2c121fd83a72eabba12a73c14bef72b49a30289a8db0f0a55 + sha256: 08ca0adc86cfd4e326c0541eea293392f256d715e6ad8b143dbaf64773338f8a build: number: 0 @@ -18,14 +18,19 @@ requirements: - cmake - ninja host: - - xtl >=0.7,<0.8 - - xproperty >=0.11.0,<0.12 - - xwidgets >=0.28 + - xproperty >=0.12.0,<0.13 + - nlohmann_json >=3.11 + - xwidgets >=0.29.0,<0.30 + +tests: +- script: + - test -f $PREFIX/include/xcanvas/xcanvas.hpp + about: license: BSD-3-Clause license_family: BSD-3 license_file: LICENSE - summary: xtl + summary: C++ back-end for ipycanvas homepage: https://github.com/jupyter-xeus/xcanvas extra: recipe-maintainers: diff --git a/recipes/recipes_emscripten/xeus-cpp/recipe.yaml b/recipes/recipes_emscripten/xeus-cpp/recipe.yaml index c8e887fb7..9c8eaca21 100644 --- a/recipes/recipes_emscripten/xeus-cpp/recipe.yaml +++ b/recipes/recipes_emscripten/xeus-cpp/recipe.yaml @@ -1,5 +1,5 @@ context: - version: 0.4.0 + version: 0.5.0 package: name: xeus-cpp @@ -7,10 +7,10 @@ package: source: url: https://github.com/compiler-research/xeus-cpp/archive/refs/tags/${{ version }}.tar.gz - sha256: 28b07534ff322ebe17fab1997cdf60d0fb811ee1d7fd518742a5d0d157e70e25 + sha256: 352400083227e3ef8f747ddaffe37ca19af6cd760254cb033114ea6027929aec build: - number: 1 + number: 0 requirements: build: @@ -19,21 +19,19 @@ requirements: - make # [unix] host: - nlohmann_json - - xeus-lite <2.0 - - xeus >=3.0.5,<4.0 - - xtl >=0.7,<0.8 + - xeus-lite >=3.0.0,<4.0 + - xeus >=5.0.0,<6.0 - cpp-argparse - pugixml - CppInterOp - tests: - script: - test -f $PREFIX/bin/xcpp.wasm - test -f $PREFIX/bin/xcpp.js - - test -f $PREFIX/share/jupyter/kernels/xcpp/kernel.json - - test -f $PREFIX/share/jupyter/kernels/xcpp/logo-32x32.png - - test -f $PREFIX/share/jupyter/kernels/xcpp/logo-64x64.png + - test -f $PREFIX/share/jupyter/kernels/xcpp17/kernel.json + - test -f $PREFIX/share/jupyter/kernels/xcpp17/logo-32x32.png + - test -f $PREFIX/share/jupyter/kernels/xcpp17/logo-64x64.png about: license: BSD-3-Clause diff --git a/recipes/recipes_emscripten/xeus-javascript/recipe.yaml b/recipes/recipes_emscripten/xeus-javascript/recipe.yaml index 0a4455552..ddfa22e25 100644 --- a/recipes/recipes_emscripten/xeus-javascript/recipe.yaml +++ b/recipes/recipes_emscripten/xeus-javascript/recipe.yaml @@ -1,5 +1,5 @@ context: - version: 0.3.4 + version: 0.4.0 package: name: xeus-javascript @@ -8,7 +8,7 @@ package: source: url: https://github.com/jupyter-xeus/xeus-javascript/archive/refs/tags/${{ version }}.tar.gz - sha256: 36d126af36dce3d3912776cb979e50cd66a819f370a930c075e0c6e743caae3e + sha256: d65edb4ce21aa066b08e091efed77c33b7911929075251afe195adef296afb79 build: number: 0 @@ -20,9 +20,9 @@ requirements: - ninja host: - nlohmann_json - - xeus-lite >=2.0.0 - - xeus >=4.0.2,<5.0 - - xtl >=0.7 + - xeus-lite >=3.0.0,<4.0 + - xeus >=5.0.0,<6.0 + tests: - script: diff --git a/recipes/recipes_emscripten/xeus-lite/recipe.yaml b/recipes/recipes_emscripten/xeus-lite/recipe.yaml index 69e72fc52..1efe83685 100644 --- a/recipes/recipes_emscripten/xeus-lite/recipe.yaml +++ b/recipes/recipes_emscripten/xeus-lite/recipe.yaml @@ -1,5 +1,5 @@ context: - version: 2.0.0 + version: 3.0.0 package: name: xeus-lite @@ -7,10 +7,10 @@ package: source: url: https://github.com/jupyter-xeus/xeus-lite/archive/refs/tags/${{ version }}.tar.gz - sha256: 852acd70d80b3b92f934f0a089bfd73766311c34527b90c6ec04583b8ad1ff29 + sha256: e4ee23a6db767066b4be7dcea071585b1b43fae2fd33f626f7f25345b5ec3dca build: - number: 0 + number: 1 requirements: build: @@ -19,8 +19,7 @@ requirements: - ninja host: - nlohmann_json - - xtl - - xeus >=4.0.1 + - xeus >=5.0.0 about: license: BSD-3-Clause diff --git a/recipes/recipes_emscripten/xeus/recipe.yaml b/recipes/recipes_emscripten/xeus/recipe.yaml index 3f6cd929c..40498f0fe 100644 --- a/recipes/recipes_emscripten/xeus/recipe.yaml +++ b/recipes/recipes_emscripten/xeus/recipe.yaml @@ -1,6 +1,6 @@ context: - version: 4.0.3 + version: 5.1.0 package: @@ -9,7 +9,7 @@ package: source: url: https://github.com/jupyter-xeus/xeus/archive/refs/tags/${{ version }}.tar.gz - sha256: 67ca4c714f4157cd2b5ff99750b234f7c7b72b6baec0b878d8724b5ce14ba663 + sha256: ff8f854ac5771bc43bd1f5fce45056c0881bfc1e489b59001655d338ecef8ec9 build: number: 0 @@ -21,7 +21,6 @@ requirements: - ninja host: - nlohmann_json - - xtl tests: - script: diff --git a/recipes/recipes_emscripten/xproperty/recipe.yaml b/recipes/recipes_emscripten/xproperty/recipe.yaml index c4ef26d09..86a0dbc2f 100644 --- a/recipes/recipes_emscripten/xproperty/recipe.yaml +++ b/recipes/recipes_emscripten/xproperty/recipe.yaml @@ -1,5 +1,5 @@ context: - version: 0.11.0 + version: 0.12.0 package: name: xproperty @@ -7,10 +7,10 @@ package: source: url: https://github.com/jupyter-xeus/xproperty/archive/refs/tags/${{ version }}.tar.gz - sha256: bf86a11c6758308aa0aa0f64d8dd24cd3e9d78378467b74002f552bfb75fc0eb + sha256: 27cbc8e441dcc515a1ebbf11bad5ef240748d32f5e1adf84deed87a1dc57a440 build: - number: 2 + number: 0 requirements: build: @@ -18,15 +18,19 @@ requirements: - cmake - ninja host: - - xtl >=0.7,<0.8 + - nlohmann_json >=3.11.2 run: - - xtl >=0.7,<0.8 + - nlohmann_json >=3.11.2 + +tests: +- script: + - test -f $PREFIX/include/xproperty/xproperty.hpp about: license: BSD-3-Clause license_family: BSD-3 license_file: LICENSE - summary: xtl + summary: Traitlets-like C++ properties and implementation of the observer pattern homepage: https://github.com/jupyter-xeus/xproperty extra: recipe-maintainers: diff --git a/recipes/recipes_emscripten/xwidgets/recipe.yaml b/recipes/recipes_emscripten/xwidgets/recipe.yaml index 9a78f328a..c7c4edac6 100644 --- a/recipes/recipes_emscripten/xwidgets/recipe.yaml +++ b/recipes/recipes_emscripten/xwidgets/recipe.yaml @@ -1,5 +1,5 @@ context: - version: 0.28.1 + version: 0.29.0 package: name: xwidgets @@ -7,7 +7,7 @@ package: source: url: https://github.com/jupyter-xeus/xwidgets/archive/refs/tags/${{ version }}.tar.gz - sha256: ef399a813543e83180b3c4eeaac6d7c6baef94f9911bb74a0ebf2cfc98568ca0 + sha256: 07c789b7936b19a123f37ac1edfd0598a89f23e02d4eeffc9976817be68bee42 build: number: 0 @@ -18,21 +18,25 @@ requirements: - cmake - ninja host: - - xtl >=0.7,<0.8 - - nlohmann_json - - xeus >=3.0,<4.0 - - xproperty >=0.11.0,<0.12 + - nlohmann_json >=3.11 + - xeus >=5,<6 + - xproperty >=0.12.0,<0.13 run: - - xtl >=0.7,<0.8 - - nlohmann_json - - xeus >=3.0,<4.0 - - xproperty >=0.11.0,<0.12 + - nlohmann_json >=3.11 + - xeus >=5,<6 + - xproperty >=0.12.0,<0.13 + +tests: +- script: + - test -d $PREFIX/include/xwidgets + - test -f $PREFIX/include/xwidgets/xtransport.hpp + - test -f $PREFIX/lib/libxwidgets.a about: license: BSD-3-Clause license_family: BSD-3 license_file: LICENSE - summary: xtl + summary: C++ backend for Jupyter interactive widgets homepage: https://github.com/jupyter-xeus/xwidgets extra: recipe-maintainers: diff --git a/recipes/recipes_emscripten/xxhash/build.sh b/recipes/recipes_emscripten/xxhash/build.sh new file mode 100644 index 000000000..1a72bae7e --- /dev/null +++ b/recipes/recipes_emscripten/xxhash/build.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +set -euxo pipefail + +# Build step +emmake make install -j8 + diff --git a/recipes/recipes_emscripten/xxhash/recipe.yaml b/recipes/recipes_emscripten/xxhash/recipe.yaml new file mode 100644 index 000000000..1e25ce4c2 --- /dev/null +++ b/recipes/recipes_emscripten/xxhash/recipe.yaml @@ -0,0 +1,42 @@ +context: + name: xxhash + version: 0.8.2 + +package: + name: ${{ name|lower }} + version: ${{ version }} + +source: + url: https://github.com/Cyan4973/${{ name }}/archive/v${{ version }}.tar.gz + sha256: baee0c6afd4f03165de7a4e67988d16f0f2b257b51d0e3cb91909302a26a79c4 + +build: + number: 0 + +requirements: + build: + - ${{ compiler('c') }} + - make + - cmake + +tests: +- script: + - test -f ${PREFIX}/lib/libxxhash.a + - test -f ${PREFIX}/include/xxhash.h + +about: + homepage: http://www.xxhash.com/ + license: BSD-2-Clause + license_file: LICENSE + summary: Extremely fast hash algorithm + description: | + xxHash is an Extremely fast Hash algorithm, running at RAM speed limits. It + successfully completes the SMHasher test suite which evaluates collision, + dispersion and randomness qualities of hash functions. Code is highly + portable, and hashes are identical on all platforms (little / big endian). + repository: https://github.com/Cyan4973/xxHash + documentation: https://github.com/Cyan4973/xxHash + +extra: + recipe-maintainers: + - KGB99 diff --git a/recipes/recipes_emscripten/xz/build.sh b/recipes/recipes_emscripten/xz/build.sh index 02fc2644f..214211113 100644 --- a/recipes/recipes_emscripten/xz/build.sh +++ b/recipes/recipes_emscripten/xz/build.sh @@ -6,4 +6,7 @@ emconfigure ../configure \ --enable-threads=no \ --prefix=$PREFIX -emmake make install \ No newline at end of file +emmake make install + +# Copy .wasm file also +cp src/xz/xz.wasm $PREFIX/bin/ diff --git a/recipes/recipes_emscripten/xz/recipe.yaml b/recipes/recipes_emscripten/xz/recipe.yaml index 0f361eb7d..597bf8243 100644 --- a/recipes/recipes_emscripten/xz/recipe.yaml +++ b/recipes/recipes_emscripten/xz/recipe.yaml @@ -1,5 +1,5 @@ context: - version: 5.2.10 + version: 5.2.11 package: name: xz @@ -7,7 +7,7 @@ package: source: url: http://downloads.sourceforge.net/project/lzmautils/xz-${{ version }}.tar.bz2 - sha256: 01b71df61521d9da698ce3c33148bff06a131628ff037398c09482f3a26e5408 + sha256: 7859c47a5e909299e77d0e87e2bafc52fb1d09e35abac48b6426c1be213c5b37 build: number: 0 @@ -19,6 +19,15 @@ requirements: - automake - libtool +tests: +- script: + - test -f $PREFIX/lib/liblzma.a + - test -f $PREFIX/include/lzma.h + - node $PREFIX/bin/xz --version + requirements: + build: + - nodejs + about: homepage: http://tukaani.org/xz/ license: LGPL-2.1 AND GPL-2.0