Skip to content

build: fastjet 3.5.0; fjcontrib cms-externals rebase; cmake build #342

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jun 10, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
99 changes: 82 additions & 17 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,35 +34,45 @@ jobs:
fail-fast: false
matrix:
python-version: ["3.9", "3.13"]
runs-on: [ubuntu-latest, ubuntu-24.04-arm, macos-latest]
runs-on: [ubuntu-latest, ubuntu-24.04-arm, macos-latest] # , windows-latest]
arch: [auto64]
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0

- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Install compiler tools on windows
if: runner.os == 'windows'
run: |
Install-Module -Name 7Zip4Powershell -Force
Invoke-Webrequest -Uri https://archives.boost.io/release/1.88.0/source/boost_1_88_0.zip -OutFile boost_1_88_0.zip
Invoke-Webrequest -Uri https://github.com/CGAL/cgal/releases/download/v6.0.1/CGAL-6.0.1.zip -OutFile CGAL-6.0.1.zip
Invoke-Webrequest -Uri https://github.com/CGAL/cgal/releases/download/v6.0.1/CGAL-6.0.1-win64-auxiliary-libraries-gmp-mpfr.zip -OutFile cgal_auxlibs.zip
Expand-7Zip boost_1_88_0.zip .\boost_1_88_0
Expand-7Zip CGAL-6.0.1.zip .\CGAL-6.0.1
Expand-7Zip cgal_auxlibs.zip .\cgal_auxlibs
vcpkg.exe install getopt

- name: Install compiler tools on macOS
if: runner.os == 'macOS'
run: |
brew install make automake swig gmp mpfr boost libtool
brew reinstall gfortran
brew install swig boost cgal gmp mpfr

- name: Install extra deps on Linux
if: runner.os == 'Linux'
run: sudo apt-get update && sudo apt-get install -y libboost-dev libmpfr-dev swig autoconf libtool
run: sudo apt-get update && sudo apt-get install -y libboost-dev libmpfr-dev swig libcgal-dev

- name: Install package (MacOS)
- name: Install package (macOS)
if: runner.os == 'macOS'
run: |
eval "$(/opt/homebrew/bin/brew shellenv)"
export PATH="/opt/homebrew/opt/make/libexec/gnubin:/opt/homebrew/opt/libtool/libexec/gnubin:$PATH"
export CPPFLAGS+="-I/opt/homebrew/include -L/opt/homebrew/lib"
export CXXFLAGS+="-I/opt/homebrew/include -L/opt/homebrew/lib"
export CFLAGS+="-I/opt/homebrew/include -L/opt/homebrew/lib"
export LDFLAGS+="-L/opt/homebrew/lib"
python -m pip install '.[test]' -v

- name: Install package (Linux)
Expand All @@ -71,6 +81,17 @@ jobs:
echo $PATH
python -m pip install '.[test]' -v

- name: Install package (windows)
if: runner.os == 'windows'
run: |
$Env:Path
$Env:GMP_INC_DIR = "${PWD}\cgal_auxlibs\auxiliary\gmp\include"
$Env:GMP_LIB_DIR = "${PWD}\cgal_auxlibs\auxiliary\gmp\lib"
$Env:MPFR_INC_DIR = "${PWD}\cgal_auxlibs\auxiliary\gmp\include"
$Env:MPFR_LIB_DIR = "${PWD}\cgal_auxlibs\auxiliary\gmp\lib"
$Env:CMAKE_PREFIX_PATH = "C:\vcpkg\packages\getopt-win32_x64-windows\share\unofficial-getopt-win32;$Env:CMAKE_PREFIX_PATH"
python -m pip install '.[test]' -v -C"cmake.define.GMP_DLL_TO_COPY"="C:\\a\\fastjet\\fastjet\\cgal_auxlibs\\auxiliary\\gmp\\bin\\gmp-10.dll" -C"cmake.define.Boost_INCLUDE_DIR"="${PWD}\boost_1_88_0\boost_1_88_0" -C"cmake.define.CGAL_DIR"="${PWD}\CGAL-6.0.1\CGAL-6.0.1" -C"cmake.define.FASTJET_ENABLE_DEBUG"="OFF" -C"cmake.define.SISCONE_ENABLE_DEBUG"="OFF"

- name: List installed Python packages
run: python -m pip list

Expand All @@ -83,25 +104,39 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, ubuntu-24.04-arm, macos-latest, macos-13]
os: [ubuntu-latest, ubuntu-24.04-arm, macos-latest, macos-13] # , windows-latest]
python: [313]
arch: [auto64]

steps:
- uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0

- name: Install compiler tools on macOS
if: runner.os == 'macOS'
run: |
brew install make automake swig mpfr boost libtool
echo "PATH=/opt/homebrew/opt/make/libexec/gnubin:/opt/homebrew/opt/libtool/libexec/gnubin:$PATH" >> "$GITHUB_ENV"
echo "CPPFLAGS=-I/opt/homebrew/include -L/opt/homebrew/lib $CPPFLAGS" >> "$GITHUB_ENV"
echo "CXXFLAGS=-I/opt/homebrew/include -L/opt/homebrew/lib $CXXFLAGS" >> "$GITHUB_ENV"
echo "CFLAGS=-I/opt/homebrew/include -L/opt/homebrew/lib $CFLAGS" >> "$GITHUB_ENV"
echo "LDFLAGS=-L/opt/homebrew/lib $LDFLAGS" >> "$GITHUB_ENV"
echo "MACOSX_DEPLOYMENT_TARGET=11.0" >> "$GITHUB_ENV"
brew uninstall --force --ignore-dependencies gcc@12 gcc@13 gnupg gnutls isl libmpc nettle gcc mpfr gmp
brew install --ignore-dependencies m4 make automake autoconf libtool swig boost cgal
echo "PATH=/opt/homebrew/opt/make/libexec/gnubin:/opt/homebrew/opt/libtool/libexec/gnubin:$PATH" >> "$GITHUB_ENV"

- name: Install compiler tools on windows
if: runner.os == 'windows'
run: |
Install-Module -Name 7Zip4Powershell -Force
Invoke-Webrequest -Uri https://archives.boost.io/release/1.88.0/source/boost_1_88_0.zip -OutFile boost_1_88_0.zip
Invoke-Webrequest -Uri https://github.com/CGAL/cgal/releases/download/v6.0.1/CGAL-6.0.1.zip -OutFile CGAL-6.0.1.zip
Invoke-Webrequest -Uri https://github.com/CGAL/cgal/releases/download/v6.0.1/CGAL-6.0.1-win64-auxiliary-libraries-gmp-mpfr.zip -OutFile cgal_auxlibs.zip
Expand-7Zip boost_1_88_0.zip .\boost_1_88_0
Expand-7Zip CGAL-6.0.1.zip .\CGAL-6.0.1
Expand-7Zip cgal_auxlibs.zip .\cgal_auxlibs
vcpkg.exe install getopt

- name: Install extra deps on Linux
if: runner.os == 'Linux'
run: sudo apt-get update && sudo apt-get install -y libboost-dev libmpfr-dev swig libcgal-dev

- name: Clone gmp
if: runner.os == 'macOS'
Expand All @@ -110,7 +145,7 @@ jobs:
repository: gmp-mirror/gmp-6.3
path: gmp-6.3

- name: Build gmp from source for MACOSX_DEPLOYMENT_TARGET
- name: Build gmp from source for MACOSX_DEPLOYMENT_TARGET=11.0
if: runner.os == 'macOS'
working-directory: gmp-6.3
run: |
Expand All @@ -124,11 +159,41 @@ jobs:
make --jobs
make install

- name: Get mpfr release
if: runner.os == 'macOS'
run: |
curl -Lk https://www.mpfr.org/mpfr-current/mpfr-4.2.2.tar.gz -o mpfr-4.2.2.tar.gz
tar -xzf mpfr-4.2.2.tar.gz

- name: Build mpfr from source for MACOSX_DEPLOYMENT_TARGET=11.0
if: runner.os == 'macOS'
working-directory: mpfr-4.2.2
run: |
autoreconf -i -f
./configure --help
./configure \
--prefix=$(brew --prefix) \
--with-gmp=$(brew --prefix)
make --jobs
make install

- uses: pypa/cibuildwheel@v2.23
env:
CIBW_ARCHS: ${{ matrix.arch }}
CIBW_BUILD: cp${{ matrix.python }}-*
CIBW_BUILD_VERBOSITY: 2
CIBW_BUILD_VERBOSITY: 1
CIBW_CONFIG_SETTINGS_WINDOWS: >
"cmake.define.GMP_DLL_TO_COPY"="C:\\\\a\\\\fastjet\\\\fastjet\\\\cgal_auxlibs\\\\auxiliary\\\\gmp\\\\bin\\\\gmp-10.dll"
"cmake.define.Boost_INCLUDE_DIR"="C:\a\fastjet\fastjet\boost_1_88_0\boost_1_88_0"
"cmake.define.CGAL_DIR"="C:\a\fastjet\fastjet\CGAL-6.0.1\CGAL-6.0.1"
"cmake.define.unofficial-getopt-win32_DIR"="C:\vcpkg\packages\getopt-win32_x64-windows\share\unofficial-getopt-win32"
"cmake.define.FASTJET_ENABLE_DEBUG"="OFF"
"cmake.define.SISCONE_ENABLE_DEBUG"="OFF"
CIBW_ENVIRONMENT_WINDOWS: >
GMP_INC_DIR='C:\a\fastjet\fastjet\cgal_auxlibs\auxiliary\gmp\include'
GMP_LIB_DIR='C:\a\fastjet\fastjet\cgal_auxlibs\auxiliary\gmp\lib'
MPFR_INC_DIR='C:\a\fastjet\fastjet\cgal_auxlibs\auxiliary\gmp\include'
MPFR_LIB_DIR='C:\a\fastjet\fastjet\cgal_auxlibs\auxiliary\gmp\lib'

- name: Upload wheels
uses: actions/upload-artifact@v4
Expand Down
59 changes: 50 additions & 9 deletions .github/workflows/wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ jobs:
- uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0

- name: Build SDist
run: pipx run build --sdist
Expand All @@ -33,24 +34,34 @@ jobs:
fail-fast: false
matrix:
python: [39, 310, 311, 312, 313]
os: [ubuntu-latest, ubuntu-24.04-arm, macos-latest, macos-13]
os: [ubuntu-latest, ubuntu-24.04-arm, macos-latest, macos-13] # , windows-latest]
arch: [auto64]

steps:
- uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0

- name: Install compiler tools on macOS
if: runner.os == 'macOS'
run: |
brew install make automake swig mpfr boost libtool
echo "PATH=/opt/homebrew/opt/make/libexec/gnubin:/opt/homebrew/opt/libtool/libexec/gnubin:$PATH" >> "$GITHUB_ENV"
echo "CPPFLAGS=-I/opt/homebrew/include -L/opt/homebrew/lib $CPPFLAGS" >> "$GITHUB_ENV"
echo "CXXFLAGS=-I/opt/homebrew/include -L/opt/homebrew/lib $CXXFLAGS" >> "$GITHUB_ENV"
echo "CFLAGS=-I/opt/homebrew/include -L/opt/homebrew/lib $CFLAGS" >> "$GITHUB_ENV"
echo "LDFLAGS=-L/opt/homebrew/lib $LDFLAGS" >> "$GITHUB_ENV"
echo "MACOSX_DEPLOYMENT_TARGET=11.0" >> "$GITHUB_ENV"
brew uninstall --force --ignore-dependencies gcc@12 gcc@13 gnupg gnutls isl libmpc nettle gcc mpfr gmp
brew install --ignore-dependencies m4 make automake autoconf libtool swig boost cgal
echo "PATH=/opt/homebrew/opt/make/libexec/gnubin:/opt/homebrew/opt/libtool/libexec/gnubin:$PATH" >> "$GITHUB_ENV"

- name: Install compiler tools on windows
if: runner.os == 'windows'
run: |
Install-Module -Name 7Zip4Powershell -Force
Invoke-Webrequest -Uri https://archives.boost.io/release/1.88.0/source/boost_1_88_0.zip -OutFile boost_1_88_0.zip
Invoke-Webrequest -Uri https://github.com/CGAL/cgal/releases/download/v6.0.1/CGAL-6.0.1.zip -OutFile CGAL-6.0.1.zip
Invoke-Webrequest -Uri https://github.com/CGAL/cgal/releases/download/v6.0.1/CGAL-6.0.1-win64-auxiliary-libraries-gmp-mpfr.zip -OutFile cgal_auxlibs.zip
Expand-7Zip boost_1_88_0.zip .\boost_1_88_0
Expand-7Zip CGAL-6.0.1.zip .\CGAL-6.0.1
Expand-7Zip cgal_auxlibs.zip .\cgal_auxlibs
vcpkg.exe install getopt

- name: Clone gmp
if: runner.os == 'macOS'
Expand All @@ -74,11 +85,41 @@ jobs:
make --jobs
make install

- name: Get mpfr release
if: runner.os == 'macOS'
run: |
curl -Lk https://www.mpfr.org/mpfr-current/mpfr-4.2.2.tar.gz -o mpfr-4.2.2.tar.gz
tar -xzf mpfr-4.2.2.tar.gz

- name: Build mpfr from source for MACOSX_DEPLOYMENT_TARGET=11.0
if: runner.os == 'macOS'
working-directory: mpfr-4.2.2
run: |
autoreconf -i -f
./configure --help
./configure \
--prefix=$(brew --prefix) \
--with-gmp=$(brew --prefix)
make --jobs
make install

- uses: pypa/cibuildwheel@v2.23
env:
CIBW_ARCHS: ${{ matrix.arch }}
CIBW_BUILD: cp${{ matrix.python }}-*
CIBW_BUILD_VERBOSITY: 2
CIBW_BUILD_VERBOSITY: 1
CIBW_CONFIG_SETTINGS_WINDOWS: >
"cmake.define.GMP_DLL_TO_COPY"="C:\\\\a\\\\fastjet\\\\fastjet\\\\cgal_auxlibs\\\\auxiliary\\\\gmp\\\\bin\\\\gmp-10.dll"
"cmake.define.Boost_INCLUDE_DIR"="C:\a\fastjet\fastjet\boost_1_88_0\boost_1_88_0"
"cmake.define.CGAL_DIR"="C:\a\fastjet\fastjet\CGAL-6.0.1\CGAL-6.0.1"
"cmake.define.unofficial-getopt-win32_DIR"="C:\vcpkg\packages\getopt-win32_x64-windows\share\unofficial-getopt-win32"
"cmake.define.FASTJET_ENABLE_DEBUG"="OFF"
"cmake.define.SISCONE_ENABLE_DEBUG"="OFF"
CIBW_ENVIRONMENT_WINDOWS: >
GMP_INC_DIR='C:\a\fastjet\fastjet\cgal_auxlibs\auxiliary\gmp\include'
GMP_LIB_DIR='C:\a\fastjet\fastjet\cgal_auxlibs\auxiliary\gmp\lib'
MPFR_INC_DIR='C:\a\fastjet\fastjet\cgal_auxlibs\auxiliary\gmp\include'
MPFR_LIB_DIR='C:\a\fastjet\fastjet\cgal_auxlibs\auxiliary\gmp\lib'

- name: Upload wheels
uses: actions/upload-artifact@v4
Expand All @@ -98,7 +139,7 @@ jobs:

- name: Install extra deps on Linux
if: runner.os == 'Linux'
run: sudo apt-get update && sudo apt-get install -y libboost-dev swig autoconf libtool
run: sudo apt-get update && sudo apt-get install -y libboost-dev swig autoconf libtool libcgal-dev

- name: test sdist
run: python -m pip install dist/*.tar.gz
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
src/fastjet/version.py
_swig.py
_fastjet_core
*.so.[0-9]
Expand Down
15 changes: 4 additions & 11 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -41,18 +41,11 @@ repos:
hooks:
- id: setup-cfg-fmt

- repo: https://github.com/pycqa/flake8
rev: 7.2.0
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.11.4
hooks:
- id: flake8
exclude: docs/conf.py
additional_dependencies: [flake8-bugbear, flake8-print]

- repo: https://github.com/mgedmin/check-manifest
rev: "0.50"
hooks:
- id: check-manifest
stages: [manual]
- id: ruff
args: [--fix, --show-fixes]

- repo: https://github.com/pre-commit/mirrors-clang-format
rev: "v20.1.0"
Expand Down
Loading
Loading