diff options
author | robot-ya-builder <robot-ya-builder@yandex-team.com> | 2023-03-17 19:38:27 +0300 |
---|---|---|
committer | robot-ya-builder <robot-ya-builder@yandex-team.com> | 2023-03-17 19:38:27 +0300 |
commit | 26147c4e01ae75f397d4dd999da238bf2c61c851 (patch) | |
tree | 873a652bca08f38df296c77422b40fd404f0481e /cmake/global_flags.cmake | |
parent | 08f6d0d9bb84f493c5dfd3c0d1568445faa26d85 (diff) | |
download | ydb-26147c4e01ae75f397d4dd999da238bf2c61c851.tar.gz |
External build system generator release 21
Update tools: yexport
Diffstat (limited to 'cmake/global_flags.cmake')
-rw-r--r-- | cmake/global_flags.cmake | 41 |
1 files changed, 30 insertions, 11 deletions
diff --git a/cmake/global_flags.cmake b/cmake/global_flags.cmake index cd857ecd38..e57e9ebcf9 100644 --- a/cmake/global_flags.cmake +++ b/cmake/global_flags.cmake @@ -1,29 +1,48 @@ set(CMAKE_C_FLAGS "") set(CMAKE_CXX_FLAGS "") +# workaround when old NDK toolchain that does not set CMAKE_ANDROID_NDK_VERSION is used +# See for details: https://gitlab.kitware.com/cmake/cmake/-/issues/24386 +if(ANDROID_NDK_REVISION AND NOT CMAKE_ANDROID_NDK_VERSION) + set(CMAKE_ANDROID_NDK_VERSION "${ANDROID_NDK_REVISION}") +endif() + if (MSVC) + set(flagPrefixSymbol "/") include(global_flags.compiler.msvc) include(global_flags.linker.msvc) else() + set(flagPrefixSymbol "-") include(global_flags.compiler.gnu) include(global_flags.linker.gnu) endif() -if ((CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") OR (CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64")) - set(_X86_64_DEFINES "\ - -DSSE_ENABLED=1 \ - -DSSE3_ENABLED=1 \ - -DSSSE3_ENABLED=1 \ - -DSSE41_ENABLED=1 \ - -DSSE42_ENABLED=1 \ - -DPOPCNT_ENABLED=1 \ - -DCX16_ENABLED=1 \ +if (CMAKE_SYSTEM_PROCESSOR MATCHES "^(i686|x86_64|AMD64)$") + set(_ALL_X86_EXTENSIONS_DEFINES "\ + ${flagPrefixSymbol}DSSE_ENABLED=1 \ + ${flagPrefixSymbol}DSSE3_ENABLED=1 \ + ${flagPrefixSymbol}DSSSE3_ENABLED=1 \ ") + if ((CMAKE_SYSTEM_PROCESSOR MATCHES "^(x86_64|AMD64)$") OR (NOT ANDROID)) + string(APPEND _ALL_X86_EXTENSIONS_DEFINES "\ + ${flagPrefixSymbol}DSSE41_ENABLED=1 \ + ${flagPrefixSymbol}DSSE42_ENABLED=1 \ + ${flagPrefixSymbol}DPOPCNT_ENABLED=1 \ + ") + if (NOT ANDROID) + # older clang versions did not support this feature on Android: + # https://reviews.llvm.org/rGc32d307a49f5255602e7543e64e6c38a7f536abc + string(APPEND _ALL_X86_EXTENSIONS_DEFINES " ${flagPrefixSymbol}DCX16_ENABLED=1") + endif() + endif() - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${_X86_64_DEFINES}") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${_X86_64_DEFINES}") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${_ALL_X86_EXTENSIONS_DEFINES}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${_ALL_X86_EXTENSIONS_DEFINES}") endif() +message(VERBOSE "CMAKE_C_FLAGS = \"${CMAKE_C_FLAGS}\"") +message(VERBOSE "CMAKE_CXX_FLAGS = \"${CMAKE_CXX_FLAGS}\"") + if (NOT CMAKE_CROSSCOMPILING) set(TOOLS_ROOT ${CMAKE_BINARY_DIR}) elseif(NOT TOOLS_ROOT) |