diff options
author | John Szakmeister <john@szakmeister.net> | 2014-12-12 05:31:45 -0500 |
---|---|---|
committer | John Szakmeister <john@szakmeister.net> | 2014-12-12 05:31:45 -0500 |
commit | d5741e512402b13f9b0f75e081bf1027e1c577f0 (patch) | |
tree | b4d94ca4ce57d3aecda1f22c31799702c7ec79a1 | |
parent | 4c7fe20befec9b2d23dd11abfe2494ec38a2ca23 (diff) | |
parent | 91f61ced81aef1ef8d2dfc78c2f583269a3f29c0 (diff) | |
download | rneovim-d5741e512402b13f9b0f75e081bf1027e1c577f0.tar.gz rneovim-d5741e512402b13f9b0f75e081bf1027e1c577f0.tar.bz2 rneovim-d5741e512402b13f9b0f75e081bf1027e1c577f0.zip |
Merge pull request #1604 from equalsraf/tb-env-configs
Don't use env vars for configuration time options.
-rw-r--r-- | .ci/clang-asan.sh | 4 | ||||
-rw-r--r-- | src/nvim/CMakeLists.txt | 43 | ||||
-rw-r--r-- | src/nvim/po/CMakeLists.txt | 3 |
3 files changed, 23 insertions, 27 deletions
diff --git a/.ci/clang-asan.sh b/.ci/clang-asan.sh index 3f2fd4df90..e0087b17a4 100644 --- a/.ci/clang-asan.sh +++ b/.ci/clang-asan.sh @@ -25,12 +25,10 @@ symbolizer=/usr/local/clang-$clang_version/bin/llvm-symbolizer setup_prebuilt_deps x64 -export SANITIZE=1 export ASAN_SYMBOLIZER_PATH=$symbolizer export ASAN_OPTIONS="detect_leaks=1:log_path=$tmpdir/asan" export TSAN_OPTIONS="external_symbolizer_path=$symbolizer:log_path=$tmpdir/tsan" -export SKIP_UNITTEST=1 export UBSAN_OPTIONS="log_path=$tmpdir/ubsan" # not sure if this works CMAKE_EXTRA_FLAGS="-DTRAVIS_CI_BUILD=ON \ @@ -38,7 +36,7 @@ CMAKE_EXTRA_FLAGS="-DTRAVIS_CI_BUILD=ON \ -DBUSTED_OUTPUT_TYPE=plainTerminal" # Build and output version info. -$MAKE_CMD CMAKE_EXTRA_FLAGS="$CMAKE_EXTRA_FLAGS" nvim +$MAKE_CMD CMAKE_EXTRA_FLAGS="$CMAKE_EXTRA_FLAGS -DSANITIZE=ON" nvim build/bin/nvim --version # Run functional tests. diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt index 2867857fb3..8c05c6a2b2 100644 --- a/src/nvim/CMakeLists.txt +++ b/src/nvim/CMakeLists.txt @@ -1,5 +1,11 @@ include(CheckLibraryExists) +option(SANITIZE "Enable Clang sanitizers for nvim binary" OFF) +if(SANITIZE AND NOT CMAKE_C_COMPILER_ID MATCHES "Clang") + message(WARNING "SANITIZE is only supported for Clang ... disabling") + set(SANITIZE OFF) +endif() + set(GENERATED_DIR ${PROJECT_BINARY_DIR}/src/nvim/auto) set(DISPATCH_GENERATOR ${PROJECT_SOURCE_DIR}/scripts/msgpack-gen.lua) file(GLOB API_HEADERS api/*.h) @@ -94,25 +100,15 @@ endforeach() set_source_files_properties( ${CONV_SOURCES} PROPERTIES COMPILE_FLAGS "${COMPILE_FLAGS} -Wno-conversion") -if(CMAKE_C_COMPILER_ID MATCHES "Clang") - if(DEFINED ENV{SANITIZE}) - message(STATUS "Enabling the sanitizers") - add_definitions(-DEXITFREE) # is this necessary for LeakSanitizer? - add_definitions(-fno-sanitize-recover -fno-omit-frame-pointer - -fno-optimize-sibling-calls -fsanitize=address -fsanitize=undefined) - set(CMAKE_EXE_LINKER_FLAGS - "-fsanitize=address -fsanitize=undefined ${CMAKE_EXE_LINKER_FLAGS}") - set(CMAKE_SHARED_LINKER_FLAGS - "-fsanitize=address -fsanitize=undefined ${CMAKE_SHARED_LINKER_FLAGS}") - endif() -endif() - get_directory_property(gen_cdefs COMPILE_DEFINITIONS) foreach(gen_cdef ${gen_cdefs} DO_NOT_DEFINE_EMPTY_ATTRIBUTES) if(NOT "${gen_cdef}" MATCHES "INCLUDE_GENERATED_DECLARATIONS") list(APPEND gen_cflags "-D${gen_cdef}") endif() endforeach() +if (SANITIZE) + list(APPEND gen_cflags "-DEXITFREE") +endif() get_directory_property(gen_includes INCLUDE_DIRECTORIES) foreach(gen_include ${gen_includes}) @@ -200,17 +196,20 @@ list(APPEND NVIM_LINK_LIBRARIES m ${CMAKE_THREAD_LIBS_INIT}) -if(NOT DEFINED ENV{SKIP_EXEC}) - add_executable(nvim ${NEOVIM_GENERATED_SOURCES} ${NEOVIM_SOURCES} - ${NEOVIM_HEADERS}) - target_link_libraries(nvim ${NVIM_LINK_LIBRARIES}) - install_helper(TARGETS nvim) +add_executable(nvim ${NEOVIM_GENERATED_SOURCES} ${NEOVIM_SOURCES} + ${NEOVIM_HEADERS}) +target_link_libraries(nvim ${NVIM_LINK_LIBRARIES}) +install_helper(TARGETS nvim) + +if(SANITIZE) + message(STATUS "Enabling Clang sanitizers for nvim") + set_property(TARGET nvim APPEND_STRING PROPERTY COMPILE_FLAGS "-DEXITFREE ") + set_property(TARGET nvim APPEND_STRING PROPERTY COMPILE_FLAGS "-fno-sanitize-recover -fno-omit-frame-pointer -fno-optimize-sibling-calls -fsanitize=address -fsanitize=undefined ") + set_property(TARGET nvim APPEND_STRING PROPERTY LINK_FLAGS "-fsanitize=address -fsanitize=undefined ") endif() -if(NOT DEFINED ENV{SKIP_UNITTEST}) - add_library(nvim-test MODULE EXCLUDE_FROM_ALL ${NEOVIM_GENERATED_SOURCES} +add_library(nvim-test MODULE EXCLUDE_FROM_ALL ${NEOVIM_GENERATED_SOURCES} ${NEOVIM_SOURCES} ${NEOVIM_HEADERS}) - target_link_libraries(nvim-test ${NVIM_LINK_LIBRARIES}) -endif() +target_link_libraries(nvim-test ${NVIM_LINK_LIBRARIES}) add_subdirectory(po) diff --git a/src/nvim/po/CMakeLists.txt b/src/nvim/po/CMakeLists.txt index 6a56e302e9..443f3c6595 100644 --- a/src/nvim/po/CMakeLists.txt +++ b/src/nvim/po/CMakeLists.txt @@ -2,8 +2,7 @@ find_package(Gettext) find_program(XGETTEXT_PRG xgettext) find_program(ICONV_PRG iconv) -if(HAVE_WORKING_LIBINTL AND GETTEXT_FOUND AND XGETTEXT_PRG AND ICONV_PRG AND - NOT DEFINED ENV{SKIP_EXEC}) +if(HAVE_WORKING_LIBINTL AND GETTEXT_FOUND AND XGETTEXT_PRG AND ICONV_PRG) set(ENV{OLD_PO_FILE_INPUT} yes) set(ENV{OLD_PO_FILE_OUTPUT} yes) |