aboutsummaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorMiodrag Milanovic <mmicko@gmail.com>2018-06-24 19:32:39 +0200
committerMiodrag Milanovic <mmicko@gmail.com>2018-06-24 19:32:39 +0200
commitacda434c6eaca0144480fd01a9ee2d3c6718cde9 (patch)
tree08ca2100eae963a05a99b9f52e1f7a0134ef0ac0 /CMakeLists.txt
parentbf2c0af0eab82138fe32e1f42cc8f3903fea2790 (diff)
downloadnextpnr-acda434c6eaca0144480fd01a9ee2d3c6718cde9.tar.gz
nextpnr-acda434c6eaca0144480fd01a9ee2d3c6718cde9.tar.bz2
nextpnr-acda434c6eaca0144480fd01a9ee2d3c6718cde9.zip
add sanitizer support
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt12
1 files changed, 12 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 20b3e014..428b137a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -12,6 +12,11 @@ set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_FLAGS_DEBUG "-Wall -fPIC -ggdb")
set(CMAKE_CXX_FLAGS_RELEASE "-Wall -fPIC -O3 -g")
set(CMAKE_DEFIN)
+
+set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/3rdparty/sanitizers-cmake/cmake" ${CMAKE_MODULE_PATH})
+
+find_package(Sanitizers)
+
# List of Boost libraries to include
set(boost_libs filesystem thread program_options)
@@ -134,6 +139,7 @@ foreach (family ${FAMILIES})
add_executable(nextpnr-${family}-test ${${ufamily}_TEST_FILES} ${COMMON_FILES} ${${ufamily}_FILES})
target_link_libraries(nextpnr-${family}-test PRIVATE gtest_main)
+ add_sanitizers(nextpnr-${family}-test)
add_test(${family}-test ${CMAKE_CURRENT_BINARY_DIR}/nextpnr-${family}-test)
endif()
@@ -156,6 +162,7 @@ foreach (family ${FAMILIES})
target_include_directories(${target} PRIVATE ${family}/ generated/)
target_compile_definitions(${target} PRIVATE NEXTPNR_NAMESPACE=nextpnr_${family} ARCH_${ufamily} ARCHNAME=${family})
target_link_libraries(${target} LINK_PUBLIC ${Boost_LIBRARIES})
+ add_sanitizers(${target})
if (BUILD_PYTHON)
target_link_libraries(${target} LINK_PUBLIC ${PYTHON_LIBRARIES})
endif()
@@ -183,3 +190,8 @@ add_custom_target(
unset(BUILD_GUI CACHE)
unset(BUILD_PYTHON CACHE)
unset(BUILD_TESTS CACHE)
+unset(SANITIZE_ADDRESS CACHE)
+unset(SANITIZE_MEMORY CACHE)
+unset(SANITIZE_THREAD CACHE)
+unset(SANITIZE_UNDEFINED CACHE)
+unset(SANITIZE_LINK_STATIC CACHE) \ No newline at end of file