aboutsummaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
authorserg-belyakov <serg-belyakov@yandex-team.com>2022-07-08 17:02:48 +0300
committerserg-belyakov <serg-belyakov@yandex-team.com>2022-07-08 17:02:48 +0300
commite5eab3309e308a5713727c7f9c506b51b6d32af7 (patch)
treeec1a4a74e457682dbc96582556a1e956635397c7 /cmake
parentdf4076b5d5f03459384ffadd5e48f63797ddc87f (diff)
downloadydb-e5eab3309e308a5713727c7f9c506b51b6d32af7.tar.gz
Add logging after applying new GroupInfo,
Diffstat (limited to 'cmake')
-rw-r--r--cmake/global_flags.cmake106
-rw-r--r--cmake/global_vars.cmake2
-rw-r--r--cmake/llvm-tools.cmake27
3 files changed, 131 insertions, 4 deletions
diff --git a/cmake/global_flags.cmake b/cmake/global_flags.cmake
new file mode 100644
index 0000000000..dc68e42d12
--- /dev/null
+++ b/cmake/global_flags.cmake
@@ -0,0 +1,106 @@
+set(CMAKE_C_FLAGS "\
+ -m64 \
+ -fexceptions \
+ -fno-common \
+ -fcolor-diagnostics \
+ -faligned-allocation \
+ -ffunction-sections \
+ -fdata-sections \
+ -Wall \
+ -Wextra \
+ -Wno-parentheses \
+ -Wno-implicit-const-int-float-conversion \
+ -Wno-unknown-warning-option \
+ -D_THREAD_SAFE \
+ -D_PTHREADS \
+ -D_REENTRANT \
+ -D_LARGEFILE_SOURCE \
+ -D__STDC_CONSTANT_MACROS \
+ -D__STDC_FORMAT_MACROS \
+ -D_FILE_OFFSET_BITS=64 \
+ -D_GNU_SOURCE \
+ -D_YNDX_LIBUNWIND_ENABLE_EXCEPTION_BACKTRACE \
+ -D__LONG_LONG_SUPPORTED \
+ -DSSE_ENABLED=1 \
+ -DSSE3_ENABLED=1 \
+ -DSSSE3_ENABLED=1 \
+ -DSSE41_ENABLED=1 \
+ -DSSE42_ENABLED=1 \
+ -DPOPCNT_ENABLED=1 \
+ -DCX16_ENABLED=1 \
+ -D_libunwind_ \
+ -DLIBCXX_BUILDING_LIBCXXRT \
+ -msse2 \
+ -msse3 \
+ -mssse3 \
+ -msse4.1 \
+ -msse4.2 \
+ -mpopcnt \
+ -mcx16 \
+ "
+)
+set(CMAKE_CXX_FLAGS "\
+ -m64 \
+ -fexceptions \
+ -fno-common \
+ -fcolor-diagnostics \
+ -faligned-allocation \
+ -ffunction-sections \
+ -fdata-sections \
+ -Wall \
+ -Wextra \
+ -Wno-parentheses \
+ -Wno-implicit-const-int-float-conversion \
+ -Wno-unknown-warning-option \
+ -D_THREAD_SAFE \
+ -D_PTHREADS \
+ -D_REENTRANT \
+ -D_LARGEFILE_SOURCE \
+ -D__STDC_CONSTANT_MACROS \
+ -D__STDC_FORMAT_MACROS \
+ -D_FILE_OFFSET_BITS=64 \
+ -D_GNU_SOURCE \
+ -D_YNDX_LIBUNWIND_ENABLE_EXCEPTION_BACKTRACE \
+ -D__LONG_LONG_SUPPORTED \
+ -DSSE_ENABLED=1 \
+ -DSSE3_ENABLED=1 \
+ -DSSSE3_ENABLED=1 \
+ -DSSE41_ENABLED=1 \
+ -DSSE42_ENABLED=1 \
+ -DPOPCNT_ENABLED=1 \
+ -DCX16_ENABLED=1 \
+ -D_libunwind_ \
+ -DLIBCXX_BUILDING_LIBCXXRT \
+ -msse2 \
+ -msse3 \
+ -mssse3 \
+ -msse4.1 \
+ -msse4.2 \
+ -mpopcnt \
+ -mcx16 \
+ -Woverloaded-virtual \
+ -Wimport-preprocessor-directive-pedantic \
+ -Wno-undefined-var-template \
+ -Wno-return-std-move \
+ -Wno-address-of-packed-member \
+ -Wno-defaulted-function-deleted \
+ -Wno-pessimizing-move \
+ -Wno-range-loop-construct \
+ -Wno-deprecated-anon-enum-enum-conversion \
+ -Wno-deprecated-enum-enum-conversion \
+ -Wno-deprecated-enum-float-conversion \
+ -Wno-ambiguous-reversed-operator \
+ -Wno-deprecated-volatile \
+ "
+)
+add_link_options(
+ -nodefaultlibs
+ -lc
+ -lm
+)
+if (APPLE)
+ set(CMAKE_SHARED_LINKER_FLAGS "-undefined dynamic_lookup")
+elseif(UNIX)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fuse-init-array")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fuse-init-array")
+endif()
diff --git a/cmake/global_vars.cmake b/cmake/global_vars.cmake
index 3b48b3cf4a..9b3d4248d2 100644
--- a/cmake/global_vars.cmake
+++ b/cmake/global_vars.cmake
@@ -6,7 +6,7 @@
# original buildsystem will not be accepted.
-if(UNIX)
+if(UNIX AND NOT APPLE)
set(YASM_FLAGS -f elf64 -D UNIX -D _x86_64_ -D_YASM_ -g dwarf2)
set(BISON_FLAGS -v)
set(RAGEL_FLAGS -L -I ${CMAKE_SOURCE_DIR}/)
diff --git a/cmake/llvm-tools.cmake b/cmake/llvm-tools.cmake
index b53345232a..b727e8f720 100644
--- a/cmake/llvm-tools.cmake
+++ b/cmake/llvm-tools.cmake
@@ -10,6 +10,18 @@ else()
endif()
endif()
+if (CMAKE_C_COMPILER_ID MATCHES "Clang")
+ set(CLANGC ${CMAKE_C_COMPILER})
+ message(STATUS "Using ${CLANGC} for c++ to LLVM IR translation")
+else()
+ find_program(CLANGC NAMES clang-12 clang)
+ if (CLANGC "CLANGC-NOTFOUND")
+ message(SEND_ERROR "clang not found")
+ else()
+ message(STATUS "Using ${CLANGC} for c to LLVM IR translation")
+ endif()
+endif()
+
find_program(LLVMLINK NAMES llvm-link-12 llvm-link)
if (LLVMLINK MATCHES "LLVMLINK-NOTFOUND")
message(SEND_ERROR "llvm-link not found")
@@ -23,10 +35,15 @@ else()
message(STATUS "Using ${LLVMOPT} for LLVM IR optimization")
endif()
-function(llvm_compile_cxx Tgt Inpt Out Tool)
+function(llvm_compile_cxx Tgt Inpt Out Tool UseC)
list(APPEND TARGET_INCLUDES "-I$<JOIN:$<TARGET_PROPERTY:${Tgt},INCLUDE_DIRECTORIES>,$<SEMICOLON>-I>")
list(APPEND TARGET_COMPILE_OPTIONS "$<JOIN:$<TARGET_PROPERTY:${Tgt},COMPILE_OPTIONS>,$<SEMICOLON>>")
- get_target_property(TARGET_STANDARD ${Tgt} CXX_STANDARD)
+ if (${UseC})
+ set(STD_FLAG "")
+ else()
+ get_target_property(TARGET_STANDARD ${Tgt} CXX_STANDARD)
+ set(STD_FLAG "-std=c++${TARGET_STANDARD}")
+ endif()
add_custom_command(
OUTPUT ${Out}
@@ -34,7 +51,7 @@ function(llvm_compile_cxx Tgt Inpt Out Tool)
${Tool}
${TARGET_INCLUDES}
${TARGET_COMPILE_OPTIONS}
- -std=c++${TARGET_STANDARD}
+ ${STD_FLAG}
-Wno-unknown-warning-option
-fno-lto
-emit-llvm
@@ -46,3 +63,7 @@ function(llvm_compile_cxx Tgt Inpt Out Tool)
DEPENDS ${Inpt} ${Tool}
)
endfunction()
+
+function(llvm_compile_c Tgt Inpt Out Tool)
+ llvm_compile_cxx(${Tgt} ${Inpt} ${Out} ${Tool} TRUE)
+endfunction()