aboutsummaryrefslogtreecommitdiffstats
path: root/cmake/global_flags.cmake
diff options
context:
space:
mode:
authorrobot-ya-builder <robot-ya-builder@yandex-team.com>2023-03-17 19:38:27 +0300
committerrobot-ya-builder <robot-ya-builder@yandex-team.com>2023-03-17 19:38:27 +0300
commit26147c4e01ae75f397d4dd999da238bf2c61c851 (patch)
tree873a652bca08f38df296c77422b40fd404f0481e /cmake/global_flags.cmake
parent08f6d0d9bb84f493c5dfd3c0d1568445faa26d85 (diff)
downloadydb-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.cmake41
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)