diff options
author | Zephyron <zephyron@citron-emu.org> | 2025-01-13 18:26:44 +1000 |
---|---|---|
committer | Zephyron <zephyron@citron-emu.org> | 2025-01-13 18:26:44 +1000 |
commit | d028ac291c4f281ac6edc937bcbd0ad385ae031c (patch) | |
tree | d8e5c58950953c97e1f37f915105f084895240c2 /CMakeLists.txt | |
parent | cc897c3f0eac9fb77657a97abf7e9fec6c144b9f (diff) |
CMake: Enforce x86-64-v2 ISA level across all dependencies
Expand ISA level enforcement to ensure all components, including vcpkg
dependencies, are built with x86-64-v2 instruction set. This addresses
remaining compatibility issues where dependencies were potentially being
built with higher ISA levels.
Changes:
- Add dedicated x86-64-v2 toolchain file for vcpkg
- Set ISA flags for both main project and dependencies
- Ensure proper quoting of compiler flags
- Configure vcpkg to use consistent toolchain settings
The fix requires cleaning both build and vcpkg directories before
rebuilding:
rm -rf build/
rm -rf vcpkg_installed/
Credits to Alex&Indie for the original ISA compatibility fix.
Fixes remaining instances of Linux Compilation
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index a6aac07d8..199232f84 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -657,14 +657,22 @@ endif() # Set default x86-64-v2 instruction set for better compatibility if (CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|amd64|AMD64") - # Only set flags if not explicitly provided via command line - if (NOT CMAKE_C_FLAGS MATCHES "-march=" AND NOT CMAKE_CXX_FLAGS MATCHES "-march=") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=x86-64-v2") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=x86-64-v2") - endif() + # Ensure quotes are preserved and flags are set for both main build and vcpkg + set(ISA_FLAGS "-march=x86-64-v2") + + # Set for main project + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ISA_FLAGS}") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${ISA_FLAGS}") + + # Set for vcpkg dependencies + set(VCPKG_CXX_FLAGS "${ISA_FLAGS}") + set(VCPKG_C_FLAGS "${ISA_FLAGS}") + + # Set toolchain options for vcpkg + set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE "${CMAKE_CURRENT_SOURCE_DIR}/cmake/x86-64-v2-toolchain.cmake") # Ensure we're not getting overridden by system defaults - add_compile_options(-march=x86-64-v2) + add_compile_options(${ISA_FLAGS}) # Force disable higher ISA levels add_compile_definitions( |