catch2/projects/CMake/CMakeLists.txt
Robert Dailey aee03ac03b Include catch header files in CMake script
This doesn't matter for make systems, but for IDEs such as Visual Studio
on Windows, this allows you to edit Catch header files directly from the
project.
2016-04-01 12:01:33 -05:00

147 lines
6.2 KiB
CMake

cmake_minimum_required(VERSION 2.8)
project(Catch)
# define some folders
get_filename_component(CATCH_DIR "${CMAKE_CURRENT_SOURCE_DIR}" PATH)
get_filename_component(CATCH_DIR "${CATCH_DIR}" PATH)
set(SELF_TEST_DIR ${CATCH_DIR}/projects/SelfTest)
set(INCLUDE_DIR ${CATCH_DIR}/include)
if(USE_CPP11)
## We can't turn this on by default, since it breaks on travis
message(STATUS "Enabling C++11")
set(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}")
endif()
# define the sources of the self test
set(SOURCES
${SELF_TEST_DIR}/ApproxTests.cpp
${SELF_TEST_DIR}/BDDTests.cpp
${SELF_TEST_DIR}/ClassTests.cpp
${SELF_TEST_DIR}/ConditionTests.cpp
${SELF_TEST_DIR}/ExceptionTests.cpp
${SELF_TEST_DIR}/GeneratorTests.cpp
${SELF_TEST_DIR}/MessageTests.cpp
${SELF_TEST_DIR}/MiscTests.cpp
${SELF_TEST_DIR}/PartTrackerTests.cpp
${SELF_TEST_DIR}/TestMain.cpp
${SELF_TEST_DIR}/TrickyTests.cpp
${SELF_TEST_DIR}/VariadicMacrosTests.cpp
${SELF_TEST_DIR}/EnumToString.cpp
${SELF_TEST_DIR}/ToStringPair.cpp
${SELF_TEST_DIR}/ToStringVector.cpp
${SELF_TEST_DIR}/ToStringWhich.cpp
${SELF_TEST_DIR}/ToStringTuple.cpp
# Catch include files, for in-IDE editing
${INCLUDE_DIR}/catch.hpp
${INCLUDE_DIR}/catch_session.hpp
${INCLUDE_DIR}/catch_with_main.hpp
${INCLUDE_DIR}/external/clara.h
${INCLUDE_DIR}/internal/catch_approx.hpp
${INCLUDE_DIR}/internal/catch_assertionresult.h
${INCLUDE_DIR}/internal/catch_assertionresult.hpp
${INCLUDE_DIR}/internal/catch_capture.hpp
${INCLUDE_DIR}/internal/catch_clara.h
${INCLUDE_DIR}/internal/catch_commandline.hpp
${INCLUDE_DIR}/internal/catch_common.h
${INCLUDE_DIR}/internal/catch_common.hpp
${INCLUDE_DIR}/internal/catch_compiler_capabilities.h
${INCLUDE_DIR}/internal/catch_config.hpp
${INCLUDE_DIR}/internal/catch_console_colour.hpp
${INCLUDE_DIR}/internal/catch_console_colour_impl.hpp
${INCLUDE_DIR}/internal/catch_context.h
${INCLUDE_DIR}/internal/catch_context_impl.hpp
${INCLUDE_DIR}/internal/catch_debugger.h
${INCLUDE_DIR}/internal/catch_debugger.hpp
${INCLUDE_DIR}/internal/catch_default_main.hpp
${INCLUDE_DIR}/internal/catch_evaluate.hpp
${INCLUDE_DIR}/internal/catch_exception_translator_registry.hpp
${INCLUDE_DIR}/internal/catch_expression_lhs.hpp
${INCLUDE_DIR}/internal/catch_fatal_condition.hpp
${INCLUDE_DIR}/internal/catch_generators.hpp
${INCLUDE_DIR}/internal/catch_generators_impl.hpp
${INCLUDE_DIR}/internal/catch_impl.hpp
${INCLUDE_DIR}/internal/catch_interfaces_capture.h
${INCLUDE_DIR}/internal/catch_interfaces_config.h
${INCLUDE_DIR}/internal/catch_interfaces_exception.h
${INCLUDE_DIR}/internal/catch_interfaces_generators.h
${INCLUDE_DIR}/internal/catch_interfaces_registry_hub.h
${INCLUDE_DIR}/internal/catch_interfaces_reporter.h
${INCLUDE_DIR}/internal/catch_interfaces_runner.h
${INCLUDE_DIR}/internal/catch_interfaces_tag_alias_registry.h
${INCLUDE_DIR}/internal/catch_interfaces_testcase.h
${INCLUDE_DIR}/internal/catch_legacy_reporter_adapter.h
${INCLUDE_DIR}/internal/catch_legacy_reporter_adapter.hpp
${INCLUDE_DIR}/internal/catch_list.hpp
${INCLUDE_DIR}/internal/catch_matchers.hpp
${INCLUDE_DIR}/internal/catch_message.h
${INCLUDE_DIR}/internal/catch_message.hpp
${INCLUDE_DIR}/internal/catch_notimplemented_exception.h
${INCLUDE_DIR}/internal/catch_notimplemented_exception.hpp
${INCLUDE_DIR}/internal/catch_objc.hpp
${INCLUDE_DIR}/internal/catch_objc_arc.hpp
${INCLUDE_DIR}/internal/catch_option.hpp
${INCLUDE_DIR}/internal/catch_platform.h
${INCLUDE_DIR}/internal/catch_ptr.hpp
${INCLUDE_DIR}/internal/catch_reenable_warnings.h
${INCLUDE_DIR}/internal/catch_registry_hub.hpp
${INCLUDE_DIR}/internal/catch_reporter_registrars.hpp
${INCLUDE_DIR}/internal/catch_reporter_registry.hpp
${INCLUDE_DIR}/internal/catch_result_builder.h
${INCLUDE_DIR}/internal/catch_result_builder.hpp
${INCLUDE_DIR}/internal/catch_result_type.h
${INCLUDE_DIR}/internal/catch_run_context.hpp
${INCLUDE_DIR}/internal/catch_section.h
${INCLUDE_DIR}/internal/catch_section.hpp
${INCLUDE_DIR}/internal/catch_section_info.h
${INCLUDE_DIR}/internal/catch_section_info.hpp
${INCLUDE_DIR}/internal/catch_stream.h
${INCLUDE_DIR}/internal/catch_stream.hpp
${INCLUDE_DIR}/internal/catch_streambuf.h
${INCLUDE_DIR}/internal/catch_suppress_warnings.h
${INCLUDE_DIR}/internal/catch_tag_alias.h
${INCLUDE_DIR}/internal/catch_tag_alias_registry.h
${INCLUDE_DIR}/internal/catch_tag_alias_registry.hpp
${INCLUDE_DIR}/internal/catch_test_case_info.h
${INCLUDE_DIR}/internal/catch_test_case_info.hpp
${INCLUDE_DIR}/internal/catch_test_case_registry_impl.hpp
${INCLUDE_DIR}/internal/catch_test_case_tracker.hpp
${INCLUDE_DIR}/internal/catch_test_registry.hpp
${INCLUDE_DIR}/internal/catch_test_spec.hpp
${INCLUDE_DIR}/internal/catch_test_spec_parser.hpp
${INCLUDE_DIR}/internal/catch_text.h
${INCLUDE_DIR}/internal/catch_timer.h
${INCLUDE_DIR}/internal/catch_timer.hpp
${INCLUDE_DIR}/internal/catch_tostring.h
${INCLUDE_DIR}/internal/catch_tostring.hpp
${INCLUDE_DIR}/internal/catch_totals.hpp
${INCLUDE_DIR}/internal/catch_version.h
${INCLUDE_DIR}/internal/catch_version.hpp
${INCLUDE_DIR}/internal/catch_wildcard_pattern.hpp
${INCLUDE_DIR}/internal/catch_xmlwriter.hpp
${INCLUDE_DIR}/reporters/catch_reporter_bases.hpp
${INCLUDE_DIR}/reporters/catch_reporter_compact.hpp
${INCLUDE_DIR}/reporters/catch_reporter_console.hpp
${INCLUDE_DIR}/reporters/catch_reporter_junit.hpp
${INCLUDE_DIR}/reporters/catch_reporter_multi.hpp
${INCLUDE_DIR}/reporters/catch_reporter_teamcity.hpp
${INCLUDE_DIR}/reporters/catch_reporter_xml.hpp
)
# configure the executable
include_directories(${CATCH_DIR}/include)
add_executable(SelfTest ${SOURCES})
# configure unit tests via CTest
enable_testing()
add_test(NAME RunTests COMMAND SelfTest)
add_test(NAME ListTests COMMAND SelfTest --list-tests)
set_tests_properties(ListTests PROPERTIES PASS_REGULAR_EXPRESSION "[0-9]+ test cases")
add_test(NAME ListTags COMMAND SelfTest --list-tags)
set_tests_properties(ListTags PROPERTIES PASS_REGULAR_EXPRESSION "[0-9]+ tags")