From 795971b6033bb22e6cc24d7d7cfd4ec226a77b35 Mon Sep 17 00:00:00 2001 From: kendal Date: Wed, 27 Mar 2024 16:10:31 -0700 Subject: [PATCH 1/2] [cmake] Target AXV2 ISA when building for AMD64 Targeting AXV2 is the closest we can get to targeting Haswell when compiling with msvc. See DEVIN-1142 for more context. --- CMakeLists.txt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8e211b4963..adea610573 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -185,7 +185,15 @@ set(FIREBASE_GEN_FILE_DIR ${CMAKE_BINARY_DIR}/generated) # Directory for any shared scripts. set(FIREBASE_SCRIPT_DIR ${CMAKE_CURRENT_LIST_DIR}) +# This must be called before checking CMAKE_SYSTEM_PROCESSOR below. +# Otherwise it is unset. +project(FirebaseCppSdk) + if (MSVC) + if(CMAKE_SYSTEM_PROCESSOR MATCHES AMD64) + add_compile_options($<$:"/arch:AVX2">) + endif() + if (MSVC_RUNTIME_LIBRARY_STATIC) add_compile_options( $<$:/MT> From 31869909c6006a42955e7f8a485efde13f3582bd Mon Sep 17 00:00:00 2001 From: kendal Date: Thu, 28 Mar 2024 13:20:21 -0700 Subject: [PATCH 2/2] Make changes in bcny-firebase.yml instead of CMakeLists.txt --- .github/workflows/bcny-firebase.yml | 4 ++-- CMakeLists.txt | 8 -------- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/.github/workflows/bcny-firebase.yml b/.github/workflows/bcny-firebase.yml index 4cfad00789..6dcbf20121 100644 --- a/.github/workflows/bcny-firebase.yml +++ b/.github/workflows/bcny-firebase.yml @@ -76,8 +76,8 @@ jobs: -D FIREBASE_INCLUDE_FIRESTORE=YES ` -D FIREBASE_USE_BORINGSSL=YES ` -D MSVC_RUNTIME_LIBRARY_STATIC=NO ` - -D CMAKE_C_FLAGS="/D_HAS_EXCEPTIONS=0 /EHsc-"` - -D CMAKE_CXX_FLAGS="/D_HAS_EXCEPTIONS=0 /EHsc-" ` + -D CMAKE_C_FLAGS="/D_HAS_EXCEPTIONS=0 /EHsc- /arch:AVX2"` + -D CMAKE_CXX_FLAGS="/D_HAS_EXCEPTIONS=0 /EHsc- /arch:AVX2" ` -D CMAKE_MSVC_DEBUG_INFORMATION_FORMAT=Embedded ` -D FIREBASE_PYTHON_HOST_EXECUTABLE:FILEPATH=${{ steps.python.outputs.python-path }} ` -D FLATBUFFERS_FLATC_EXECUTABLE=${{ github.workspace }}/BinaryCache/flatbuffers/Release/flatc.exe diff --git a/CMakeLists.txt b/CMakeLists.txt index adea610573..8e211b4963 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -185,15 +185,7 @@ set(FIREBASE_GEN_FILE_DIR ${CMAKE_BINARY_DIR}/generated) # Directory for any shared scripts. set(FIREBASE_SCRIPT_DIR ${CMAKE_CURRENT_LIST_DIR}) -# This must be called before checking CMAKE_SYSTEM_PROCESSOR below. -# Otherwise it is unset. -project(FirebaseCppSdk) - if (MSVC) - if(CMAKE_SYSTEM_PROCESSOR MATCHES AMD64) - add_compile_options($<$:"/arch:AVX2">) - endif() - if (MSVC_RUNTIME_LIBRARY_STATIC) add_compile_options( $<$:/MT>