aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Hahler <git@thequod.de>2019-08-15 22:06:56 +0200
committerGitHub <noreply@github.com>2019-08-15 22:06:56 +0200
commit1852dfdf9aede9f3f8bc670e39c5830c644a9bbc (patch)
tree5f5c02d1386141c0607874156bd466a1575296e7
parentabfc8b3257f8dd945bfb458d94b5981a6e322861 (diff)
parent18fb4dcbf97a5b1d7b1fa90ff341ea29134b48ec (diff)
downloadrneovim-1852dfdf9aede9f3f8bc670e39c5830c644a9bbc.tar.gz
rneovim-1852dfdf9aede9f3f8bc670e39c5830c644a9bbc.tar.bz2
rneovim-1852dfdf9aede9f3f8bc670e39c5830c644a9bbc.zip
Merge pull request #10784 from blueyed/improve-version-compile-flags
Improve compile options/definitions with sanitizer builds (for --version).
-rw-r--r--cmake/GetCompileFlags.cmake10
-rw-r--r--src/nvim/CMakeLists.txt14
2 files changed, 17 insertions, 7 deletions
diff --git a/cmake/GetCompileFlags.cmake b/cmake/GetCompileFlags.cmake
index 482eacca16..667b97350c 100644
--- a/cmake/GetCompileFlags.cmake
+++ b/cmake/GetCompileFlags.cmake
@@ -13,6 +13,11 @@ function(get_compile_flags _compile_flags)
get_directory_property(compile_definitions
DIRECTORY "src/nvim"
COMPILE_DEFINITIONS)
+ get_target_property(compile_definitions_target nvim COMPILE_DEFINITIONS)
+ if(compile_definitions_target)
+ list(APPEND compile_definitions ${compile_definitions_target})
+ list(REMOVE_DUPLICATES compile_definitions)
+ endif()
# NOTE: list(JOIN) requires CMake 3.12, string(CONCAT) requires CMake 3.
string(REPLACE ";" " -D" compile_definitions "${compile_definitions}")
if(compile_definitions)
@@ -28,6 +33,11 @@ function(get_compile_flags _compile_flags)
get_directory_property(compile_options
DIRECTORY "src/nvim"
COMPILE_OPTIONS)
+ get_target_property(compile_options_target nvim COMPILE_OPTIONS)
+ if(compile_options_target)
+ list(APPEND compile_options ${compile_options_target})
+ list(REMOVE_DUPLICATES compile_options)
+ endif()
# NOTE: list(JOIN) requires CMake 3.12.
string(REPLACE ";" " " compile_options "${compile_options}")
string(REPLACE
diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt
index 22f3153230..06957dd77d 100644
--- a/src/nvim/CMakeLists.txt
+++ b/src/nvim/CMakeLists.txt
@@ -552,19 +552,19 @@ if(CLANG_ASAN_UBSAN)
else()
set(SANITIZE_RECOVER -fno-sanitize-recover) # Clang 3.5-
endif()
- set_property(TARGET nvim APPEND_STRING PROPERTY COMPILE_FLAGS "-DEXITFREE ")
- set_property(TARGET nvim APPEND_STRING PROPERTY COMPILE_FLAGS "${SANITIZE_RECOVER} -fno-omit-frame-pointer -fno-optimize-sibling-calls -fsanitize=address -fsanitize=undefined -fsanitize-blacklist=${PROJECT_SOURCE_DIR}/src/.asan-blacklist")
+ set_property(TARGET nvim APPEND PROPERTY COMPILE_DEFINITIONS EXITFREE)
+ set_property(TARGET nvim APPEND PROPERTY COMPILE_OPTIONS ${SANITIZE_RECOVER} -fno-omit-frame-pointer -fno-optimize-sibling-calls -fsanitize=address -fsanitize=undefined -fsanitize-blacklist=${PROJECT_SOURCE_DIR}/src/.asan-blacklist)
set_property(TARGET nvim APPEND_STRING PROPERTY LINK_FLAGS "-fsanitize=address -fsanitize=undefined ")
elseif(CLANG_MSAN)
message(STATUS "Enabling Clang memory sanitizer for nvim.")
- set_property(TARGET nvim APPEND_STRING PROPERTY COMPILE_FLAGS "-DEXITFREE ")
- set_property(TARGET nvim APPEND_STRING PROPERTY COMPILE_FLAGS "-fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer -fno-optimize-sibling-calls ")
+ set_property(TARGET nvim APPEND PROPERTY COMPILE_DEFINITIONS EXITFREE)
+ set_property(TARGET nvim APPEND PROPERTY COMPILE_OPTIONS -fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer -fno-optimize-sibling-calls)
set_property(TARGET nvim APPEND_STRING PROPERTY LINK_FLAGS "-fsanitize=memory -fsanitize-memory-track-origins ")
elseif(CLANG_TSAN)
message(STATUS "Enabling Clang thread sanitizer for nvim.")
- set_property(TARGET nvim APPEND_STRING PROPERTY COMPILE_FLAGS "-DEXITFREE ")
- set_property(TARGET nvim APPEND_STRING PROPERTY COMPILE_FLAGS "-fsanitize=thread ")
- set_property(TARGET nvim APPEND_STRING PROPERTY COMPILE_FLAGS "-fPIE ")
+ set_property(TARGET nvim APPEND PROPERTY COMPILE_DEFINITIONS EXITFREE)
+ set_property(TARGET nvim APPEND PROPERTY COMPILE_OPTIONS -fsanitize=thread)
+ set_property(TARGET nvim APPEND PROPERTY COMPILE_OPTIONS -fPIE)
set_property(TARGET nvim APPEND_STRING PROPERTY LINK_FLAGS "-fsanitize=thread ")
endif()