mirror of
https://git.citron-emu.org/Citron/Citron.git
synced 2025-01-22 08:36:32 +01:00
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
This commit is contained in:
parent
cc897c3f0e
commit
d028ac291c
2 changed files with 16 additions and 6 deletions
|
@ -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(
|
||||
|
|
2
cmake/x86-64-v2-toolchain.cmake
Normal file
2
cmake/x86-64-v2-toolchain.cmake
Normal file
|
@ -0,0 +1,2 @@
|
|||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=x86-64-v2" CACHE STRING "C flags")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=x86-64-v2" CACHE STRING "C++ flags")
|
Loading…
Reference in a new issue