diff --git a/.github/workflows/dockercentos.yml b/.github/workflows/dockercentos.yml index 3f7acb091..e81b929ac 100644 --- a/.github/workflows/dockercentos.yml +++ b/.github/workflows/dockercentos.yml @@ -5,7 +5,7 @@ on: - codac1 - codac2 - codac2_codac4matlab - tags: '' # Restrict to blank tags + tags-ignore: ['**'] # Ignore all tag pushes pull_request: jobs: @@ -18,11 +18,11 @@ jobs: fail-fast: false matrix: cfg: - - { img: 'lebarsfa/manylinux_2_28_x86_64-for-codac', os: ubuntu-latest, shell: bash, arch: x86_64, bitness: 64, runtime: manylinux_2_28, desc: 'CentOS manylinux_2_28 x86_64' } + - { img: 'lebarsfa/manylinux_2_28_x86_64-for-codac' , os: ubuntu-latest , shell: bash, arch: x86_64 , bitness: 64, runtime: manylinux_2_28, desc: 'CentOS manylinux_2_28 x86_64' } - { img: 'lebarsfa/manylinux_2_28_aarch64-for-codac', os: ubuntu-24.04-arm, shell: bash, arch: aarch64, bitness: 64, runtime: manylinux_2_28, docker_flags: '--platform linux/arm64', desc: 'CentOS manylinux_2_28 aarch64' } name: ${{ matrix.cfg.desc }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: submodules: true fetch-depth: 0 diff --git a/.github/workflows/dockermatrix.yml b/.github/workflows/dockermatrix.yml index 933b5ab9b..6ff890384 100644 --- a/.github/workflows/dockermatrix.yml +++ b/.github/workflows/dockermatrix.yml @@ -7,7 +7,7 @@ on: # The following is implied by above selection... #branches-ignore: #- codac2_codac4matlab - tags: '' # Restrict to blank tags + tags-ignore: ['**'] # Ignore all tag pushes pull_request: branches-ignore: - codac2_codac4matlab @@ -22,22 +22,25 @@ jobs: fail-fast: false matrix: cfg: - - { img: 'lebarsfa/manylinux_2_28_x86_64-for-codac', os: ubuntu-latest, shell: bash, arch: x86_64, bitness: 64, runtime: manylinux_2_28, cmake_flags: '-fPIC', desc: 'CentOS manylinux_2_28 x86_64' } + - { img: 'lebarsfa/manylinux_2_28_x86_64-for-codac' , os: ubuntu-latest , shell: bash, arch: x86_64 , bitness: 64, runtime: manylinux_2_28, cmake_flags: '-fPIC', desc: 'CentOS manylinux_2_28 x86_64' } - { img: 'lebarsfa/manylinux_2_28_aarch64-for-codac', os: ubuntu-24.04-arm, shell: bash, arch: aarch64, bitness: 64, runtime: manylinux_2_28, cmake_flags: '-fPIC', docker_flags: '--platform linux/arm64', desc: 'CentOS manylinux_2_28 aarch64' } - - { img: 'lebarsfa/pi-64:noble-for-codac', os: ubuntu-24.04-arm, shell: bash, arch: arm64, bitness: 64, runtime: noble, cmake_flags: '-fPIC', deb: true, desc: 'Ubuntu 24.04 arm64' } - - { img: 'lebarsfa/pi-64:jammy-for-codac', os: ubuntu-24.04-arm, shell: bash, arch: arm64, bitness: 64, runtime: jammy, cmake_flags: '-fPIC', deb: true, desc: 'Ubuntu 22.04 arm64' } - - { img: 'lebarsfa/amd64:bookworm-for-codac', os: ubuntu-latest, shell: bash, arch: amd64, bitness: 64, runtime: bookworm, cmake_flags: '-fPIC', deb: true, desc: 'Debian Bookworm amd64' } - - { img: 'lebarsfa/pi-64:bookworm-for-codac', os: ubuntu-24.04-arm, shell: bash, arch: arm64, bitness: 64, runtime: bookworm, cmake_flags: '-fPIC', deb: true, desc: 'Debian Bookworm arm64' } - - { img: 'lebarsfa/pi:bookworm-for-codac', os: ubuntu-24.04-arm, shell: bash, arch: armhf, bitness: 32, runtime: bookworm, cmake_flags: '-fPIC', deb: true, desc: 'Raspbian Bookworm armv6hf' } - - { img: 'lebarsfa/amd64:bullseye-for-codac', os: ubuntu-latest, shell: bash, arch: amd64, bitness: 64, runtime: bullseye, cmake_flags: '-fPIC', deb: true, desc: 'Debian Bullseye amd64' } - - { img: 'lebarsfa/pi-64:bullseye-for-codac', os: ubuntu-24.04-arm, shell: bash, arch: arm64, bitness: 64, runtime: bullseye, cmake_flags: '-fPIC', deb: true, desc: 'Debian Bullseye arm64' } - - { img: 'lebarsfa/pi:bullseye-for-codac', os: ubuntu-24.04-arm, shell: bash, arch: armhf, bitness: 32, runtime: bullseye, cmake_flags: '-fPIC', deb: true, desc: 'Raspbian Bullseye armv6hf' } - #- { img: 'lebarsfa/amd64:buster-for-codac', os: ubuntu-latest, shell: bash, arch: amd64, bitness: 64, runtime: buster, cmake_flags: '-fPIC', deb: true, desc: 'Debian Buster amd64' } - #- { img: 'lebarsfa/pi-64:buster-for-codac', os: ubuntu-24.04-arm, shell: bash, arch: arm64, bitness: 64, runtime: buster, cmake_flags: '-fPIC', deb: true, desc: 'Debian Buster arm64' } - - { img: 'lebarsfa/pi:buster-for-codac', os: ubuntu-24.04-arm, shell: bash, arch: armhf, bitness: 32, runtime: buster, cmake_flags: '-fPIC', deb: true, desc: 'Raspbian Buster armv6hf' } + - { img: 'lebarsfa/amd64:focal-for-codac' , os: ubuntu-latest , shell: bash, arch: amd64 , bitness: 64, runtime: focal , cmake_flags: '-fPIC', deb: true, desc: 'Ubuntu 20.04 amd64' } + - { img: 'lebarsfa/pi-64:focal-for-codac' , os: ubuntu-24.04-arm, shell: bash, arch: arm64 , bitness: 64, runtime: focal , cmake_flags: '-fPIC', deb: true, desc: 'Ubuntu 20.04 arm64' } + - { img: 'lebarsfa/amd64:trixie-for-codac' , os: ubuntu-latest , shell: bash, arch: amd64 , bitness: 64, runtime: trixie , cmake_flags: '-fPIC', deb: true, desc: 'Debian Trixie amd64' } + - { img: 'lebarsfa/pi-64:trixie-for-codac' , os: ubuntu-24.04-arm, shell: bash, arch: arm64 , bitness: 64, runtime: trixie , cmake_flags: '-fPIC', deb: true, desc: 'Debian Trixie arm64' } + #- { img: 'lebarsfa/pi:trixie-for-codac' , os: ubuntu-24.04-arm, shell: bash, arch: armhf , bitness: 32, runtime: trixie , cmake_flags: '-fPIC', deb: true, desc: 'Raspbian Trixie armv6hf' } # No base image available... + - { img: 'lebarsfa/amd64:bookworm-for-codac' , os: ubuntu-latest , shell: bash, arch: amd64 , bitness: 64, runtime: bookworm , cmake_flags: '-fPIC', deb: true, desc: 'Debian Bookworm amd64' } + - { img: 'lebarsfa/pi-64:bookworm-for-codac' , os: ubuntu-24.04-arm, shell: bash, arch: arm64 , bitness: 64, runtime: bookworm , cmake_flags: '-fPIC', deb: true, desc: 'Debian Bookworm arm64' } + - { img: 'lebarsfa/pi:bookworm-for-codac' , os: ubuntu-24.04-arm, shell: bash, arch: armhf , bitness: 32, runtime: bookworm , cmake_flags: '-fPIC', deb: true, desc: 'Raspbian Bookworm armv6hf' } + - { img: 'lebarsfa/amd64:bullseye-for-codac' , os: ubuntu-latest , shell: bash, arch: amd64 , bitness: 64, runtime: bullseye , cmake_flags: '-fPIC', deb: true, desc: 'Debian Bullseye amd64' } + - { img: 'lebarsfa/pi-64:bullseye-for-codac' , os: ubuntu-24.04-arm, shell: bash, arch: arm64 , bitness: 64, runtime: bullseye , cmake_flags: '-fPIC', deb: true, desc: 'Debian Bullseye arm64' } + - { img: 'lebarsfa/pi:bullseye-for-codac' , os: ubuntu-24.04-arm, shell: bash, arch: armhf , bitness: 32, runtime: bullseye , cmake_flags: '-fPIC', deb: true, desc: 'Raspbian Bullseye armv6hf' } + - { img: 'lebarsfa/amd64:buster-for-codac' , os: ubuntu-latest , shell: bash, arch: amd64 , bitness: 64, runtime: buster , cmake_flags: '-fPIC', deb: true, desc: 'Debian Buster amd64' } + - { img: 'lebarsfa/pi-64:buster-for-codac' , os: ubuntu-24.04-arm, shell: bash, arch: arm64 , bitness: 64, runtime: buster , cmake_flags: '-fPIC', deb: true, desc: 'Debian Buster arm64' } + - { img: 'lebarsfa/pi:buster-for-codac' , os: ubuntu-24.04-arm, shell: bash, arch: armhf , bitness: 32, runtime: buster , cmake_flags: '-fPIC', deb: true, desc: 'Raspbian Buster armv6hf' } name: ${{ matrix.cfg.desc }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: submodules: true fetch-depth: 0 @@ -65,13 +68,13 @@ jobs: docker run ${{ matrix.cfg.docker_flags }} -i -v "${PWD}/..:${PWD}/.." ${{ matrix.cfg.img }} /bin/bash -c "uname -a ; cat /etc/os-release ; lsb_release -a ; cd ${PWD} && pwd && \ git config --global --add safe.directory ${PWD} && \ if [ \"${{ matrix.cfg.deb }}\" = \"true\" ]; then \ - #sudo sh -c 'echo \"deb [trusted=yes] https://packages.ensta-bretagne.fr/\$(if [ -z \"\$(. /etc/os-release && echo \$UBUNTU_CODENAME)\" ]; then echo debian/\$(. /etc/os-release && echo \$VERSION_CODENAME); else echo ubuntu/\$(. /etc/os-release && echo \$UBUNTU_CODENAME); fi) ./\" > /etc/apt/sources.list.d/ensta-bretagne.list' && \\ + #sudo sh -c 'echo \"deb [trusted=yes] https://webperso.ensta.fr/packages/\$(if [ -z \"\$(. /etc/os-release && echo \$UBUNTU_CODENAME)\" ]; then echo debian/\$(. /etc/os-release && echo \$VERSION_CODENAME); else echo ubuntu/\$(. /etc/os-release && echo \$UBUNTU_CODENAME); fi) ./\" > /etc/apt/sources.list.d/ensta-bretagne.list' && \\ sudo apt-get -q update ; sudo apt-get -y install libeigen3-dev dpkg-dev || true && \ - wget https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20241117/libibex-dev-2.8.9.20241117-0${{ matrix.cfg.runtime }}0_\$(dpkg --print-architecture).deb --no-check-certificate -nv && \ - sudo dpkg -i libibex-dev-2.8.9.20241117-0${{ matrix.cfg.runtime }}0_\$(dpkg --print-architecture).deb && \ - rm -Rf libibex-dev-2.8.9.20241117-0${{ matrix.cfg.runtime }}0_\$(dpkg --print-architecture).deb ; \ + wget https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20250626/libibex-dev-2.8.9.20250626-0${{ matrix.cfg.runtime }}0_\$(dpkg --print-architecture).deb --no-check-certificate -nv && \ + sudo dpkg -i libibex-dev-2.8.9.20250626-0${{ matrix.cfg.runtime }}0_\$(dpkg --print-architecture).deb && \ + rm -Rf libibex-dev-2.8.9.20250626-0${{ matrix.cfg.runtime }}0_\$(dpkg --print-architecture).deb ; \ else \ - wget https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20241117/ibex_${{ matrix.cfg.arch }}_${{ matrix.cfg.runtime }}.zip --no-check-certificate -nv && \ + wget https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20250626/ibex_${{ matrix.cfg.arch }}_${{ matrix.cfg.runtime }}.zip --no-check-certificate -nv && \ unzip -q ibex_${{ matrix.cfg.arch }}_${{ matrix.cfg.runtime }}.zip && \ rm -Rf ibex_${{ matrix.cfg.arch }}_${{ matrix.cfg.runtime }}.zip && \ sudo cp -Rf ibex/* /usr/ ; \ diff --git a/.github/workflows/macosmatrix.yml b/.github/workflows/macosmatrix.yml index 5f326ab7f..e18d6ef66 100644 --- a/.github/workflows/macosmatrix.yml +++ b/.github/workflows/macosmatrix.yml @@ -5,7 +5,7 @@ on: - codac1 - codac2 - codac2_codac4matlab - tags: '' # Restrict to blank tags + tags-ignore: ['**'] # Ignore all tag pushes pull_request: jobs: @@ -21,26 +21,25 @@ jobs: fail-fast: false matrix: cfg: - - { os: macos-14, shell: bash, arch: arm64, runtime: sonoma, cmake_flags: '-fPIC', trgt: '11.0', cpcfg: '-macosx_11_0_arm64', py_v_maj: 3, py_v_min: 13, desc: 'macOS Sonoma Python 3.13 arm64' } - - { os: macos-14, shell: bash, arch: arm64, runtime: sonoma, cmake_flags: '-fPIC', trgt: '11.0', cpcfg: '-macosx_11_0_arm64', py_v_maj: 3, py_v_min: 12, desc: 'macOS Sonoma Python 3.12 arm64' } - - { os: macos-14, shell: bash, arch: arm64, runtime: sonoma, cmake_flags: '-fPIC', trgt: '11.0', cpcfg: '-macosx_11_0_arm64', py_v_maj: 3, py_v_min: 11, desc: 'macOS Sonoma Python 3.11 arm64' } - - { os: macos-13, shell: bash, arch: arm64, runtime: ventura, cmake_flags: '-fPIC', trgt: '11.0', cpcfg: '-macosx_11_0_arm64', py_v_maj: 3, py_v_min: 10, cross: true, desc: 'macOS Ventura Python 3.10 arm64 (cross)' } - - { os: macos-13, shell: bash, arch: arm64, runtime: ventura, cmake_flags: '-fPIC', trgt: '11.0', cpcfg: '-macosx_11_0_arm64', py_v_maj: 3, py_v_min: 9, cross: true, desc: 'macOS Ventura Python 3.9 arm64 (cross)' } - - { os: macos-13, shell: bash, arch: arm64, runtime: ventura, cmake_flags: '-fPIC', trgt: '11.0', cpcfg: '-macosx_11_0_arm64', py_v_maj: 3, py_v_min: 8, cross: true, desc: 'macOS Ventura Python 3.8 arm64 (cross)' } - - { os: macos-13, shell: bash, arch: x86_64, runtime: ventura, cmake_flags: '-fPIC', trgt: '10.9', cpcfg: '-macosx_10_9_x86_64', py_v_maj: 3, py_v_min: 13, desc: 'macOS Ventura Python 3.13 x86_64' } - - { os: macos-13, shell: bash, arch: x86_64, runtime: ventura, cmake_flags: '-fPIC', trgt: '10.9', cpcfg: '-macosx_10_9_x86_64', py_v_maj: 3, py_v_min: 12, desc: 'macOS Ventura Python 3.12 x86_64' } - - { os: macos-13, shell: bash, arch: x86_64, runtime: ventura, cmake_flags: '-fPIC', trgt: '10.9', cpcfg: '-macosx_10_9_x86_64', py_v_maj: 3, py_v_min: 11, desc: 'macOS Ventura Python 3.11 x86_64' } - - { os: macos-13, shell: bash, arch: x86_64, runtime: ventura, cmake_flags: '-fPIC', trgt: '10.9', cpcfg: '-macosx_10_9_x86_64', py_v_maj: 3, py_v_min: 10, desc: 'macOS Ventura Python 3.10 x86_64' } - - { os: macos-13, shell: bash, arch: x86_64, runtime: ventura, cmake_flags: '-fPIC', trgt: '10.9', cpcfg: '-macosx_10_9_x86_64', py_v_maj: 3, py_v_min: 9, desc: 'macOS Ventura Python 3.9 x86_64' } - - { os: macos-13, shell: bash, arch: x86_64, runtime: ventura, cmake_flags: '-fPIC', trgt: '10.9', cpcfg: '-macosx_10_9_x86_64', py_v_maj: 3, py_v_min: 8, desc: 'macOS Ventura Python 3.8 x86_64' } + - { os: macos-14 , shell: bash, arch: arm64 , runtime: sonoma , cmake_flags: '-fPIC', trgt: '11.0' , cpcfg: '-macosx_11_0_arm64' , py_v_maj: 3, py_v_min: 14, desc: 'macOS Sonoma Python 3.14 arm64' } + - { os: macos-14 , shell: bash, arch: arm64 , runtime: sonoma , cmake_flags: '-fPIC', trgt: '11.0' , cpcfg: '-macosx_11_0_arm64' , py_v_maj: 3, py_v_min: 13, desc: 'macOS Sonoma Python 3.13 arm64' } + - { os: macos-14 , shell: bash, arch: arm64 , runtime: sonoma , cmake_flags: '-fPIC', trgt: '11.0' , cpcfg: '-macosx_11_0_arm64' , py_v_maj: 3, py_v_min: 12, desc: 'macOS Sonoma Python 3.12 arm64' } + - { os: macos-14 , shell: bash, arch: arm64 , runtime: sonoma , cmake_flags: '-fPIC', trgt: '11.0' , cpcfg: '-macosx_11_0_arm64' , py_v_maj: 3, py_v_min: 11, desc: 'macOS Sonoma Python 3.11 arm64' } + - { os: macos-15-intel , shell: bash, arch: x86_64 , runtime: sequoia , cmake_flags: '-fPIC', trgt: '10.9' , cpcfg: '-macosx_10_9_x86_64' , py_v_maj: 3, py_v_min: 14, desc: 'macOS Sequoia Python 3.14 x86_64' } + - { os: macos-15-intel , shell: bash, arch: x86_64 , runtime: sequoia , cmake_flags: '-fPIC', trgt: '10.9' , cpcfg: '-macosx_10_9_x86_64' , py_v_maj: 3, py_v_min: 13, desc: 'macOS Sequoia Python 3.13 x86_64' } + - { os: macos-15-intel , shell: bash, arch: x86_64 , runtime: sequoia , cmake_flags: '-fPIC', trgt: '10.9' , cpcfg: '-macosx_10_9_x86_64' , py_v_maj: 3, py_v_min: 12, desc: 'macOS Sequoia Python 3.12 x86_64' } + - { os: macos-15-intel , shell: bash, arch: x86_64 , runtime: sequoia , cmake_flags: '-fPIC', trgt: '10.9' , cpcfg: '-macosx_10_9_x86_64' , py_v_maj: 3, py_v_min: 11, desc: 'macOS Sequoia Python 3.11 x86_64' } + - { os: macos-15-intel , shell: bash, arch: x86_64 , runtime: sequoia , cmake_flags: '-fPIC', trgt: '10.9' , cpcfg: '-macosx_10_9_x86_64' , py_v_maj: 3, py_v_min: 10, desc: 'macOS Sequoia Python 3.10 x86_64' } + - { os: macos-15-intel , shell: bash, arch: x86_64 , runtime: sequoia , cmake_flags: '-fPIC', trgt: '10.9' , cpcfg: '-macosx_10_9_x86_64' , py_v_maj: 3, py_v_min: 9 , desc: 'macOS Sequoia Python 3.9 x86_64' } + - { os: macos-15-intel , shell: bash, arch: x86_64 , runtime: sequoia , cmake_flags: '-fPIC', trgt: '10.9' , cpcfg: '-macosx_10_9_x86_64' , py_v_maj: 3, py_v_min: 8 , desc: 'macOS Sequoia Python 3.8 x86_64' } name: ${{ matrix.cfg.desc }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: submodules: true fetch-depth: 0 clean: false - - uses: actions/setup-python@v5 + - uses: actions/setup-python@v6 with: python-version: ${{ matrix.cfg.py_v_maj }}.${{ matrix.cfg.py_v_min }} architecture: x64 @@ -51,13 +50,15 @@ jobs: if: matrix.cfg.py_v_maj!='' - run: echo "VERBOSE=1" >> $GITHUB_ENV shell: bash - - run: brew install eigen + - run: | + wget https://github.com/lebarsfa/xbrew/releases/latest/download/xbrew.sh --no-check-certificate -nv ; sudo mv -f xbrew.sh /usr/local/bin/xbrew ; sudo chmod +x /usr/local/bin/xbrew + xbrew reinstall https://raw.githubusercontent.com/Homebrew/homebrew-core/d491a3b4ff7f131f8d08468c21c2c11e867e22fe/Formula/e/eigen.rb ; brew pin eigen if: runner.os=='macOS' # doxygen v1.9.7 causes issues... - - run: brew install graphviz ; wget https://github.com/Homebrew/homebrew-core/raw/d2267b9f2ad247bc9c8273eb755b39566a474a70/Formula/doxygen.rb ; brew reinstall --formula ./doxygen.rb ; brew pin doxygen ; python -m pip install --upgrade pip ; pip install --upgrade wheel setuptools sphinx breathe sphinx_rtd_theme sphinx-tabs sphinx-issues sphinx-reredirects + - run: brew install graphviz ; xbrew reinstall https://github.com/Homebrew/homebrew-core/raw/d2267b9f2ad247bc9c8273eb755b39566a474a70/Formula/doxygen.rb ; brew pin doxygen ; python -m pip install --upgrade pip ; pip install --upgrade wheel setuptools sphinx breathe sphinx_rtd_theme sphinx-tabs sphinx-issues sphinx-reredirects if: runner.os=='macOS' - run: | - wget https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20241117/ibex_${{ matrix.cfg.arch }}_${{ matrix.cfg.runtime }}.zip --no-check-certificate -nv + wget https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20250626/ibex_${{ matrix.cfg.arch }}_${{ matrix.cfg.runtime }}.zip --no-check-certificate -nv unzip -q ibex_${{ matrix.cfg.arch }}_${{ matrix.cfg.runtime }}.zip rm -Rf ibex_${{ matrix.cfg.arch }}_${{ matrix.cfg.runtime }}.zip sudo cp -Rf ibex/* /usr/local/ diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 93e3b198d..c9a2e89e1 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -3,7 +3,7 @@ on: push: branches-ignore: - codac2_codac4matlab - tags: '' # Restrict to blank tags + tags-ignore: ['**'] # Ignore all tag pushes pull_request: branches-ignore: - codac2_codac4matlab @@ -15,15 +15,15 @@ jobs: fail-fast: false matrix: cfg: - - { os: ubuntu-24.04, gcc_v: 11, py_v_maj: 3, py_v_min: 10, desc: 'Ubuntu 24.04 GCC 11 Python 3.10 tests' } + - { os: ubuntu-24.04 , gcc_v: 11, py_v_maj: 3, py_v_min: 10, desc: 'Ubuntu 24.04 GCC 11 Python 3.10 tests' } name: ${{ matrix.cfg.desc }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: submodules: true fetch-depth: 0 clean: false - - uses: actions/setup-python@v5 + - uses: actions/setup-python@v6 with: python-version: ${{ matrix.cfg.py_v_maj }}.${{ matrix.cfg.py_v_min }} - run: | diff --git a/.github/workflows/unixmatrix.yml b/.github/workflows/unixmatrix.yml index 29637fd97..ff6d5a256 100644 --- a/.github/workflows/unixmatrix.yml +++ b/.github/workflows/unixmatrix.yml @@ -1,8 +1,8 @@ # This file generates .deb (Unix) and .nupkg (Windows) packages (and zip for having Codac and IBEX binaries for several Visual Studio versions) on: push: - branches: '**' - tags: '' # Restrict to blank tags + branches: ['**'] + tags-ignore: ['**'] # Ignore all tag pushes pull_request: jobs: @@ -28,31 +28,46 @@ jobs: fail-fast: false matrix: cfg: - - { os: windows-2022, shell: cmd, arch: x64, bitness: 64, runtime: vc17, cmake_params: '-G "Visual Studio 17" -T v143 -A x64', cmake_flags: ' /MP4 /wd4267 /wd4244 /wd4305 /wd4996', test_config: 'Release/', desc: 'Windows Visual Studio 2022 x64' } - - { os: windows-2022, shell: cmd, arch: x86, bitness: 32, runtime: vc17, cmake_params: '-G "Visual Studio 17" -T v143 -A Win32', cmake_flags: ' /MP4 /wd4267 /wd4244 /wd4305 /wd4996', test_config: 'Release/', choco_flags: '--x86', desc: 'Windows Visual Studio 2022 x86' } - - { os: windows-2022, shell: cmd, arch: x64, bitness: 64, runtime: vc16, cmake_params: '-G "Visual Studio 17" -T v142 -A x64', cmake_flags: ' /MP4 /wd4267 /wd4244 /wd4305 /wd4996', test_config: 'Release/', desc: 'Windows Visual Studio 2019 x64' } - - { os: windows-2022, shell: cmd, arch: x86, bitness: 32, runtime: vc16, cmake_params: '-G "Visual Studio 17" -T v142 -A Win32', cmake_flags: ' /MP4 /wd4267 /wd4244 /wd4305 /wd4996', test_config: 'Release/', choco_flags: '--x86', desc: 'Windows Visual Studio 2019 x86' } - - { os: windows-2022, shell: cmd, arch: x64, bitness: 64, runtime: mingw13, cmake_params: '-G "MinGW Makefiles"', cmake_flags: '-fPIC', desc: 'Windows MinGW 13.2.0 x64' } - - { os: windows-2022, shell: cmd, arch: x86, bitness: 32, runtime: mingw13, cmake_params: '-G "MinGW Makefiles"', cmake_flags: '-fPIC', choco_flags: '--x86', desc: 'Windows MinGW 13.2.0 x86' } - - { os: windows-2022, shell: cmd, arch: x64, bitness: 64, runtime: mingw12, cmake_params: '-G "MinGW Makefiles"', cmake_flags: '-fPIC', desc: 'Windows MinGW 12.2.0 x64' } - - { os: windows-2022, shell: cmd, arch: x86, bitness: 32, runtime: mingw12, cmake_params: '-G "MinGW Makefiles"', cmake_flags: '-fPIC', choco_flags: '--x86', desc: 'Windows MinGW 12.2.0 x86' } - - { os: windows-2022, shell: cmd, arch: x64, bitness: 64, runtime: mingw11, cmake_params: '-G "MinGW Makefiles"', cmake_flags: '-fPIC', desc: 'Windows MinGW 11.2.0 x64' } - - { os: windows-2022, shell: cmd, arch: x86, bitness: 32, runtime: mingw11, cmake_params: '-G "MinGW Makefiles"', cmake_flags: '-fPIC', choco_flags: '--x86', desc: 'Windows MinGW 11.2.0 x86' } - - { os: windows-2022, shell: cmd, arch: x64, bitness: 64, runtime: mingw8, cmake_params: '-G "MinGW Makefiles"', cmake_flags: '-fPIC', desc: 'Windows MinGW 8.1.0 x64' } - - { os: windows-2022, shell: cmd, arch: x86, bitness: 32, runtime: mingw8, cmake_params: '-G "MinGW Makefiles"', cmake_flags: '-fPIC', choco_flags: '--x86', desc: 'Windows MinGW 8.1.0 x86' } - - { os: windows-2022, shell: cmd, arch: x64, bitness: 64, runtime: mingw7, cmake_params: '-G "MinGW Makefiles"', cmake_flags: '-fPIC', desc: 'Windows MinGW 7.3.0 x64' } - - { os: windows-2022, shell: cmd, arch: x86, bitness: 32, runtime: mingw7, cmake_params: '-G "MinGW Makefiles"', cmake_flags: '-fPIC', choco_flags: '--x86', desc: 'Windows MinGW 7.3.0 x86' } - - { os: ubuntu-24.04, shell: bash, arch: amd64, bitness: 64, runtime: noble, cmake_flags: '-fPIC', deb: true, desc: 'Ubuntu 24.04 amd64' } - - { os: ubuntu-22.04, shell: bash, arch: amd64, bitness: 64, runtime: jammy, cmake_flags: '-fPIC', deb: true, desc: 'Ubuntu 22.04 amd64' } - - { os: macos-15, shell: bash, arch: arm64, bitness: 64, runtime: sequoia, cmake_params: '-D CMAKE_SYSTEM_NAME=Darwin -D CMAKE_OSX_ARCHITECTURES=arm64', cmake_flags: '-fPIC', desc: 'macOS Sequoia arm64' } - - { os: macos-15, shell: bash, arch: x86_64, bitness: 64, runtime: sequoia, cmake_params: '-D CMAKE_SYSTEM_NAME=Darwin -D CMAKE_OSX_ARCHITECTURES=x86_64', cmake_flags: '-fPIC', cross: true, desc: 'macOS Sequoia x86_64 (cross)' } - - { os: macos-14, shell: bash, arch: arm64, bitness: 64, runtime: sonoma, cmake_params: '-D CMAKE_SYSTEM_NAME=Darwin -D CMAKE_OSX_ARCHITECTURES=arm64', cmake_flags: '-fPIC', desc: 'macOS Sonoma arm64' } - - { os: macos-14, shell: bash, arch: x86_64, bitness: 64, runtime: sonoma, cmake_params: '-D CMAKE_SYSTEM_NAME=Darwin -D CMAKE_OSX_ARCHITECTURES=x86_64', cmake_flags: '-fPIC', cross: true, desc: 'macOS Sonoma x86_64 (cross)' } - - { os: macos-13, shell: bash, arch: arm64, bitness: 64, runtime: ventura, cmake_params: '-D CMAKE_SYSTEM_NAME=Darwin -D CMAKE_OSX_ARCHITECTURES=arm64', cmake_flags: '-fPIC', cross: true, desc: 'macOS Ventura arm64 (cross)' } - - { os: macos-13, shell: bash, arch: x86_64, bitness: 64, runtime: ventura, cmake_params: '-D CMAKE_SYSTEM_NAME=Darwin -D CMAKE_OSX_ARCHITECTURES=x86_64', cmake_flags: '-fPIC', desc: 'macOS Ventura x86_64' } +# - { os: windows-11-arm , shell: cmd , arch: arm64 , bitness: 64, runtime: vc18 , cmake_params: '-G "Visual Studio 18" -T v145 -A arm64', cmake_flags: ' /MP4 /wd4267 /wd4244 /wd4305 /wd4996', test_config: 'Release/', desc: 'Windows Visual Studio 2026 arm64' } + - { os: windows-2025 , shell: cmd , arch: x64 , bitness: 64, runtime: vc18 , cmake_params: '-G "Visual Studio 18" -T v145 -A x64' , cmake_flags: ' /MP4 /wd4267 /wd4244 /wd4305 /wd4996', test_config: 'Release/', desc: 'Windows Visual Studio 2026 x64' } + - { os: windows-2025 , shell: cmd , arch: x86 , bitness: 32, runtime: vc18 , cmake_params: '-G "Visual Studio 18" -T v145 -A Win32', cmake_flags: ' /MP4 /wd4267 /wd4244 /wd4305 /wd4996', test_config: 'Release/', choco_flags: '--x86', desc: 'Windows Visual Studio 2026 x86' } +# - { os: windows-11-arm , shell: cmd , arch: arm64 , bitness: 64, runtime: vc17 , cmake_params: '-G "Visual Studio 17" -T v143 -A arm64', cmake_flags: ' /MP4 /wd4267 /wd4244 /wd4305 /wd4996', test_config: 'Release/', desc: 'Windows Visual Studio 2022 arm64' } + - { os: windows-2022 , shell: cmd , arch: x64 , bitness: 64, runtime: vc17 , cmake_params: '-G "Visual Studio 17" -T v143 -A x64' , cmake_flags: ' /MP4 /wd4267 /wd4244 /wd4305 /wd4996', test_config: 'Release/', desc: 'Windows Visual Studio 2022 x64' } + - { os: windows-2022 , shell: cmd , arch: x86 , bitness: 32, runtime: vc17 , cmake_params: '-G "Visual Studio 17" -T v143 -A Win32', cmake_flags: ' /MP4 /wd4267 /wd4244 /wd4305 /wd4996', test_config: 'Release/', choco_flags: '--x86', desc: 'Windows Visual Studio 2022 x86' } + - { os: windows-2022 , shell: cmd , arch: x64 , bitness: 64, runtime: vc16 , cmake_params: '-G "Visual Studio 17" -T v142 -A x64' , cmake_flags: ' /MP4 /wd4267 /wd4244 /wd4305 /wd4996', test_config: 'Release/', desc: 'Windows Visual Studio 2019 x64' } + - { os: windows-2022 , shell: cmd , arch: x86 , bitness: 32, runtime: vc16 , cmake_params: '-G "Visual Studio 17" -T v142 -A Win32', cmake_flags: ' /MP4 /wd4267 /wd4244 /wd4305 /wd4996', test_config: 'Release/', choco_flags: '--x86', desc: 'Windows Visual Studio 2019 x86' } + - { os: windows-2022 , shell: cmd , arch: x64 , bitness: 64, runtime: vc15 , cmake_params: '-G "Visual Studio 17" -T v141 -A x64' , cmake_flags: ' /MP4 /wd4267 /wd4244 /wd4305 /wd4996', test_config: 'Release/', desc: 'Windows Visual Studio 2017 x64' } + - { os: windows-2022 , shell: cmd , arch: x86 , bitness: 32, runtime: vc15 , cmake_params: '-G "Visual Studio 17" -T v141 -A Win32', cmake_flags: ' /MP4 /wd4267 /wd4244 /wd4305 /wd4996', test_config: 'Release/', choco_flags: '--x86', desc: 'Windows Visual Studio 2017 x86' } + # Problems related to C++17 for Visual Studio 2015 and earlier? + #- { os: windows-2022 , shell: cmd , arch: x64 , bitness: 64, runtime: vc14 , cmake_params: '-G "Visual Studio 17" -T v140 -A x64,version=10.0.19041.0 -D CMAKE_SYSTEM_VERSION=10.0.14393.0' , cmake_flags: ' /MP4 /wd4267 /wd4244 /wd4305 /wd4996', test_config: 'Release/', desc: 'Windows Visual Studio 2015 x64' } + #- { os: windows-2022 , shell: cmd , arch: x86 , bitness: 32, runtime: vc14 , cmake_params: '-G "Visual Studio 17" -T v140 -A Win32,version=10.0.19041.0 -D CMAKE_SYSTEM_VERSION=10.0.14393.0', cmake_flags: ' /MP4 /wd4267 /wd4244 /wd4305 /wd4996', test_config: 'Release/', choco_flags: '--x86', desc: 'Windows Visual Studio 2015 x86' } +# - { os: windows-2022 , shell: cmd , arch: x64 , bitness: 64, runtime: mingw15 , cmake_params: '-G "MinGW Makefiles"', cmake_flags: '-fPIC', desc: 'Windows MinGW 15.2.0 x64' } +# - { os: windows-2022 , shell: cmd , arch: x86 , bitness: 32, runtime: mingw15 , cmake_params: '-G "MinGW Makefiles"', cmake_flags: '-fPIC', choco_flags: '--x86', desc: 'Windows MinGW 15.2.0 x86' } + - { os: windows-2022 , shell: cmd , arch: x64 , bitness: 64, runtime: mingw14 , cmake_params: '-G "MinGW Makefiles"', cmake_flags: '-fPIC', desc: 'Windows MinGW 14.2.0 x64' } + - { os: windows-2022 , shell: cmd , arch: x86 , bitness: 32, runtime: mingw14 , cmake_params: '-G "MinGW Makefiles"', cmake_flags: '-fPIC', choco_flags: '--x86', desc: 'Windows MinGW 14.2.0 x86' } + - { os: windows-2022 , shell: cmd , arch: x64 , bitness: 64, runtime: mingw13 , cmake_params: '-G "MinGW Makefiles"', cmake_flags: '-fPIC', desc: 'Windows MinGW 13.2.0 x64' } + - { os: windows-2022 , shell: cmd , arch: x86 , bitness: 32, runtime: mingw13 , cmake_params: '-G "MinGW Makefiles"', cmake_flags: '-fPIC', choco_flags: '--x86', desc: 'Windows MinGW 13.2.0 x86' } + - { os: windows-2022 , shell: cmd , arch: x64 , bitness: 64, runtime: mingw12 , cmake_params: '-G "MinGW Makefiles"', cmake_flags: '-fPIC', desc: 'Windows MinGW 12.2.0 x64' } + - { os: windows-2022 , shell: cmd , arch: x86 , bitness: 32, runtime: mingw12 , cmake_params: '-G "MinGW Makefiles"', cmake_flags: '-fPIC', choco_flags: '--x86', desc: 'Windows MinGW 12.2.0 x86' } + - { os: windows-2022 , shell: cmd , arch: x64 , bitness: 64, runtime: mingw11 , cmake_params: '-G "MinGW Makefiles"', cmake_flags: '-fPIC', desc: 'Windows MinGW 11.2.0 x64' } + - { os: windows-2022 , shell: cmd , arch: x86 , bitness: 32, runtime: mingw11 , cmake_params: '-G "MinGW Makefiles"', cmake_flags: '-fPIC', choco_flags: '--x86', desc: 'Windows MinGW 11.2.0 x86' } + - { os: windows-2022 , shell: cmd , arch: x64 , bitness: 64, runtime: mingw8 , cmake_params: '-G "MinGW Makefiles"', cmake_flags: '-fPIC', desc: 'Windows MinGW 8.1.0 x64' } + - { os: windows-2022 , shell: cmd , arch: x86 , bitness: 32, runtime: mingw8 , cmake_params: '-G "MinGW Makefiles"', cmake_flags: '-fPIC', choco_flags: '--x86', desc: 'Windows MinGW 8.1.0 x86' } + - { os: windows-2022 , shell: cmd , arch: x64 , bitness: 64, runtime: mingw7 , cmake_params: '-G "MinGW Makefiles"', cmake_flags: '-fPIC', desc: 'Windows MinGW 7.3.0 x64' } + - { os: windows-2022 , shell: cmd , arch: x86 , bitness: 32, runtime: mingw7 , cmake_params: '-G "MinGW Makefiles"', cmake_flags: '-fPIC', choco_flags: '--x86', desc: 'Windows MinGW 7.3.0 x86' } + - { os: ubuntu-24.04 , shell: bash, arch: amd64 , bitness: 64, runtime: noble , cmake_flags: '-fPIC', deb: true, desc: 'Ubuntu 24.04 amd64' } + - { os: ubuntu-24.04-arm, shell: bash, arch: arm64 , bitness: 64, runtime: noble , cmake_flags: '-fPIC', deb: true, desc: 'Ubuntu 24.04 arm64' } + - { os: ubuntu-22.04 , shell: bash, arch: amd64 , bitness: 64, runtime: jammy , cmake_flags: '-fPIC', deb: true, desc: 'Ubuntu 22.04 amd64' } + - { os: ubuntu-22.04-arm, shell: bash, arch: arm64 , bitness: 64, runtime: jammy , cmake_flags: '-fPIC', deb: true, desc: 'Ubuntu 22.04 arm64' } + - { os: macos-26 , shell: bash, arch: arm64 , bitness: 64, runtime: tahoe , cmake_params: '-D CMAKE_SYSTEM_NAME=Darwin -D CMAKE_OSX_ARCHITECTURES=arm64' , cmake_flags: '-fPIC', desc: 'macOS Tahoe arm64' } + - { os: macos-26 , shell: bash, arch: x86_64 , bitness: 64, runtime: tahoe , cmake_params: '-D CMAKE_SYSTEM_NAME=Darwin -D CMAKE_OSX_ARCHITECTURES=x86_64 -D CMAKE_OSX_DEPLOYMENT_TARGET=26.0', cmake_flags: '-fPIC', cross: true, desc: 'macOS Tahoe x86_64 (cross)' } + - { os: macos-15 , shell: bash, arch: arm64 , bitness: 64, runtime: sequoia , cmake_params: '-D CMAKE_SYSTEM_NAME=Darwin -D CMAKE_OSX_ARCHITECTURES=arm64' , cmake_flags: '-fPIC', desc: 'macOS Sequoia arm64' } + - { os: macos-15-intel , shell: bash, arch: x86_64 , bitness: 64, runtime: sequoia , cmake_params: '-D CMAKE_SYSTEM_NAME=Darwin -D CMAKE_OSX_ARCHITECTURES=x86_64', cmake_flags: '-fPIC', desc: 'macOS Sequoia x86_64' } + - { os: macos-14 , shell: bash, arch: arm64 , bitness: 64, runtime: sonoma , cmake_params: '-D CMAKE_SYSTEM_NAME=Darwin -D CMAKE_OSX_ARCHITECTURES=arm64' , cmake_flags: '-fPIC', desc: 'macOS Sonoma arm64' } + - { os: macos-14 , shell: bash, arch: x86_64 , bitness: 64, runtime: sonoma , cmake_params: '-D CMAKE_SYSTEM_NAME=Darwin -D CMAKE_OSX_ARCHITECTURES=x86_64 -D CMAKE_OSX_DEPLOYMENT_TARGET=14.0', cmake_flags: '-fPIC', cross: true, desc: 'macOS Sonoma x86_64 (cross)' } name: ${{ matrix.cfg.desc }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: submodules: true fetch-depth: 0 @@ -112,25 +127,59 @@ jobs: %SystemDrive%\cmake_extra_tools\pathman /as C:\ProgramData\mingw64\mingw${{ matrix.cfg.bitness }}\bin & cd. & rem Non-zero exit code...? echo export BASHMINGWPATH=/c/ProgramData/mingw64/mingw${{ matrix.cfg.bitness }}/bin>>%USERPROFILE%\.bashrc if: (matrix.cfg.runtime=='mingw13') + - run: | + choco install -y -r --no-progress mingw --version=14.2.0 --force ${{ matrix.cfg.choco_flags }} + %SystemDrive%\cmake_extra_tools\pathman /as C:\ProgramData\mingw64\mingw${{ matrix.cfg.bitness }}\bin & cd. & rem Non-zero exit code...? + echo export BASHMINGWPATH=/c/ProgramData/mingw64/mingw${{ matrix.cfg.bitness }}/bin>>%USERPROFILE%\.bashrc + if: (matrix.cfg.runtime=='mingw14') + - run: | + choco install -y -r --no-progress mingw --version=15.2.0 --force ${{ matrix.cfg.choco_flags }} + %SystemDrive%\cmake_extra_tools\pathman /as C:\ProgramData\mingw64\mingw${{ matrix.cfg.bitness }}\bin & cd. & rem Non-zero exit code...? + echo export BASHMINGWPATH=/c/ProgramData/mingw64/mingw${{ matrix.cfg.bitness }}/bin>>%USERPROFILE%\.bashrc + if: (matrix.cfg.runtime=='mingw15') + - run: | + rem Warning: Windows SDK 10.0.18362.0 might not install correctly even if the rest looks OK, and there might be incompatibilities between Visual Studio 2015 compiler and more recent SDKs... + "C:\Program Files (x86)\Microsoft Visual Studio\Installer\vs_installer.exe" modify --installPath "C:\Program Files\Microsoft Visual Studio\2022\Enterprise" --add Microsoft.VisualStudio.Component.VC.140 --add Microsoft.VisualStudio.Component.Windows10SDK.19041 --force --quiet --norestart --addProductLang en-US --includeRecommended + if: (matrix.cfg.runtime=='vc14') + - run: | + "C:\Program Files (x86)\Microsoft Visual Studio\Installer\vs_installer.exe" modify --installPath "C:\Program Files\Microsoft Visual Studio\2022\Enterprise" --add Microsoft.VisualStudio.Component.VC.v141.x86.x64 --add Microsoft.VisualStudio.Component.VC.v141.ARM64 --force --quiet --norestart --addProductLang en-US --includeRecommended + if: (matrix.cfg.runtime=='vc15') + # If needed in the future... + #- run: | + # "C:\Program Files (x86)\Microsoft Visual Studio\Installer\vs_installer.exe" modify --installPath "C:\Program Files\Microsoft Visual Studio\2022\Enterprise" --add Microsoft.VisualStudio.ComponentGroup.VC.Tools.142.x86.x64 --add Microsoft.VisualStudio.Component.VC.14.29.16.11.x86.x64 --add Microsoft.VisualStudio.Component.VC.14.29.16.11.ARM64 --force --quiet --norestart --addProductLang en-US --includeRecommended + # if: (matrix.cfg.runtime=='vc16') + - run: | + choco feature disable -n usePackageExitCodes + choco install -y -r --no-progress visualstudio2026buildtools --package-parameters "--addProductLang en-US --includeRecommended --add Microsoft.VisualStudio.Component.CoreEditor --add Microsoft.VisualStudio.Workload.NativeDesktop --add Microsoft.VisualStudio.Workload.ManagedDesktop --add Microsoft.VisualStudio.Workload.VCTools --add Microsoft.VisualStudio.Workload.ManagedDesktopBuildTools --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 --add Microsoft.VisualStudio.Component.VC.Tools.ARM64 --add Microsoft.VisualStudio.Workload.NativeCrossPlat --add Microsoft.VisualStudio.Component.VC.ATLMFC --add Microsoft.VisualStudio.Component.VC.CLI.Support --remove Component.Microsoft.VisualStudio.LiveShare --remove Microsoft.VisualStudio.Component.VC.TestAdapterForGoogleTest --remove Microsoft.VisualStudio.Component.VC.TestAdapterForBoostTest --remove Microsoft.VisualStudio.Component.EntityFramework --remove Microsoft.Component.CookiecutterTools --remove Microsoft.Component.PythonTools.Web --remove Component.CPython3.x64 --remove Microsoft.Component.PythonTools.Minicondax64" + if: (matrix.cfg.runtime=='vc18') + - run: | + rem Temporary issue on windows-11-arm, existing system CMake cannot be updated due to some MSI error, so using the one from Visual Studio...? + echo export BASHCMAKEPATH="/c/Program Files (x86)/Microsoft Visual Studio/18/BuildTools/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/bin">>%USERPROFILE%\.bashrc + if: (matrix.cfg.runtime=='vc18')&&(matrix.cfg.os=='windows-11-arm') + - run: | + choco install -y -r --no-progress cmake --force + echo export BASHCMAKEPATH="/c/Program Files/CMake/bin">>%USERPROFILE%\.bashrc + if: (matrix.cfg.runtime=='vc18')&&(matrix.cfg.os!='windows-11-arm') - run: | choco install -y -r --no-progress eigen --version=3.4.0.20240224 ${{ matrix.cfg.choco_flags }} - wget https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20241117/ibex.2.8.9.20241117.nupkg --no-check-certificate -nv - choco install -y -r --no-progress --ignore-dependencies -s . ibex --version=2.8.9.20241117 ${{ matrix.cfg.choco_flags }} --params "'/url:https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20241117/ibex_${{ matrix.cfg.arch }}_${{ matrix.cfg.runtime }}.zip'" - del /f /q ibex.2.8.9.20241117.nupkg + wget https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20250626/ibex.2.8.9.20250626.nupkg --no-check-certificate -nv + choco install -y -r --no-progress --ignore-dependencies -s . ibex --version=2.8.9.20250626 ${{ matrix.cfg.choco_flags }} --params "'/url:https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20250626/ibex_${{ matrix.cfg.arch }}_${{ matrix.cfg.runtime }}.zip'" + del /f /q ibex.2.8.9.20250626.nupkg if: runner.os=='Windows' - run: | # Replace these 2 lines by the next ones to test a specific binary package of IBEX. - #sudo sh -c 'echo "deb [trusted=yes] https://packages.ensta-bretagne.fr/$(if [ -z "$(. /etc/os-release && echo $UBUNTU_CODENAME)" ]; then echo debian/$(. /etc/os-release && echo $VERSION_CODENAME); else echo ubuntu/$(. /etc/os-release && echo $UBUNTU_CODENAME); fi) ./" > /etc/apt/sources.list.d/ensta-bretagne.list' + #sudo sh -c 'echo "deb [trusted=yes] https://webperso.ensta.fr/packages/$(if [ -z "$(. /etc/os-release && echo $UBUNTU_CODENAME)" ]; then echo debian/$(. /etc/os-release && echo $VERSION_CODENAME); else echo ubuntu/$(. /etc/os-release && echo $UBUNTU_CODENAME); fi) ./" > /etc/apt/sources.list.d/ensta-bretagne.list' #sudo apt-get -q update ; sudo apt-get -y install libibex-dev libeigen3-dev dpkg-dev || true sudo apt-get -q update ; sudo apt-get -y install libeigen3-dev dpkg-dev || true - wget https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20241117/libibex-dev-2.8.9.20241117-0${{ matrix.cfg.runtime }}0_$(dpkg --print-architecture).deb --no-check-certificate -nv - sudo dpkg -i libibex-dev-2.8.9.20241117-0${{ matrix.cfg.runtime }}0_$(dpkg --print-architecture).deb - rm -Rf libibex-dev-2.8.9.20241117-0${{ matrix.cfg.runtime }}0_$(dpkg --print-architecture).deb + wget https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20250626/libibex-dev-2.8.9.20250626-0${{ matrix.cfg.runtime }}0_$(dpkg --print-architecture).deb --no-check-certificate -nv + sudo dpkg -i libibex-dev-2.8.9.20250626-0${{ matrix.cfg.runtime }}0_$(dpkg --print-architecture).deb + rm -Rf libibex-dev-2.8.9.20250626-0${{ matrix.cfg.runtime }}0_$(dpkg --print-architecture).deb shell: bash if: matrix.cfg.deb==true - run: | - brew install eigen - wget https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20241117/ibex_${{ matrix.cfg.arch }}_${{ matrix.cfg.runtime }}.zip --no-check-certificate -nv + wget https://github.com/lebarsfa/xbrew/releases/latest/download/xbrew.sh --no-check-certificate -nv ; sudo mv -f xbrew.sh /usr/local/bin/xbrew ; sudo chmod +x /usr/local/bin/xbrew + xbrew reinstall https://raw.githubusercontent.com/Homebrew/homebrew-core/d491a3b4ff7f131f8d08468c21c2c11e867e22fe/Formula/e/eigen.rb ; brew pin eigen + wget https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20250626/ibex_${{ matrix.cfg.arch }}_${{ matrix.cfg.runtime }}.zip --no-check-certificate -nv unzip -q ibex_${{ matrix.cfg.arch }}_${{ matrix.cfg.runtime }}.zip rm -Rf ibex_${{ matrix.cfg.arch }}_${{ matrix.cfg.runtime }}.zip sudo cp -Rf ibex/* /usr/local/ @@ -138,7 +187,7 @@ jobs: # - run: git clone --depth 1 -b master https://github.com/lebarsfa/ibex-lib.git ; cd ibex-lib ; mkdir build ; cd build ; cmake -E env CXXFLAGS="${{ matrix.cfg.cmake_flags }}" CFLAGS="${{ matrix.cfg.cmake_flags }}" cmake ${{ matrix.cfg.cmake_params }} -D CMAKE_INSTALL_PREFIX="../../ibex" .. ; cmake --build . --config Release --target install ; cd ../.. # shell: bash - run: | - if [ ${{ runner.os }} = Windows ]; then source ~/refreshenv.bashrc ; refreshenv ; export PATH=$BASHMINGWPATH:$PATH ; fi + if [ ${{ runner.os }} = Windows ]; then source ~/refreshenv.bashrc ; refreshenv ; export PATH=$BASHMINGWPATH:$BASHCMAKEPATH:$PATH ; fi mkdir build ; cd build cmake -E env CXXFLAGS="${{ matrix.cfg.cmake_flags }}" CFLAGS="${{ matrix.cfg.cmake_flags }}" cmake ${{ matrix.cfg.cmake_params }} -D BUILD_TESTS=ON -D CMAKE_INSTALL_PREFIX="../codac" .. cmake --build . -j 4 --config Debug --target install @@ -148,7 +197,7 @@ jobs: zip -q -r codac_${{ matrix.cfg.arch }}_${{ matrix.cfg.runtime }}.zip codac shell: bash - run: | - if [ ${{ runner.os }} = Windows ]; then source ~/refreshenv.bashrc ; refreshenv ; export PATH=$BASHMINGWPATH:$PATH ; fi + if [ ${{ runner.os }} = Windows ]; then source ~/refreshenv.bashrc ; refreshenv ; export PATH=$BASHMINGWPATH:$BASHCMAKEPATH:$PATH ; fi mkdir -p codac_standalone/example ; cd codac_standalone wget https://community.chocolatey.org/api/v2/package/eigen/3.4.0.20240224 --no-check-certificate -nv ; unzip -q 3.4.0.20240224 -d eigen ; rm -Rf 3.4.0.20240224 eigen/*.xml eigen/*.nuspec eigen/_* eigen/package eigen/tools if [ ${{ runner.os }} = Windows ]; then cp -Rf /C/ProgramData/chocolatey/lib/ibex . ; rm -Rf ibex/tools ibex/ibex.* @@ -158,7 +207,7 @@ jobs: cp -Rf ../codac . ; cp -Rf ../tests/test_codac/* ./example/ ; cd .. ; zip -q -r codac_standalone_${{ matrix.cfg.arch }}_${{ matrix.cfg.runtime }}.zip codac_standalone shell: bash - run: | - if [ ${{ runner.os }} = Windows ]; then source ~/refreshenv.bashrc ; refreshenv ; export PATH=$BASHMINGWPATH:$PATH ; fi + if [ ${{ runner.os }} = Windows ]; then source ~/refreshenv.bashrc ; refreshenv ; export PATH=$BASHMINGWPATH:$BASHCMAKEPATH:$PATH ; fi cd codac_standalone/example cmake ${{ matrix.cfg.cmake_params }} . cmake --build . --config Release @@ -168,7 +217,7 @@ jobs: shell: bash if: (matrix.cfg.cross!=true) - run: | - source ~/refreshenv.bashrc ; refreshenv ; export PATH=$BASHMINGWPATH:$PATH + source ~/refreshenv.bashrc ; refreshenv ; export PATH=$BASHMINGWPATH:$BASHCMAKEPATH:$PATH cd packages/choco sed_param=s/\1\<\\/version\>/\${PACKAGE_VERSION}\<\\/version\>/ sed -i "$sed_param" codac/codac.nuspec @@ -209,13 +258,13 @@ jobs: tag_name: autotagname-${{ github.sha }} if: (github.event_name!='pull_request')&&((github.ref_name=='codac1')||(github.ref_name=='codac2')||(github.ref_name=='codac2_codac4matlab')) - run: | - if [ ${{ runner.os }} = Windows ]; then source ~/refreshenv.bashrc ; refreshenv ; export PATH=$BASHMINGWPATH:$PATH ; fi + if [ ${{ runner.os }} = Windows ]; then source ~/refreshenv.bashrc ; refreshenv ; export PATH=$BASHMINGWPATH:$BASHCMAKEPATH:$PATH ; fi cd build && ctest -C Debug -V --output-on-failure cd .. shell: bash if: (matrix.cfg.cross!=true) - run: | - if [ ${{ runner.os }} = Windows ]; then source ~/refreshenv.bashrc ; refreshenv ; export PATH=$BASHMINGWPATH:$PATH ; fi + if [ ${{ runner.os }} = Windows ]; then source ~/refreshenv.bashrc ; refreshenv ; export PATH=$BASHMINGWPATH:$BASHCMAKEPATH:$PATH ; fi rm -Rf codac cd tests/test_codac cmake ${{ matrix.cfg.cmake_params }} . diff --git a/.github/workflows/vcmatrix.yml b/.github/workflows/vcmatrix.yml index 5b011ac79..343541880 100644 --- a/.github/workflows/vcmatrix.yml +++ b/.github/workflows/vcmatrix.yml @@ -5,7 +5,7 @@ on: - codac1 - codac2 - codac2_codac4matlab - tags: '' # Restrict to blank tags + tags-ignore: ['**'] # Ignore all tag pushes pull_request: jobs: @@ -18,26 +18,28 @@ jobs: fail-fast: false matrix: cfg: - - { os: windows-2022, shell: cmd, arch: x86, runtime: vc17, cmake_params: '-G "Visual Studio 17" -T v143 -A Win32', choco_flags: '--x86', cpcfg: '-win32', py_v_maj: 3, py_v_min: 13, desc: 'Windows Visual Studio 2022 x86 Python 3.13' } - - { os: windows-2022, shell: cmd, arch: x86, runtime: vc17, cmake_params: '-G "Visual Studio 17" -T v143 -A Win32', choco_flags: '--x86', cpcfg: '-win32', py_v_maj: 3, py_v_min: 12, desc: 'Windows Visual Studio 2022 x86 Python 3.12' } - - { os: windows-2022, shell: cmd, arch: x86, runtime: vc17, cmake_params: '-G "Visual Studio 17" -T v143 -A Win32', choco_flags: '--x86', cpcfg: '-win32', py_v_maj: 3, py_v_min: 11, desc: 'Windows Visual Studio 2022 x86 Python 3.11' } - - { os: windows-2022, shell: cmd, arch: x86, runtime: vc16, cmake_params: '-G "Visual Studio 17" -T v142 -A Win32', choco_flags: '--x86', cpcfg: '-win32', py_v_maj: 3, py_v_min: 10, desc: 'Windows Visual Studio 2019 x86 Python 3.10' } - - { os: windows-2022, shell: cmd, arch: x86, runtime: vc16, cmake_params: '-G "Visual Studio 17" -T v142 -A Win32', choco_flags: '--x86', cpcfg: '-win32', py_v_maj: 3, py_v_min: 9, desc: 'Windows Visual Studio 2019 x86 Python 3.9' } - - { os: windows-2022, shell: cmd, arch: x86, runtime: vc16, cmake_params: '-G "Visual Studio 17" -T v142 -A Win32', choco_flags: '--x86', cpcfg: '-win32', py_v_maj: 3, py_v_min: 8, desc: 'Windows Visual Studio 2019 x86 Python 3.8' } - - { os: windows-2022, shell: cmd, arch: x64, runtime: vc17, cmake_params: '-G "Visual Studio 17" -T v143 -A x64', cpcfg: '-win_amd64', py_v_maj: 3, py_v_min: 13, desc: 'Windows Visual Studio 2022 x64 Python 3.13' } - - { os: windows-2022, shell: cmd, arch: x64, runtime: vc17, cmake_params: '-G "Visual Studio 17" -T v143 -A x64', cpcfg: '-win_amd64', py_v_maj: 3, py_v_min: 12, desc: 'Windows Visual Studio 2022 x64 Python 3.12' } - - { os: windows-2022, shell: cmd, arch: x64, runtime: vc17, cmake_params: '-G "Visual Studio 17" -T v143 -A x64', cpcfg: '-win_amd64', py_v_maj: 3, py_v_min: 11, desc: 'Windows Visual Studio 2022 x64 Python 3.11' } - - { os: windows-2022, shell: cmd, arch: x64, runtime: vc16, cmake_params: '-G "Visual Studio 17" -T v142 -A x64', cpcfg: '-win_amd64', py_v_maj: 3, py_v_min: 10, desc: 'Windows Visual Studio 2019 x64 Python 3.10' } - - { os: windows-2022, shell: cmd, arch: x64, runtime: vc16, cmake_params: '-G "Visual Studio 17" -T v142 -A x64', cpcfg: '-win_amd64', py_v_maj: 3, py_v_min: 9, desc: 'Windows Visual Studio 2019 x64 Python 3.9' } - - { os: windows-2022, shell: cmd, arch: x64, runtime: vc16, cmake_params: '-G "Visual Studio 17" -T v142 -A x64', cpcfg: '-win_amd64', py_v_maj: 3, py_v_min: 8, desc: 'Windows Visual Studio 2019 x64 Python 3.8' } + - { os: windows-2022 , shell: cmd , arch: x86 , runtime: vc17 , cmake_params: '-G "Visual Studio 17" -T v143 -A Win32', choco_flags: '--x86', cpcfg: '-win32', py_v_maj: 3, py_v_min: 14, desc: 'Windows Visual Studio 2022 x86 Python 3.14' } + - { os: windows-2022 , shell: cmd , arch: x86 , runtime: vc17 , cmake_params: '-G "Visual Studio 17" -T v143 -A Win32', choco_flags: '--x86', cpcfg: '-win32', py_v_maj: 3, py_v_min: 13, desc: 'Windows Visual Studio 2022 x86 Python 3.13' } + - { os: windows-2022 , shell: cmd , arch: x86 , runtime: vc17 , cmake_params: '-G "Visual Studio 17" -T v143 -A Win32', choco_flags: '--x86', cpcfg: '-win32', py_v_maj: 3, py_v_min: 12, desc: 'Windows Visual Studio 2022 x86 Python 3.12' } + - { os: windows-2022 , shell: cmd , arch: x86 , runtime: vc17 , cmake_params: '-G "Visual Studio 17" -T v143 -A Win32', choco_flags: '--x86', cpcfg: '-win32', py_v_maj: 3, py_v_min: 11, desc: 'Windows Visual Studio 2022 x86 Python 3.11' } + - { os: windows-2022 , shell: cmd , arch: x86 , runtime: vc16 , cmake_params: '-G "Visual Studio 17" -T v142 -A Win32', choco_flags: '--x86', cpcfg: '-win32', py_v_maj: 3, py_v_min: 10, desc: 'Windows Visual Studio 2019 x86 Python 3.10' } + - { os: windows-2022 , shell: cmd , arch: x86 , runtime: vc16 , cmake_params: '-G "Visual Studio 17" -T v142 -A Win32', choco_flags: '--x86', cpcfg: '-win32', py_v_maj: 3, py_v_min: 9 , desc: 'Windows Visual Studio 2019 x86 Python 3.9' } + - { os: windows-2022 , shell: cmd , arch: x86 , runtime: vc16 , cmake_params: '-G "Visual Studio 17" -T v142 -A Win32', choco_flags: '--x86', cpcfg: '-win32', py_v_maj: 3, py_v_min: 8 , desc: 'Windows Visual Studio 2019 x86 Python 3.8' } + - { os: windows-2022 , shell: cmd , arch: x64 , runtime: vc17 , cmake_params: '-G "Visual Studio 17" -T v143 -A x64' , cpcfg: '-win_amd64', py_v_maj: 3, py_v_min: 14, desc: 'Windows Visual Studio 2022 x64 Python 3.14' } + - { os: windows-2022 , shell: cmd , arch: x64 , runtime: vc17 , cmake_params: '-G "Visual Studio 17" -T v143 -A x64' , cpcfg: '-win_amd64', py_v_maj: 3, py_v_min: 13, desc: 'Windows Visual Studio 2022 x64 Python 3.13' } + - { os: windows-2022 , shell: cmd , arch: x64 , runtime: vc17 , cmake_params: '-G "Visual Studio 17" -T v143 -A x64' , cpcfg: '-win_amd64', py_v_maj: 3, py_v_min: 12, desc: 'Windows Visual Studio 2022 x64 Python 3.12' } + - { os: windows-2022 , shell: cmd , arch: x64 , runtime: vc17 , cmake_params: '-G "Visual Studio 17" -T v143 -A x64' , cpcfg: '-win_amd64', py_v_maj: 3, py_v_min: 11, desc: 'Windows Visual Studio 2022 x64 Python 3.11' } + - { os: windows-2022 , shell: cmd , arch: x64 , runtime: vc16 , cmake_params: '-G "Visual Studio 17" -T v142 -A x64' , cpcfg: '-win_amd64', py_v_maj: 3, py_v_min: 10, desc: 'Windows Visual Studio 2019 x64 Python 3.10' } + - { os: windows-2022 , shell: cmd , arch: x64 , runtime: vc16 , cmake_params: '-G "Visual Studio 17" -T v142 -A x64' , cpcfg: '-win_amd64', py_v_maj: 3, py_v_min: 9 , desc: 'Windows Visual Studio 2019 x64 Python 3.9' } + - { os: windows-2022 , shell: cmd , arch: x64 , runtime: vc16 , cmake_params: '-G "Visual Studio 17" -T v142 -A x64' , cpcfg: '-win_amd64', py_v_maj: 3, py_v_min: 8 , desc: 'Windows Visual Studio 2019 x64 Python 3.8' } name: ${{ matrix.cfg.desc }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: submodules: true fetch-depth: 0 clean: false - - uses: actions/setup-python@v5 + - uses: actions/setup-python@v6 with: python-version: ${{ matrix.cfg.py_v_maj }}.${{ matrix.cfg.py_v_min }} architecture: ${{ matrix.cfg.arch }} @@ -55,12 +57,12 @@ jobs: if: runner.os=='Windows' - run: choco install -y -r --no-progress eigen --version=3.4.0.20240224 ${{ matrix.cfg.choco_flags }} if: runner.os=='Windows' - - run: wget https://packages.ensta-bretagne.fr/choco/doxygen.install.1.9.6.nupkg --no-check-certificate -nv & choco upgrade -y -r --no-progress -s . doxygen.install --version=1.9.6 & del /f /q doxygen.install.1.9.6.nupkg & choco install -y -r --no-progress graphviz & python -m pip install --upgrade pip & pip install --upgrade wheel setuptools sphinx breathe sphinx-issues sphinx-tabs sphinx_rtd_theme sphinx-reredirects + - run: wget https://webperso.ensta.fr/packages/choco/doxygen.install.1.9.6.nupkg --no-check-certificate -nv & choco upgrade -y -r --no-progress -s . doxygen.install --version=1.9.6 & del /f /q doxygen.install.1.9.6.nupkg & choco install -y -r --no-progress graphviz & python -m pip install --upgrade pip & pip install --upgrade wheel setuptools sphinx breathe sphinx-issues sphinx-tabs sphinx_rtd_theme sphinx-reredirects if: runner.os=='Windows' - run: | - wget https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20241117/ibex.2.8.9.20241117.nupkg --no-check-certificate -nv - choco install -y -r --no-progress --ignore-dependencies -s . ibex --version=2.8.9.20241117 ${{ matrix.cfg.choco_flags }} --params "'/url:https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20241117/ibex_${{ matrix.cfg.arch }}_${{ matrix.cfg.runtime }}.zip'" - del /f /q ibex.2.8.9.20241117.nupkg + wget https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20250626/ibex.2.8.9.20250626.nupkg --no-check-certificate -nv + choco install -y -r --no-progress --ignore-dependencies -s . ibex --version=2.8.9.20250626 ${{ matrix.cfg.choco_flags }} --params "'/url:https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20250626/ibex_${{ matrix.cfg.arch }}_${{ matrix.cfg.runtime }}.zip'" + del /f /q ibex.2.8.9.20250626.nupkg - run: | mkdir build ; cd build cmake -E env CXXFLAGS=" /MP4 /wd4267 /wd4244 /wd4305 /wd4996" CFLAGS=" /MP4 /wd4267 /wd4244 /wd4305 /wd4996" cmake ${{ matrix.cfg.cmake_params }} -D CMAKE_INSTALL_PREFIX="../codac" -D WITH_PYTHON=ON .. diff --git a/doc/doc/dev/info_dev.rst b/doc/doc/dev/info_dev.rst index 51a4dd9e3..66c90c5e8 100644 --- a/doc/doc/dev/info_dev.rst +++ b/doc/doc/dev/info_dev.rst @@ -108,6 +108,10 @@ For building the API technical documentation using Doxygen: The API pages will be generated in :file:`build/doc/api/html/`. +.. warning:: + + Doxygen: In case you have errors related to Doxygen, try to force the installation of v1.9.6. + .. rubric:: Script :file:`make.sh` @@ -240,17 +244,17 @@ In the :file:`codac` directory, test the x86_64 Linux configuration locally usin docker pull lebarsfa/manylinux_2_28_x86_64-for-codac docker run --rm -v `pwd`:/io lebarsfa/manylinux_2_28_x86_64-for-codac /io/scripts/docker/build_pybinding.sh -The same can be done for the ARM Linux configurations (preferably from a powerful ARM computer, such as a Mac with Apple Silicon). +The same can be done for the ARM Linux configurations. See https://github.com/lebarsfa/lebarsfa-docker-images for info about the Docker images used. .. rubric:: [For admins] Upload Ubuntu packages -Get access to https://packages.ensta-bretagne.fr/ server as a network drive from an Ubuntu computer. If not already done, run ``sudo apt install dpkg-dev curl`` to install some prerequisites. Then, run ``sudo ./getlatestcodacrelease.sh`` to download automatically the ``.deb`` files from the latest GitHub release for all the supported configurations and update the :ref:`repository database ` (or just ``sudo ./gencodac.sh`` to download automatically a specific version without updating the database). If you downloaded manually the ``.deb`` files, you can update the repository database with ``sudo ./scanpackages.sh``. +Get access to https://webperso.ensta.fr/packages/ server as a network drive from an Ubuntu computer. If not already done, run ``sudo apt install dpkg-dev curl`` to install some prerequisites. Then, run ``sudo ./getlatestcodacrelease.sh`` to download automatically the ``.deb`` files from the latest GitHub release for all the supported configurations and update the :ref:`repository database ` (or just ``sudo ./gencodac.sh`` to download automatically a specific version without updating the database). If you downloaded manually the ``.deb`` files, you can update the repository database with ``sudo ./scanpackages.sh``. .. rubric:: [For admins] Upload Windows packages -Get access to https://packages.ensta-bretagne.fr/ server as a network drive from a Windows computer. If not already done, install `Chocolatey `_ and then run ``choco install -y wget curl 7z checksum`` to install some prerequisites. Then, in ``choco`` folder, run from the Command Prompt ``getlatestcodacrelease.bat`` to generate a ``.nupkg`` from the latest GitHub release (or just ``gencodacpackages.bat`` to be able to test a specific version), then ``choco push codac.X.Y.Z.nupkg`` (need logged in Chocolatey maintainer) when the version is considered as OK to upload to the `Chocolatey repository `_. +Get access to https://webperso.ensta.fr/packages/ server as a network drive from a Windows computer. If not already done, install `Chocolatey `_ and then run ``choco install -y wget curl 7z checksum`` to install some prerequisites. Then, in ``choco`` folder, run from the Command Prompt ``getlatestcodacrelease.bat`` to generate a ``.nupkg`` from the latest GitHub release (or just ``gencodacpackages.bat`` to be able to test a specific version), then ``choco push codac.X.Y.Z.nupkg`` (need logged in Chocolatey maintainer) when the version is considered as OK to upload to the `Chocolatey repository `_. .. rubric:: MATLAB compatibility diff --git a/doc/doc/install/01-installation-full-linux.rst b/doc/doc/install/01-installation-full-linux.rst index df79578ba..7ff27ba65 100644 --- a/doc/doc/install/01-installation-full-linux.rst +++ b/doc/doc/install/01-installation-full-linux.rst @@ -7,14 +7,14 @@ Installing Codac v1 on Linux for C++ use ######################################## -Install from package (latest release, for Ubuntu (amd64, arm64), Debian (arm64, armhf) and possibly others) +Install from package (latest release, for Ubuntu (amd64, arm64), Debian (amd64, arm64, armhf) and possibly others) ----------------------------------------------------------------------------------------------------------- A Debian package is available for the last release 1.5.7 of the library: .. code-block:: bash - sudo sh -c 'echo "deb [trusted=yes] https://packages.ensta-bretagne.fr/$(if [ -z "$(. /etc/os-release && echo $UBUNTU_CODENAME)" ]; then echo debian/$(. /etc/os-release && echo $VERSION_CODENAME); else echo ubuntu/$(. /etc/os-release && echo $UBUNTU_CODENAME); fi) ./" > /etc/apt/sources.list.d/ensta-bretagne.list' + sudo sh -c 'echo "deb [trusted=yes] https://webperso.ensta.fr/packages/$(if [ -z "$(. /etc/os-release && echo $UBUNTU_CODENAME)" ]; then echo debian/$(. /etc/os-release && echo $VERSION_CODENAME); else echo ubuntu/$(. /etc/os-release && echo $UBUNTU_CODENAME); fi) ./" > /etc/apt/sources.list.d/ensta-bretagne.list' sudo apt update sudo apt install libcodac-dev @@ -89,6 +89,10 @@ For further CMake options, please refer to the IBEX documentation. GAOL prerequisite: On some platforms, you might need to install manually `MathLib `_ and `GAOL `_ with CMake and `specify where they are `_ to build IBEX successfully and have accurate computations. +.. warning:: + + Eigen3 prerequisite: In case you have errors related to Eigen3, try to force the installation of v3.4.0. + .. admonition:: Debug/development mode Note that the :code:`-DCMAKE_BUILD_TYPE=Debug` option will slightly slow down your computations, but display useful error messages in case of failure conditions such as access violations. **It is highly recommended** for your developments. To use it: diff --git a/doc/doc/install/01-installation-full-windows.rst b/doc/doc/install/01-installation-full-windows.rst index 21b97b9ce..c693c3caa 100644 --- a/doc/doc/install/01-installation-full-windows.rst +++ b/doc/doc/install/01-installation-full-windows.rst @@ -78,7 +78,7 @@ to enable parallel compilation on 4 cores. .. code-block:: bat - wget.exe https://packages.ensta-bretagne.fr/choco/mingw-patch.11.2.0.20230603.nupkg --no-check-certificate -nv + wget.exe https://webperso.ensta.fr/packages/choco/mingw-patch.11.2.0.20230603.nupkg --no-check-certificate -nv choco install -y -s . mingw-patch --version=11.2.0.20230603 .. note:: diff --git a/packages/choco/codac/tools/chocolateyinstall.ps1 b/packages/choco/codac/tools/chocolateyinstall.ps1 index c2830e4ba..d4155c393 100644 --- a/packages/choco/codac/tools/chocolateyinstall.ps1 +++ b/packages/choco/codac/tools/chocolateyinstall.ps1 @@ -67,44 +67,19 @@ else { Install-ChocolateyZipPackage @packageArgs # Analyze url to guess what to add to Windows PATH or registry... + $arch = "x64" if ($url -match "x86") { $arch = "x86" } - else { - $arch = "x64" - } - if ($url -match "vc8") { - $runtime = "vc8" - } - if ($url -match "vc9") { - $runtime = "vc9" - } - elseif ($url -match "vc10") { - $runtime = "vc10" - } - elseif ($url -match "vc11") { - $runtime = "vc11" - } - elseif ($url -match "vc12") { - $runtime = "vc12" + elseif ($url -match "arm64") { + $arch = "arm64" } - elseif ($url -match "vc14") { - $runtime = "vc14" - } - elseif ($url -match "vc15") { - $runtime = "vc15" - } - elseif ($url -match "vc16") { - $runtime = "vc16" - } - elseif ($url -match "vc17") { - $runtime = "vc17" - } - elseif ($url -match "vc18") { - $runtime = "vc18" - } - else { - $runtime = "mingw" + $runtime = 'mingw' + if ($url -match 'vc(\d{1,2})') { + $ver = [int]$matches[1] + if ($ver -ge 8 -and $ver -le 22) { + $runtime = "vc$ver" + } } } @@ -136,44 +111,19 @@ for ($i = 1; $i -le 99; $i++) { Install-ChocolateyZipPackage @packageArgs # Analyze url to guess what to add to Windows PATH or registry... + $arch = "x64" if ($url -match "x86") { $arch = "x86" } - else { - $arch = "x64" - } - if ($url -match "vc8") { - $runtime = "vc8" - } - if ($url -match "vc9") { - $runtime = "vc9" - } - elseif ($url -match "vc10") { - $runtime = "vc10" - } - elseif ($url -match "vc11") { - $runtime = "vc11" - } - elseif ($url -match "vc12") { - $runtime = "vc12" - } - elseif ($url -match "vc14") { - $runtime = "vc14" - } - elseif ($url -match "vc15") { - $runtime = "vc15" - } - elseif ($url -match "vc16") { - $runtime = "vc16" - } - elseif ($url -match "vc17") { - $runtime = "vc17" - } - elseif ($url -match "vc18") { - $runtime = "vc18" + elseif ($url -match "arm64") { + $arch = "arm64" } - else { - $runtime = "mingw" + $runtime = 'mingw' + if ($url -match 'vc(\d{1,2})') { + $ver = [int]$matches[1] + if ($ver -ge 8 -and $ver -le 22) { + $runtime = "vc$ver" + } } $cmakepathtoadd = "$root\share\$CMakePackageName\cmake" diff --git a/packages/choco/codac/tools/sharedVars.ps1 b/packages/choco/codac/tools/sharedVars.ps1 index 18686b600..74c26942d 100644 --- a/packages/choco/codac/tools/sharedVars.ps1 +++ b/packages/choco/codac/tools/sharedVars.ps1 @@ -1,5 +1,9 @@ # Some of these variables might not be used in links to simplify parsing of files... -if ((Get-ProcessorBits 32) -or $env:ChocolateyForceX86 -eq $true) { $arch = "x86" } else { $arch = "x64" } +$procArch = $env:PROCESSOR_ARCHITECTURE +if ($env:ChocolateyForceX86 -eq $true) { $arch = "x86" } +elseif ($procArch -and $procArch.ToUpper() -eq 'ARM64') { $arch = "arm64" } +elseif (Get-ProcessorBits 32) { $arch = "x86" } +else { $arch = "x64" } $MinGWMVer = "13" $CMakeRegistryPath = "HKCU:\SOFTWARE\Kitware\CMake" $CMakeSystemRepositoryPath = "HKLM:\SOFTWARE\Kitware\CMake\Packages" diff --git a/packages/temporary/gennewcodacpi_armhf.sh b/packages/temporary/gennewcodacpi_armhf.sh index 248a8ebc8..24a6abc2a 100644 --- a/packages/temporary/gennewcodacpi_armhf.sh +++ b/packages/temporary/gennewcodacpi_armhf.sh @@ -26,8 +26,8 @@ fi && \ sudo apt-get -q update --allow-releaseinfo-change ; sudo apt-get -y install libeigen3-dev python3-dev patchelf python3-pip python3-wheel python3-setuptools || true && \ python3 -m pip install \$PIP_OPTIONS --upgrade patchelf --prefer-binary --extra-index-url https://www.piwheels.org/simple || true && \ python3 -m pip install \$PIP_OPTIONS --upgrade auditwheel --prefer-binary --extra-index-url https://www.piwheels.org/simple && \ -# wget https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20241117/ibex_armhf_\$(lsb_release -cs).zip --no-check-certificate -nv is causing illegal instruction on a Mac M1... \\ -curl -L -O https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20241117/ibex_armhf_\$(lsb_release -cs).zip --insecure && \ +# wget https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20250626/ibex_armhf_\$(lsb_release -cs).zip --no-check-certificate -nv is causing illegal instruction on a Mac M1... \\ +curl -L -O https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20250626/ibex_armhf_\$(lsb_release -cs).zip --insecure && \ unzip -q ibex_armhf_\$(lsb_release -cs).zip && \ rm -Rf ibex_armhf_\$(lsb_release -cs).zip && \ sudo cp -Rf ibex/* /usr/local/ && \ diff --git a/scripts/dependencies/install_ibex.sh b/scripts/dependencies/install_ibex.sh index 40c682d41..10035cc7a 100644 --- a/scripts/dependencies/install_ibex.sh +++ b/scripts/dependencies/install_ibex.sh @@ -4,7 +4,7 @@ cd $HOME echo 'Installing IBEX in ' $HOME '...'; if [ ! -e "ibex-lib/README.md" ]; then #git clone -b master https://github.com/lebarsfa/ibex-lib.git ; - git clone -b ibex-2.8.9.20241117 https://github.com/lebarsfa/ibex-lib.git ; # To test a specific version of IBEX... + git clone -b ibex-2.8.9.20250626 https://github.com/lebarsfa/ibex-lib.git ; # To test a specific version of IBEX... cd ibex-lib ; mkdir build && cd build ; cmake -E env CXXFLAGS="-fPIC" CFLAGS="-fPIC" cmake -DCMAKE_INSTALL_PREFIX=$HOME/ibex-lib/build_install -DCMAKE_BUILD_TYPE=Debug .. ; diff --git a/scripts/docker/build_pybinding.sh b/scripts/docker/build_pybinding.sh index c1a9b9092..a33291d35 100755 --- a/scripts/docker/build_pybinding.sh +++ b/scripts/docker/build_pybinding.sh @@ -2,7 +2,7 @@ set -e -x -wget https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20241117/ibex_$(uname -m)_manylinux_2_28.zip --no-check-certificate -nv +wget https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20250626/ibex_$(uname -m)_manylinux_2_28.zip --no-check-certificate -nv unzip -q ibex_$(uname -m)_manylinux_2_28.zip rm -Rf ibex_$(uname -m)_manylinux_2_28.zip sudo cp -Rf ibex/* /usr/local/ diff --git a/scripts/wheels/gencodacwhl.sh b/scripts/wheels/gencodacwhl.sh index e38406c24..2378d0d1c 100644 --- a/scripts/wheels/gencodacwhl.sh +++ b/scripts/wheels/gencodacwhl.sh @@ -4,7 +4,7 @@ read -p "Please enter the codac package version (X.Y.Z[.D]) : " PACKAGE_VERSION PY_V_MAJ=3 -for PY_V_MIN in 8 9 10 11 12 13; do +for PY_V_MIN in 8 9 10 11 12 13 14; do for CPCFG in "-macosx_10_9_x86_64" "-macosx_11_0_arm64" "-manylinux_2_17_x86_64.manylinux_2_28_x86_64" "-manylinux_2_17_aarch64.manylinux_2_28_aarch64" "-win32" "-win_amd64"; do rm -Rf codac-$PACKAGE_VERSION-cp$PY_V_MAJ$PY_V_MIN-cp$PY_V_MAJ$PY_V_MIN$CPCFG.whl ; wget https://github.com/codac-team/codac/releases/download/v$PACKAGE_VERSION/codac-$PACKAGE_VERSION-cp$PY_V_MAJ$PY_V_MIN-cp$PY_V_MAJ$PY_V_MIN$CPCFG.whl --no-check-certificate -nv done