From 219ddf3e118e0967ee452ffd3ffa4a8706119de1 Mon Sep 17 00:00:00 2001 From: sguo35 Date: Mon, 4 Apr 2022 12:36:13 -0700 Subject: [PATCH] build-macos: fix cmake config for arm64 --- 3rdparty/llvm.cmake | 2 +- buildfiles/cmake/ConfigureCompiler.cmake | 19 +++++++++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/3rdparty/llvm.cmake b/3rdparty/llvm.cmake index 266ebd55b0..9b6f677484 100644 --- a/3rdparty/llvm.cmake +++ b/3rdparty/llvm.cmake @@ -70,7 +70,7 @@ if(WITH_LLVM) endif() if(COMPILER_ARM) - set(LLVM_LIBS ${LLVM_LIBS} LLVMX86CodeGen LLVMX86AsmParser LLVMARMCodeGen LLVMARMAsmParser) + set(LLVM_LIBS ${LLVM_LIBS} LLVMX86CodeGen LLVMX86AsmParser LLVMARMCodeGen LLVMARMAsmParser LLVMAArch64CodeGen LLVMAArch64AsmParser) endif() if(WIN32 OR CMAKE_SYSTEM MATCHES "Linux") diff --git a/buildfiles/cmake/ConfigureCompiler.cmake b/buildfiles/cmake/ConfigureCompiler.cmake index da78daae7c..1cf3840df6 100644 --- a/buildfiles/cmake/ConfigureCompiler.cmake +++ b/buildfiles/cmake/ConfigureCompiler.cmake @@ -21,7 +21,11 @@ else() CHECK_CXX_COMPILER_FLAG("-no-pie" HAS_NO_PIE) CHECK_CXX_COMPILER_FLAG("-march=native" COMPILER_SUPPORTS_MARCH_NATIVE) CHECK_CXX_COMPILER_FLAG("-msse -msse2 -mcx16" COMPILER_X86) - CHECK_CXX_COMPILER_FLAG("-march=armv8.1-a" COMPILER_ARM) + if (APPLE) + CHECK_CXX_COMPILER_FLAG("-march=armv8.4-a" COMPILER_ARM) + else() + CHECK_CXX_COMPILER_FLAG("-march=armv8.1-a" COMPILER_ARM) + endif() add_compile_options(-Wall) add_compile_options(-fno-exceptions) @@ -32,7 +36,11 @@ else() endif() if (COMPILER_ARM) - add_compile_options(-march=armv8.1-a) + if (APPLE) + add_compile_options(-march=armv8.4-a) + else() + add_compile_options(-march=armv8.1-a) + endif() endif() add_compile_options(-Werror=old-style-cast) @@ -93,8 +101,11 @@ else() if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") add_compile_options(-stdlib=libc++) endif() - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-image_base,0x10000 -Wl,-pagezero_size,0x10000") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-no_pie") + + if (CMAKE_OSX_ARCHITECTURES MATCHES "x86_64") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-image_base,0x10000 -Wl,-pagezero_size,0x10000") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-no_pie") + endif() elseif(WIN32) set(CMAKE_RC_COMPILER_INIT windres) enable_language(RC)