diff options
author | monster <[email protected]> | 2022-07-07 14:41:37 +0300 |
---|---|---|
committer | monster <[email protected]> | 2022-07-07 14:41:37 +0300 |
commit | 06e5c21a835c0e923506c4ff27929f34e00761c2 (patch) | |
tree | 75efcbc6854ef9bd476eb8bf00cc5c900da436a2 /cmake | |
parent | 03f024c4412e3aa613bb543cf1660176320ba8f4 (diff) |
fix ya.make
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/global_flags.cmake | 106 | ||||
-rw-r--r-- | cmake/global_vars.cmake | 2 | ||||
-rw-r--r-- | cmake/llvm-tools.cmake | 48 |
3 files changed, 49 insertions, 107 deletions
diff --git a/cmake/global_flags.cmake b/cmake/global_flags.cmake deleted file mode 100644 index dc68e42d128..00000000000 --- a/cmake/global_flags.cmake +++ /dev/null @@ -1,106 +0,0 @@ -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 9b3d4248d28..3b48b3cf4a6 100644 --- a/cmake/global_vars.cmake +++ b/cmake/global_vars.cmake @@ -6,7 +6,7 @@ # original buildsystem will not be accepted. -if(UNIX AND NOT APPLE) +if(UNIX) 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 new file mode 100644 index 00000000000..b53345232a5 --- /dev/null +++ b/cmake/llvm-tools.cmake @@ -0,0 +1,48 @@ +if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") + set(CLANGPLUSPLUS ${CMAKE_CXX_COMPILER}) + message(STATUS "Using ${CLANGPLUSPLUS} for c++ to LLVM IR translation") +else() + find_program(CLANGPLUSPLUS NAMES clang++-12 clang++) + if (CLANGPLUSPLUS MATCHES "CLANGPLUSPLUS-NOTFOUND") + message(SEND_ERROR "clang++ not found") + else() + message(STATUS "Using ${CLANGPLUSPLUS} 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") +else() + message(STATUS "Using ${LLVMLINK} for LLVM IR linking") +endif() +find_program(LLVMOPT NAMES opt-12 opt) +if (LLVMOPT MATCHES "LLVMOPT-NOTFOUND") + message(SEND_ERROR "llvm opt tool not found") +else() + message(STATUS "Using ${LLVMOPT} for LLVM IR optimization") +endif() + +function(llvm_compile_cxx Tgt Inpt Out Tool) + 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) + + add_custom_command( + OUTPUT ${Out} + COMMAND + ${Tool} + ${TARGET_INCLUDES} + ${TARGET_COMPILE_OPTIONS} + -std=c++${TARGET_STANDARD} + -Wno-unknown-warning-option + -fno-lto + -emit-llvm + -c + ${Inpt} + -o + ${Out} + COMMAND_EXPAND_LISTS + DEPENDS ${Inpt} ${Tool} + ) +endfunction() |