forked from ElektraInitiative/libelektra
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
33 lines (30 loc) · 1.26 KB
/
CMakeLists.txt
File metadata and controls
33 lines (30 loc) · 1.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
include (LibAddMacros)
if (DEPENDENCY_PHASE)
find_package (yaml-cpp QUIET 0.6)
if (NOT yaml-cpp_FOUND)
remove_plugin (ansible "ansible (libyaml-cpp-dev >= 0.6) not found")
endif (NOT yaml-cpp_FOUND)
# AdressSanitizer enabled builds of the plugin report runtime errors about member calls, which do not point to an object of type
# `_Sp_counted_base` inside the system header file `shared_ptr_base.h`. In Clang builds of the plugin we ignore this error in our
# [blacklist](tests/sanitizer.blacklist). Unfortunately GCC does not support a blacklist, so we remove the plugin in this case.
set (
DISABLE_PLUGIN_ASAN
${ENABLE_ASAN}
AND
"${CMAKE_CXX_COMPILER_ID}"
MATCHES
"GNU"
AND
${CMAKE_CXX_COMPILER_VERSION}
VERSION_LESS
9)
if (${DISABLE_PLUGIN_ASAN})
remove_plugin (ansible "ASan enabled GCC builds of the plugin report member calls on addresses, "
"which do not point to an object of type `_Sp_counted_base`")
endif (${DISABLE_PLUGIN_ASAN})
endif (DEPENDENCY_PHASE)
add_plugin (
ansible CPP ADD_TEST CPP_TEST INSTALL_TEST_DATA TEST_README
SOURCES ansible.hpp ansible.cpp ansible_delegate.hpp ansible_delegate.cpp
INCLUDE_SYSTEM_DIRECTORIES ${yaml-cpp_INCLUDE_DIRS}
LINK_LIBRARIES ${yaml-cpp_LIBRARIES} COMPONENT libelektra${SO_VERSION})