diff options
| -rw-r--r-- | CMakeLists.txt | 62 |
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( |