about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt62
1 files changed, 32 insertions, 30 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index eafee536..cecddbc9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -141,53 +141,53 @@ endif()
 if(RPI3ARM64)
     add_definitions(-DRPI)
     add_definitions(-DRPI3ARM64)
-    add_definitions(-pipe -march=armv8-a+crc -mtune=cortex-a53)
+    set(CFLAGS -pipe -march=armv8-a+crc -mtune=cortex-a53)
 elseif(RPI4ARM64)
     add_definitions(-DRPI)
     add_definitions(-DRPI4ARM64)
-    add_definitions(-pipe -march=armv8-a+crc -mtune=cortex-a72)
+    set(CFLAGS -pipe -march=armv8-a+crc -mtune=cortex-a72)
 elseif(RPI5ARM64)
     add_definitions(-DRPI)
     add_definitions(-DRPI5ARM64)
-    add_definitions(-pipe -march=armv8.2-a+crc+crypto+fp16+rcpc+dotprod -mtune=cortex-a76)
+    set(CFLAGS -pipe -march=armv8.2-a+crc+crypto+fp16+rcpc+dotprod -mtune=cortex-a76)
 elseif(RK3326)
     add_definitions(-DRK3326)
-    add_definitions(-pipe -march=armv8-a+crc+simd+crypto -mcpu=cortex-a35+crypto)
+    set(CFLAGS -pipe -march=armv8-a+crc+simd+crypto -mcpu=cortex-a35+crypto)
 elseif(RK3399)
     add_definitions(-DRK3399)
-    add_definitions(-pipe -march=armv8-a+crc+simd+crypto -mcpu=cortex-a72.cortex-a53+crypto)
+    set(CFLAGS -pipe -march=armv8-a+crc+simd+crypto -mcpu=cortex-a72.cortex-a53+crypto)
 elseif(RK3588)
     add_definitions(-DRK3588)
-    add_definitions(-pipe -mcpu=cortex-a76.cortex-a55+crypto)
     add_definitions(-DBAD_SIGNAL)
+    set(CFLAGS -pipe -mcpu=cortex-a76.cortex-a55+crypto)
 elseif(ODROIDN2)
     add_definitions(-DODROIDN2)
-    add_definitions(-march=armv8-a+crc+simd+crypto -mcpu=cortex-a73.cortex-a53+crypto)
+    set(CFLAGS -march=armv8-a+crc+simd+crypto -mcpu=cortex-a73.cortex-a53+crypto)
 elseif(TEGRAX1)
     add_definitions(-DTEGRAX1)
-    add_definitions(-pipe -march=armv8-a+crc+simd+crypto -mcpu=cortex-a57+crypto)
+    set(CFLAGS -pipe -march=armv8-a+crc+simd+crypto -mcpu=cortex-a57+crypto)
 elseif(TEGRA_T194)
     add_definitions(-DTEGRA_T194)
-    add_definitions(-pipe -march=armv8.2-a+fp16+simd+crypto+predres -mcpu=cortex-a76+crypto -mtune=cortex-a76)
+    set(CFLAGS -pipe -march=armv8.2-a+fp16+simd+crypto+predres -mcpu=cortex-a76+crypto -mtune=cortex-a76)
 elseif(TEGRA_T234)
     add_definitions(-DTEGRA_T234)
-    add_definitions(-pipe -march=armv8.2-a+fp16+simd+crypto+predres -mcpu=cortex-a78ae+crypto -mtune=cortex-a78ae)
+    set(CFLAGS -pipe -march=armv8.2-a+fp16+simd+crypto+predres -mcpu=cortex-a78ae+crypto -mtune=cortex-a78ae)
 elseif(PHYTIUM)
     add_definitions(-DPHYTIUM)
-    add_definitions(-pipe -march=armv8.1-a+crc+simd+crypto)
+    set(CFLAGS -pipe -march=armv8.1-a+crc+simd+crypto)
 elseif(SD845)
     add_definitions(-DSD845)
-    add_definitions(-pipe -march=armv8.2-a+simd+crypto -mtune=cortex-a75.cortex-a55)
+    set(CFLAGS -pipe -march=armv8.2-a+simd+crypto -mtune=cortex-a75.cortex-a55)
 elseif(SD865)
     add_definitions(-DSD865)
     #note that cortex-a77.cortex-a55 is not supported, so fall back to a76 instead
-    add_definitions(-pipe -march=armv8.2-a+simd+crypto -mtune=cortex-a76.cortex-a55)
+    set(CFLAGS -pipe -march=armv8.2-a+simd+crypto -mtune=cortex-a76.cortex-a55)
 elseif(SD888)
     add_definitions(-DSD888)
-    add_definitions(-pipe -march=armv8.4-a+simd+crypto)
+    set(CFLAGS -pipe -march=armv8.4-a+simd+crypto)
 elseif(SD8G2)
     add_definitions(-DSD8G2)
-    add_definitions(-pipe -march=armv9-a+i8mm+sm4+sha3+rcpc+crypto+nosve+nosve2)
+    set(CFLAGS -pipe -march=armv9-a+i8mm+sm4+sha3+rcpc+crypto+nosve+nosve2)
 elseif(SDORYON1)
     add_definitions(-DSDORYON1)
     # NOTE
@@ -204,38 +204,34 @@ elseif(SDORYON1)
     #  * the 3rd positional argument is represented as the "scheduler"
     #  * the 6th positional argument is represented as the "cost"
     #  I've chosen the a57 because I don't know if I should choose the a72
-    add_definitions(-pipe -march=armv8.6-a+crypto+sm4+sha3+fp16 -mtune=cortex-a57)
+    set(CFLAGS -pipe -march=armv8.6-a+crypto+sm4+sha3+fp16 -mtune=cortex-a57)
 elseif(ADLINK)
     add_definitions(-DADLINK)
-    add_definitions(-pipe -mcpu=neoverse-n1 -fuse-ld=gold -fuse-linker-plugin)
+    set(CFLAGS -pipe -mcpu=neoverse-n1 -fuse-ld=gold -fuse-linker-plugin)
 elseif(M1)
     add_definitions(-DM1)
-    add_definitions(-pipe -march=armv8.5-a+simd+crypto)
+    set(CFLAGS -pipe -march=armv8.5-a+simd+crypto)
 elseif(LARCH64)
     add_definitions(-DLA64)
-    add_definitions(-pipe -march=loongarch64)
-    set(CMAKE_ASM_FLAGS  "-pipe -march=loongarch64")
+    set(CFLAGS -pipe -march=loongarch64)
+    set(ASMFLAGS  -pipe -march=loongarch64)
 elseif(RV64)
     add_definitions(-DRV64)
-    add_definitions(-pipe -march=rv64gc)
-    set(CMAKE_ASM_FLAGS  "-pipe -march=rv64gc")
+    set(CFLAGS -pipe -march=rv64gc)
+    set(ASMFLAGS  -pipe -march=rv64gc)
 elseif(PPC64LE)
     add_definitions(-DPPC64LE)
 elseif(LX2160A)
     add_definitions(-DLX2160A)
-    add_definitions(-pipe -march=armv8-a+crypto+crc -mcpu=cortex-a72+crypto)
+    set(CFLAGS -pipe -march=armv8-a+crypto+crc -mcpu=cortex-a72+crypto)
 elseif(SW64)
     add_definitions(-DSW64)
 elseif(ARM64)
     #add_definitions(-pipe -march=native)
 endif()
 if(ARM_DYNAREC)
-    if (CMAKE_COMPILER_IS_GNUCC AND CMAKE_C_COMPILER_VERSION GREATER_EQUAL 14.0)
-        set(CMAKE_ASM_FLAGS  "-pipe -mcpu=generic-armv8-a+crc+crypto")
-    else()
-        #putting a random cpu that have 8.2 architecture so assembly can be build. the use of the feature are conditionnal anyway
-        set(CMAKE_ASM_FLAGS  "-pipe -mcpu=cortex-a76 -march=armv8.2-a+crc+crypto")
-    endif()
+    #putting a random cpu that have 8.2 architecture so assembly can be build. the use of the feature are conditionnal anyway
+    set(ASMFLAGS  -pipe -mcpu=cortex-a76)
 endif()
 if(ANDROID)
     add_definitions(-DANDROID)
@@ -257,7 +253,7 @@ if(STATICBUILD)
     add_definitions(-DSTATICBUILD)
     add_definitions(-Wno-deprecated-declarations)   #by-design, deprecated function can be used
     set(BUILD_SHARED_LIBS OFF)
-    set(CMAKE_EXE_LINKER_FLAGS "-static")
+    set(CMAKE_EXE_LINKER_FLAGS -static)
     set(HAVE_TRACE OFF)
 endif()
 if(BOX32)
@@ -1070,6 +1066,10 @@ if(DYNAREC)
         )
     endif()
 
+    set_source_files_properties(${DYNAREC_PASS} PROPERTIES COMPILE_OPTIONS "${CFLAGS}")
+    set_source_files_properties(${DYNAREC_ASM} PROPERTIES COMPILE_OPTIONS "${ASMFLAGS}")
+    set_source_files_properties(${INTERPRETER} PROPERTIES COMPILE_OPTIONS "${CFLAGS}")
+
     add_library(dynarec_native OBJECT ${DYNAREC_SRC} ${DYNAREC_ASM})
 
     add_library(native_pass0 OBJECT ${DYNAREC_PASS})
@@ -1107,6 +1107,8 @@ if(DYNAREC)
     endif()
 endif()
 
+set_source_files_properties(${ELFLOADER_SRC} ${INTERPRETER} ${WRAPPEDS} ${WRAPPEDS32} PROPERTIES COMPILE_OPTIONS "${CFLAGS}")
+
 # creates git_head.h
 if(DYNAREC)
     add_custom_command(