Skip to content

Commit f921d8e

Browse files
committed
Fixing python build
1 parent ee91e3e commit f921d8e

2 files changed

Lines changed: 24 additions & 5 deletions

File tree

CMakeLists.txt

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -373,6 +373,21 @@ if(POLICY CMP0169)
373373
cmake_policy(SET CMP0169 OLD)
374374
endif()
375375

376+
# Collect macOS-specific flags to forward to child CMake builds so that
377+
# cross-compilation (e.g. universal2, x86_64 under Rosetta) works correctly.
378+
# CMAKE_OSX_ARCHITECTURES is set by scikit-build-core when building Python wheels.
379+
set(_osx_cmake_args "")
380+
set(_osx_arch_cxxflags "")
381+
if(CMAKE_OSX_ARCHITECTURES)
382+
list(APPEND _osx_cmake_args "-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}")
383+
foreach(_arch ${CMAKE_OSX_ARCHITECTURES})
384+
string(APPEND _osx_arch_cxxflags " -arch ${_arch}")
385+
endforeach()
386+
endif()
387+
if(CMAKE_OSX_DEPLOYMENT_TARGET)
388+
list(APPEND _osx_cmake_args "-DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}")
389+
endif()
390+
376391
# ---- CryptoMiniSat5 and its deps (cadical, cadiback) ----
377392
# cadical and cadiback are only needed when auto-building CryptoMiniSat5.
378393
# cadiback's configure looks for ../cadical, so both must be siblings under deps/.
@@ -397,7 +412,7 @@ if(NOT cryptominisat5_DIR)
397412
if(NOT EXISTS "${_cadical_lib}")
398413
message(STATUS "CaDiCaL: building in ${_cadical_src}")
399414
execute_process(
400-
COMMAND bash -c "CXX=${CMAKE_CXX_COMPILER} CXXFLAGS=-fPIC ./configure --no-contracts --no-tracing --fp"
415+
COMMAND bash -c "CXX=${CMAKE_CXX_COMPILER} CXXFLAGS=\"-fPIC${_osx_arch_cxxflags}\" ./configure --no-contracts --no-tracing --fp"
401416
WORKING_DIRECTORY "${_cadical_src}"
402417
RESULT_VARIABLE _cadical_cfg_ret
403418
)
@@ -434,7 +449,7 @@ if(NOT cryptominisat5_DIR)
434449
if(NOT EXISTS "${_cadiback_lib}")
435450
message(STATUS "CaDiBaCk: building in ${_cadiback_src}")
436451
execute_process(
437-
COMMAND bash -c "CXX=${CMAKE_CXX_COMPILER} CXXFLAGS=-fPIC ./configure --release"
452+
COMMAND bash -c "CXX=${CMAKE_CXX_COMPILER} CXXFLAGS=\"-fPIC${_osx_arch_cxxflags}\" ./configure --release"
438453
WORKING_DIRECTORY "${_cadiback_src}"
439454
RESULT_VARIABLE _cadiback_cfg_ret
440455
)
@@ -477,6 +492,7 @@ if(NOT cryptominisat5_DIR)
477492
-Dcadiback_DIR=${cadiback_DIR}
478493
-DGMP_LIBRARY=${GMP_LIBRARY}
479494
-DGMPXX_LIBRARY=${GMPXX_LIBRARY}
495+
${_osx_cmake_args}
480496
RESULT_VARIABLE _cms_cfg_ret
481497
)
482498
if(NOT _cms_cfg_ret EQUAL 0)
@@ -526,6 +542,7 @@ if(NOT arjun_DIR)
526542
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
527543
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
528544
-DBUILD_SHARED_LIBS=${BUILD_SHARED_LIBS}
545+
${_osx_cmake_args}
529546
RESULT_VARIABLE _sbva_cfg_ret
530547
)
531548
if(NOT _sbva_cfg_ret EQUAL 0)
@@ -563,6 +580,7 @@ if(NOT arjun_DIR)
563580
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
564581
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
565582
-DBUILD_SHARED_LIBS=${BUILD_SHARED_LIBS}
583+
${_osx_cmake_args}
566584
RESULT_VARIABLE _tdec_cfg_ret
567585
)
568586
if(NOT _tdec_cfg_ret EQUAL 0)
@@ -606,6 +624,7 @@ if(NOT arjun_DIR)
606624
-DGMP_LIBRARY=${GMP_LIBRARY}
607625
-DGMPXX_LIBRARY=${GMPXX_LIBRARY}
608626
-DGMP_INCLUDE_DIR=${GMP_INCLUDE_DIR}
627+
${_osx_cmake_args}
609628
RESULT_VARIABLE _arjun_cfg_ret
610629
)
611630
if(NOT _arjun_cfg_ret EQUAL 0)
@@ -652,6 +671,7 @@ if(USE_EVALMAXSAT)
652671
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
653672
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
654673
-DBUILD_SHARED_LIBS=${BUILD_SHARED_LIBS}
674+
${_osx_cmake_args}
655675
RESULT_VARIABLE _evalmaxsat_cfg_ret
656676
)
657677
if(NOT _evalmaxsat_cfg_ret EQUAL 0)

pyproject.toml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ classifiers = [
1616
"Operating System :: OS Independent",
1717
"Programming Language :: C++",
1818
"Programming Language :: Python :: 3",
19-
"Programming Language :: Python :: 3.8",
2019
"Programming Language :: Python :: 3.9",
2120
"Programming Language :: Python :: 3.10",
2221
"Programming Language :: Python :: 3.11",
@@ -25,7 +24,7 @@ classifiers = [
2524
"License :: OSI Approved :: MIT License",
2625
"Topic :: Utilities"
2726
]
28-
requires-python = ">=3.8"
27+
requires-python = ">=3.9"
2928
readme = "python/README.md"
3029

3130
[tool.scikit-build]
@@ -47,7 +46,7 @@ wheel.packages = [] # pure-Python packages to include (none; extension
4746
install.components = ["python"] # only install the pyapproxmc.so, not the full library
4847

4948
[tool.cibuildwheel]
50-
build = "cp38-* cp39-* cp310-* cp311-* cp312-* cp313-*"
49+
build = "cp39-* cp310-* cp311-* cp312-* cp313-*"
5150
skip = "pp* *-musllinux* *i686"
5251
build-frontend = "build"
5352
test-requires = "pytest"

0 commit comments

Comments
 (0)