summaryrefslogtreecommitdiff
path: root/scripts/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/CMakeLists.txt')
-rw-r--r--scripts/CMakeLists.txt19
1 files changed, 16 insertions, 3 deletions
diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt
index 6270ae5..0f72001 100644
--- a/scripts/CMakeLists.txt
+++ b/scripts/CMakeLists.txt
@@ -3,6 +3,7 @@ project(pugixml)
cmake_minimum_required(VERSION 2.6)
option(BUILD_SHARED_LIBS "Build shared instead of static library" OFF)
+option(BUILD_TESTS "Build tests" OFF)
set(BUILD_DEFINES "" CACHE STRING "Build defines")
# Pre-defines standard install locations on *nix systems.
@@ -13,13 +14,15 @@ set(HEADERS ../src/pugixml.hpp ../src/pugiconfig.hpp)
set(SOURCES ${HEADERS} ../src/pugixml.cpp)
if(DEFINED BUILD_DEFINES)
- add_definitions(${BUILD_DEFINES})
+ foreach(DEFINE ${BUILD_DEFINES})
+ add_definitions("-D" ${DEFINE})
+ endforeach()
endif()
if(BUILD_SHARED_LIBS)
- add_library(pugixml SHARED ${SOURCES})
+ add_library(pugixml SHARED ${SOURCES})
else()
- add_library(pugixml STATIC ${SOURCES})
+ add_library(pugixml STATIC ${SOURCES})
endif()
set_target_properties(pugixml PROPERTIES VERSION 1.6 SOVERSION 1)
@@ -32,3 +35,13 @@ install(TARGETS pugixml EXPORT pugixml-config
install(FILES ${HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
install(EXPORT pugixml-config DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/pugixml)
+
+if(BUILD_TESTS)
+ file(GLOB TEST_SOURCES ../tests/*.cpp)
+ file(GLOB FUZZ_SOURCES ../tests/fuzz_*.cpp)
+ list(REMOVE_ITEM TEST_SOURCES ${FUZZ_SOURCES})
+
+ add_executable(check ${TEST_SOURCES})
+ target_link_libraries(check pugixml)
+ add_custom_command(TARGET check POST_BUILD COMMAND check WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/..)
+endif() \ No newline at end of file