From 5cca46f3d17dd33baf8e62d08f434958eb39f9fe Mon Sep 17 00:00:00 2001 From: max Date: Thu, 30 Jan 2025 21:44:11 -0500 Subject: [PATCH] c flags??? --- .github/actions/setup_base/action.yml | 7 +++-- .../workflows/build_test_release_eudsl.yml | 12 +++------ projects/eudsl-llvmpy/pyproject.toml | 3 +++ projects/eudsl-nbgen/pyproject.toml | 3 +++ projects/eudsl-py/pyproject.toml | 3 +++ projects/eudsl-tblgen/CMakeLists.txt | 13 +++++++--- projects/eudsl-tblgen/pyproject.toml | 26 ++++++++++++++----- 7 files changed, 47 insertions(+), 20 deletions(-) diff --git a/.github/actions/setup_base/action.yml b/.github/actions/setup_base/action.yml index 0b494f8..2d242e4 100644 --- a/.github/actions/setup_base/action.yml +++ b/.github/actions/setup_base/action.yml @@ -118,11 +118,14 @@ runs: vcvarsall: ${{ startsWith(inputs.os, 'windows') }} # https://github.com/actions/runner-images/issues/10035 + # https://github.com/actions/runner-images/blob/main/images/macos/macos-13-Readme.md#xcode - name: Use the Command Line Tools shell: bash if: ${{ startsWith(inputs.os, 'macos') && inputs.arch == 'x86_64' }} run: | - sudo xcode-select -s /Library/Developer/CommandLineTools + + # sudo xcode-select -s /Library/Developer/CommandLineTools + sudo xcode-select -s /Applications/Xcode_15.2.app - name: "Set CC/CXX" shell: bash @@ -179,7 +182,7 @@ runs: echo "CMAKE_CXX_COMPILER_LAUNCHER=ccache" >> $GITHUB_ENV echo "Python3_EXECUTABLE=$(which $python3_command)" >> $GITHUB_ENV - if [[ "${{ inputs.arch }}" != "wasm32-wasi" ]]; then + if [[ "${{ inputs.os }}" == "ubuntu" ]] || [[ "${{ inputs.os }}" == "windows" ]]; then echo "CMAKE_EXE_LINKER_FLAGS_INIT=-fuse-ld=lld" >> $GITHUB_ENV echo "CMAKE_SHARED_LINKER_FLAGS_INIT=-fuse-ld=lld" >> $GITHUB_ENV echo "CMAKE_MODULE_LINKER_FLAGS_INIT=-fuse-ld=lld" >> $GITHUB_ENV diff --git a/.github/workflows/build_test_release_eudsl.yml b/.github/workflows/build_test_release_eudsl.yml index a626a3f..c1c7d5d 100644 --- a/.github/workflows/build_test_release_eudsl.yml +++ b/.github/workflows/build_test_release_eudsl.yml @@ -122,14 +122,10 @@ jobs: # these have to match the deployment targets of the LLVM build runners # ld: warning: object file (libLLVMTableGen.a[3](Error.cpp.o)) was built for newer 'macOS' version (13.7) than being linked (10.13) - if [[ "${{ matrix.runs-on }}" == "macos-14" ]]; then - echo MACOSX_DEPLOYMENT_TARGET=14.0 >> $GITHUB_ENV - fi - # https://github.com/wjakob/nanobind/issues/433 - # i don't know why i need this here but the llvm build doesn't? - if [[ "${{ matrix.runs-on }}" == "macos-13" ]]; then - echo CMAKE_CXX_FLAGS="-fno-aligned-allocation" >> $GITHUB_ENV - fi + # alse aligned deallocation function of type 'void (void *, std::align_val_t) noexcept' is only available on macOS 10.14 or newer + # if [[ "${{ matrix.runs-on }}" == "macos" ]]; then + # echo MACOSX_DEPLOYMENT_TARGET=14.0 >> $GITHUB_ENV + # fi $python3_command -m pip install cibuildwheel if [[ "${{ matrix.os }}" == "ubuntu" ]] && [[ "${{ matrix.arch }}" == "aarch64" ]]; then diff --git a/projects/eudsl-llvmpy/pyproject.toml b/projects/eudsl-llvmpy/pyproject.toml index c3ee20e..4edf5d2 100644 --- a/projects/eudsl-llvmpy/pyproject.toml +++ b/projects/eudsl-llvmpy/pyproject.toml @@ -35,6 +35,9 @@ CMAKE_C_FLAGS = { env = "CMAKE_C_FLAGS", default = "" } CMAKE_CXX_FLAGS = { env = "CMAKE_CXX_FLAGS", default = "" } CMAKE_C_COMPILER_LAUNCHER = { env = "CMAKE_C_COMPILER_LAUNCHER", default = "" } CMAKE_CXX_COMPILER_LAUNCHER = { env = "CMAKE_CXX_COMPILER_LAUNCHER", default = "" } +CMAKE_EXE_LINKER_FLAGS_INIT = { env = "CMAKE_EXE_LINKER_FLAGS_INIT", default = "" } +CMAKE_SHARED_LINKER_FLAGS_INIT = { env = "CMAKE_SHARED_LINKER_FLAGS_INIT", default = "" } +CMAKE_MODULE_LINKER_FLAGS_INIT = { env = "CMAKE_MODULE_LINKER_FLAGS_INIT", default = "" } CMAKE_C_VISIBILITY_PRESET = "hidden" CMAKE_CXX_VISIBILITY_PRESET = "hidden" CMAKE_VISIBILITY_INLINES_HIDDEN = "ON" diff --git a/projects/eudsl-nbgen/pyproject.toml b/projects/eudsl-nbgen/pyproject.toml index 9a19c51..b4daf54 100644 --- a/projects/eudsl-nbgen/pyproject.toml +++ b/projects/eudsl-nbgen/pyproject.toml @@ -31,6 +31,9 @@ CMAKE_C_FLAGS = { env = "CMAKE_C_FLAGS", default = "" } CMAKE_CXX_FLAGS = { env = "CMAKE_CXX_FLAGS", default = "" } CMAKE_C_COMPILER_LAUNCHER = { env = "CMAKE_C_COMPILER_LAUNCHER", default = "" } CMAKE_CXX_COMPILER_LAUNCHER = { env = "CMAKE_CXX_COMPILER_LAUNCHER", default = "" } +CMAKE_EXE_LINKER_FLAGS_INIT = { env = "CMAKE_EXE_LINKER_FLAGS_INIT", default = "" } +CMAKE_SHARED_LINKER_FLAGS_INIT = { env = "CMAKE_SHARED_LINKER_FLAGS_INIT", default = "" } +CMAKE_MODULE_LINKER_FLAGS_INIT = { env = "CMAKE_MODULE_LINKER_FLAGS_INIT", default = "" } CMAKE_C_VISIBILITY_PRESET = "hidden" CMAKE_CXX_VISIBILITY_PRESET = "hidden" CMAKE_VISIBILITY_INLINES_HIDDEN = "ON" diff --git a/projects/eudsl-py/pyproject.toml b/projects/eudsl-py/pyproject.toml index 2569deb..b5e8986 100644 --- a/projects/eudsl-py/pyproject.toml +++ b/projects/eudsl-py/pyproject.toml @@ -36,6 +36,9 @@ CMAKE_C_FLAGS = { env = "CMAKE_C_FLAGS", default = "" } CMAKE_CXX_FLAGS = { env = "CMAKE_CXX_FLAGS", default = "" } CMAKE_C_COMPILER_LAUNCHER = { env = "CMAKE_C_COMPILER_LAUNCHER", default = "" } CMAKE_CXX_COMPILER_LAUNCHER = { env = "CMAKE_CXX_COMPILER_LAUNCHER", default = "" } +CMAKE_EXE_LINKER_FLAGS_INIT = { env = "CMAKE_EXE_LINKER_FLAGS_INIT", default = "" } +CMAKE_SHARED_LINKER_FLAGS_INIT = { env = "CMAKE_SHARED_LINKER_FLAGS_INIT", default = "" } +CMAKE_MODULE_LINKER_FLAGS_INIT = { env = "CMAKE_MODULE_LINKER_FLAGS_INIT", default = "" } CMAKE_C_VISIBILITY_PRESET = "hidden" CMAKE_CXX_VISIBILITY_PRESET = "hidden" CMAKE_VISIBILITY_INLINES_HIDDEN = "ON" diff --git a/projects/eudsl-tblgen/CMakeLists.txt b/projects/eudsl-tblgen/CMakeLists.txt index 94e8a5b..2d31c3e 100644 --- a/projects/eudsl-tblgen/CMakeLists.txt +++ b/projects/eudsl-tblgen/CMakeLists.txt @@ -53,19 +53,26 @@ find_package(nanobind CONFIG REQUIRED) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${EUDSL_TBLGEN_SRC_DIR}/eudsl_tblgen) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) -nanobind_add_module(eudsl_tblgen_ext NB_STATIC STABLE_ABI +nanobind_add_module(eudsl_tblgen_ext NB_STATIC src/eudsl_tblgen_ext.cpp src/TGParser.cpp src/TGLexer.cpp ) target_link_libraries(eudsl_tblgen_ext PRIVATE LLVMTableGenCommon LLVMTableGen LLVMCore) -target_compile_options(eudsl_tblgen_ext - PUBLIC +set(nanobind_options -Wno-cast-qual + -Wno-deprecated-literal-operator + -Wno-covered-switch-default + -Wno-nested-anon-types + -Wno-zero-length-array + -Wno-c++98-compat-extra-semi + -Wno-c++20-extensions $<$:-fexceptions -frtti> $<$:-fexceptions -frtti> $<$:/EHsc /GR>) +target_compile_options(eudsl_tblgen_ext PRIVATE ${nanobind_options}) +target_compile_options(nanobind-static PRIVATE ${nanobind_options}) # note WORKING_DIRECTORY set(NB_STUBGEN_CMD "${Python_EXECUTABLE}" "-m" "nanobind.stubgen" diff --git a/projects/eudsl-tblgen/pyproject.toml b/projects/eudsl-tblgen/pyproject.toml index c680d26..12bae16 100644 --- a/projects/eudsl-tblgen/pyproject.toml +++ b/projects/eudsl-tblgen/pyproject.toml @@ -22,11 +22,19 @@ cmake.source-dir = "." wheel.packages = ["src/eudsl_tblgen"] [tool.scikit-build.cmake.define] -LLVM_DIR = { env = "LLVM_DIR", default = "EMPTY" } -CMAKE_CXX_VISIBILITY_PRESET = "hidden" +CMAKE_PREFIX_PATH = { env = "CMAKE_PREFIX_PATH", default = "" } +CMAKE_C_FLAGS = { env = "CMAKE_C_FLAGS", default = "" } +CMAKE_CXX_FLAGS = { env = "CMAKE_CXX_FLAGS", default = "" } CMAKE_C_COMPILER_LAUNCHER = { env = "CMAKE_C_COMPILER_LAUNCHER", default = "" } CMAKE_CXX_COMPILER_LAUNCHER = { env = "CMAKE_CXX_COMPILER_LAUNCHER", default = "" } -CMAKE_PREFIX_PATH = { env = "CMAKE_PREFIX_PATH", default = "" } +CMAKE_EXE_LINKER_FLAGS_INIT = { env = "CMAKE_EXE_LINKER_FLAGS_INIT", default = "" } +CMAKE_SHARED_LINKER_FLAGS_INIT = { env = "CMAKE_SHARED_LINKER_FLAGS_INIT", default = "" } +CMAKE_MODULE_LINKER_FLAGS_INIT = { env = "CMAKE_MODULE_LINKER_FLAGS_INIT", default = "" } +CMAKE_C_VISIBILITY_PRESET = "hidden" +CMAKE_CXX_VISIBILITY_PRESET = "hidden" +CMAKE_VISIBILITY_INLINES_HIDDEN = "ON" +CMAKE_VERBOSE_MAKEFILE = "ON" +LLVM_DIR = { env = "LLVM_DIR", default = "EMPTY" } LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN = "ON" [tool.cibuildwheel] @@ -36,19 +44,23 @@ archs = ["auto64"] manylinux-x86_64-image = "manylinux_2_28" manylinux-aarch64-image = "quay.io/pypa/manylinux_2_34_aarch64" environment-pass = [ - "LLVM_DIR", - "CMAKE_GENERATOR", "CMAKE_PREFIX_PATH", + "CMAKE_C_FLAGS", + "CMAKE_CXX_FLAGS", + "CMAKE_C_COMPILER_LAUNCHER", + "CMAKE_CXX_COMPILER_LAUNCHER", + "CMAKE_GENERATOR", "CC", "CXX", + "LLVM_DIR", # ccache "CCACHE_DIR", "CCACHE_MAXSIZE=700M", "CCACHE_SLOPPINESS", "CCACHE_CPP2", "CCACHE_UMASK", - "CMAKE_C_COMPILER_LAUNCHER", - "CMAKE_CXX_COMPILER_LAUNCHER" + "CCACHE_NOHASHDIR", + "PIP_FIND_LINKS", ] before-build = [ "export CCACHE_DIR=$CCACHE_DIR/$(python -c 'import platform; print(platform.python_version())')",