@@ -34,35 +34,39 @@ jobs:
3434 fail-fast : false
3535 matrix :
3636 python-version : ["3.9", "3.13"]
37- runs-on : [ubuntu-latest, ubuntu-24.04-arm, macos-latest]
37+ runs-on : [ubuntu-latest, ubuntu-24.04-arm, macos-latest, windows-latest ]
3838 arch : [auto64]
3939 steps :
4040 - uses : actions/checkout@v4
4141 with :
4242 submodules : recursive
43+ fetch-depth : 0
4344
4445 - uses : actions/setup-python@v5
4546 with :
4647 python-version : ${{ matrix.python-version }}
4748
49+ - name : Install compiler tools on windows
50+ if : runner.os == 'windows'
51+ run : |
52+ choco install boost-msvc-14.1
53+ vcpkg.exe install cgal getopt
54+
4855 - name : Install compiler tools on macOS
4956 if : runner.os == 'macOS'
5057 run : |
51- brew install make automake swig gmp mpfr boost libtool
58+ brew reinstall gfortran
59+ brew install swig boost cgal gmp mpfr
5260
5361 - name : Install extra deps on Linux
5462 if : runner.os == 'Linux'
55- run : sudo apt-get update && sudo apt-get install -y libboost-dev libmpfr-dev swig autoconf libtool
63+ run : sudo apt-get update && sudo apt-get install -y libboost-dev libmpfr-dev swig libcgal-dev
5664
57- - name : Install package (MacOS )
65+ - name : Install package (macOS )
5866 if : runner.os == 'macOS'
5967 run : |
6068 eval "$(/opt/homebrew/bin/brew shellenv)"
6169 export PATH="/opt/homebrew/opt/make/libexec/gnubin:/opt/homebrew/opt/libtool/libexec/gnubin:$PATH"
62- export CPPFLAGS+="-I/opt/homebrew/include -L/opt/homebrew/lib"
63- export CXXFLAGS+="-I/opt/homebrew/include -L/opt/homebrew/lib"
64- export CFLAGS+="-I/opt/homebrew/include -L/opt/homebrew/lib"
65- export LDFLAGS+="-L/opt/homebrew/lib"
6670 python -m pip install '.[test]' -v
6771
6872 - name : Install package (Linux)
7175 echo $PATH
7276 python -m pip install '.[test]' -v
7377
78+ - name : Install package (windows)
79+ if : runner.os == 'windows'
80+ run : |
81+ $Env:Path
82+ $Env:CGAL_DIR = 'C:\vcpkg\packages\cgal_x64-windows\share\cgal'
83+ $Env:GMP_INC_DIR = 'C:\vcpkg\packages\gmp_x64-windows\include'
84+ $Env:GMP_LIB_DIR = 'C:\vcpkg\packages\gmp_x64-windows\lib'
85+ $Env:MPFR_INC_DIR = 'C:\vcpkg\packages\mpfr_x64-windows\include'
86+ $Env:MPFR_LIB_DIR = 'C:\vcpkg\packages\mpfr_x64-windows\lib'
87+ $Env:CMAKE_PREFIX_PATH = "C:\vcpkg\packages\getopt-win32_x64-windows\share\unofficial-getopt-win32;$Env:CMAKE_PREFIX_PATH"
88+ python -m pip install '.[test]' -v -C"cmake.define.GMP_DLL_TO_COPY"="C:\\vcpkg\\packages\\gmp_x64-windows\\bin\\gmp-10.dll" -C"cmake.define.FASTJET_ENABLE_DEBUG"="OFF" -C"cmake.define.SISCONE_ENABLE_DEBUG"="OFF"
89+
7490 - name : List installed Python packages
7591 run : python -m pip list
7692
@@ -83,25 +99,33 @@ jobs:
8399 strategy :
84100 fail-fast : false
85101 matrix :
86- os : [ubuntu-latest, ubuntu-24.04-arm, macos-latest, macos-13]
102+ os : [ubuntu-latest, ubuntu-24.04-arm, macos-latest, macos-13, windows-latest ]
87103 python : [313]
88104 arch : [auto64]
89105
90106 steps :
91107 - uses : actions/checkout@v4
92108 with :
93109 submodules : recursive
110+ fetch-depth : 0
94111
95112 - name : Install compiler tools on macOS
96113 if : runner.os == 'macOS'
97114 run : |
98- brew install make automake swig mpfr boost libtool
99- echo "PATH=/opt/homebrew/opt/make/libexec/gnubin:/opt/homebrew/opt/libtool/libexec/gnubin:$PATH" >> "$GITHUB_ENV"
100- echo "CPPFLAGS=-I/opt/homebrew/include -L/opt/homebrew/lib $CPPFLAGS" >> "$GITHUB_ENV"
101- echo "CXXFLAGS=-I/opt/homebrew/include -L/opt/homebrew/lib $CXXFLAGS" >> "$GITHUB_ENV"
102- echo "CFLAGS=-I/opt/homebrew/include -L/opt/homebrew/lib $CFLAGS" >> "$GITHUB_ENV"
103- echo "LDFLAGS=-L/opt/homebrew/lib $LDFLAGS" >> "$GITHUB_ENV"
104115 echo "MACOSX_DEPLOYMENT_TARGET=11.0" >> "$GITHUB_ENV"
116+ brew uninstall gcc@12 gcc@13 gnupg gnutls isl libmpc nettle gcc mpfr gmp --ignore-dependencies
117+ brew install m4 make automake autoconf libtool swig boost cgal --ignore-dependencies
118+ echo "PATH=/opt/homebrew/opt/make/libexec/gnubin:/opt/homebrew/opt/libtool/libexec/gnubin:$PATH" >> "$GITHUB_ENV"
119+
120+ - name : Install compiler tools on windows
121+ if : runner.os == 'windows'
122+ run : |
123+ choco install boost-msvc-14.1
124+ vcpkg.exe install cgal getopt
125+
126+ - name : Install extra deps on Linux
127+ if : runner.os == 'Linux'
128+ run : sudo apt-get update && sudo apt-get install -y libboost-dev libmpfr-dev swig libcgal-dev
105129
106130 - name : Clone gmp
107131 if : runner.os == 'macOS'
@@ -110,7 +134,7 @@ jobs:
110134 repository : gmp-mirror/gmp-6.3
111135 path : gmp-6.3
112136
113- - name : Build gmp from source for MACOSX_DEPLOYMENT_TARGET
137+ - name : Build gmp from source for MACOSX_DEPLOYMENT_TARGET=11.0
114138 if : runner.os == 'macOS'
115139 working-directory : gmp-6.3
116140 run : |
@@ -124,11 +148,40 @@ jobs:
124148 make --jobs
125149 make install
126150
151+ - name : Get mpfr release
152+ if : runner.os == 'macOS'
153+ run : |
154+ curl -Lk https://www.mpfr.org/mpfr-current/mpfr-4.2.2.tar.gz -o mpfr-4.2.2.tar.gz
155+ tar -xzf mpfr-4.2.2.tar.gz
156+
157+ - name : Build mpfr from source for MACOSX_DEPLOYMENT_TARGET=11.0
158+ if : runner.os == 'macOS'
159+ working-directory : mpfr-4.2.2
160+ run : |
161+ autoreconf -i -f
162+ ./configure --help
163+ ./configure \
164+ --prefix=$(brew --prefix) \
165+ --with-gmp=$(brew --prefix)
166+ make --jobs
167+ make install
168+
127169128170 env :
129171 CIBW_ARCHS : ${{ matrix.arch }}
130172 CIBW_BUILD : cp${{ matrix.python }}-*
131- CIBW_BUILD_VERBOSITY : 2
173+ CIBW_BUILD_VERBOSITY : 1
174+ CIBW_CONFIG_SETTINGS_WINDOWS : >
175+ "cmake.define.GMP_DLL_TO_COPY"="C:\\\\vcpkg\\\\packages\\\\gmp_x64-windows\\\\bin\\\\gmp-10.dll"
176+ "cmake.define.unofficial-getopt-win32_DIR"="C:\\vcpkg\\packages\\getopt-win32_x64-windows\\share\\unofficial-getopt-win32"
177+ "cmake.define.FASTJET_ENABLE_DEBUG"="OFF"
178+ "cmake.define.SISCONE_ENABLE_DEBUG"="OFF"
179+ CIBW_ENVIRONMENT_WINDOWS : >
180+ CGAL_DIR='C:\vcpkg\packages\cgal_x64-windows\share\cgal'
181+ GMP_INC_DIR='C:\vcpkg\packages\gmp_x64-windows\include'
182+ GMP_LIB_DIR='C:\vcpkg\packages\gmp_x64-windows\lib'
183+ MPFR_INC_DIR='C:\vcpkg\packages\mpfr_x64-windows\include'
184+ MPFR_LIB_DIR='C:\vcpkg\packages\mpfr_x64-windows\lib'
132185
133186 - name : Upload wheels
134187 uses : actions/upload-artifact@v4
0 commit comments