| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 | 
							- #
 
- # Build examples.
 
- #
 
- # Requires CATCH_BUILD_EXAMPLES to be defined 'true', see ../CMakeLists.txt.
 
- #
 
- cmake_minimum_required( VERSION 3.0 )
 
- project( CatchExamples CXX )
 
- message( STATUS "Examples included" )
 
- # define folders used:
 
- set( EXAMPLES_DIR ${CATCH_DIR}/examples )
 
- set( HEADER_DIR   ${CATCH_DIR}/single_include )
 
- set( REPORTER_HEADER_DIR ${CATCH_DIR}/include/reporters )
 
- # single-file sources:
 
- set( SOURCES_SINGLE_FILE
 
-     010-TestCase.cpp
 
-     231-Cfg-OutputStreams.cpp
 
- )
 
- # multiple-file modules:
 
- set( SOURCES_020
 
-     020-TestCase-1.cpp
 
-     020-TestCase-2.cpp
 
- )
 
- # main for idiomatic test sources:
 
- set( SOURCES_IDIOMATIC_MAIN
 
-     000-CatchMain.cpp
 
- )
 
- # sources to combine with 000-CatchMain.cpp:
 
- set( SOURCES_IDIOMATIC_TESTS
 
-     030-Asn-Require-Check.cpp
 
-     100-Fix-Section.cpp
 
-     110-Fix-ClassFixture.cpp
 
-     120-Bdd-ScenarioGivenWhenThen.cpp
 
-     210-Evt-EventListeners.cpp
 
-     300-Gen-OwnGenerator.cpp
 
-     301-Gen-MapTypeConversion.cpp
 
-     302-Gen-Table.cpp
 
-     310-Gen-VariablesInGenerators.cpp
 
-     311-Gen-CustomCapture.cpp
 
- )
 
- # main-s for reporter-specific test sources:
 
- set( SOURCES_REPORTERS_MAIN
 
-     200-Rpt-CatchMain.cpp
 
- )
 
- string( REPLACE ".cpp" "" BASENAMES_REPORTERS_MAIN 200-Rpt-CatchMain.cpp )
 
- set( NAMES_REPORTERS TeamCity )
 
- foreach( reporter ${NAMES_REPORTERS} )
 
-     list( APPEND SOURCES_SPECIFIC_REPORTERS_MAIN ${BASENAMES_REPORTERS_MAIN}${reporter}.cpp )
 
- endforeach()
 
- # sources to combine with 200-Rpt-CatchMain{Reporter}.cpp:
 
- set( SOURCES_REPORTERS_TESTS
 
-     207-Rpt-TeamCityReporter.cpp
 
- )
 
- # check if all sources are listed, warn if not:
 
- set( SOURCES_ALL
 
-     ${SOURCES_020}
 
-     ${SOURCES_SINGLE_FILE}
 
-     ${SOURCES_IDIOMATIC_MAIN}
 
-     ${SOURCES_IDIOMATIC_TESTS}
 
-     ${SOURCES_REPORTERS_MAIN}
 
-     ${SOURCES_REPORTERS_TESTS}
 
- )
 
- foreach( name ${SOURCES_ALL} )
 
-     list( APPEND SOURCES_ALL_PATH ${EXAMPLES_DIR}/${name} )
 
- endforeach()
 
- CheckFileList( SOURCES_ALL_PATH ${EXAMPLES_DIR} )
 
- # create target names:
 
- string( REPLACE ".cpp" "" BASENAMES_SINGLE_FILE     "${SOURCES_SINGLE_FILE}" )
 
- string( REPLACE ".cpp" "" BASENAMES_IDIOMATIC_TESTS "${SOURCES_IDIOMATIC_TESTS}" )
 
- string( REPLACE ".cpp" "" BASENAMES_REPORTERS_TESTS "${SOURCES_REPORTERS_TESTS}" )
 
- string( REPLACE ".cpp" "" BASENAMES_REPORTERS_MAIN  "${SOURCES_REPORTERS_MAIN}" )
 
- set( TARGETS_SINGLE_FILE     ${BASENAMES_SINGLE_FILE} )
 
- set( TARGETS_IDIOMATIC_TESTS ${BASENAMES_IDIOMATIC_TESTS} )
 
- set( TARGETS_REPORTERS_TESTS ${BASENAMES_REPORTERS_TESTS} )
 
- set( TARGETS_REPORTERS_MAIN  ${BASENAMES_REPORTERS_MAIN} )
 
- set( TARGETS_ALL
 
-     ${TARGETS_SINGLE_FILE}
 
-     020-TestCase
 
-     ${TARGETS_IDIOMATIC_TESTS} CatchMain
 
-     ${TARGETS_REPORTERS_TESTS} CatchMainTeamCity
 
- )
 
- # define program targets:
 
- add_library( CatchMain         OBJECT ${EXAMPLES_DIR}/${SOURCES_IDIOMATIC_MAIN} ${HEADER_DIR}/catch2/catch.hpp )
 
- #add_library( CatchMainAutomake OBJECT ${EXAMPLES_DIR}/200-Rpt-CatchMain.cpp ${HEADER_DIR}/catch2/catch.hpp )
 
- #add_library( CatchMainTap      OBJECT ${EXAMPLES_DIR}/200-Rpt-CatchMain.cpp ${HEADER_DIR}/catch2/catch.hpp )
 
- add_library( CatchMainTeamCity OBJECT ${EXAMPLES_DIR}/200-Rpt-CatchMain.cpp ${HEADER_DIR}/catch2/catch.hpp )
 
- #target_compile_definitions( CatchMainAutomake PRIVATE CATCH_EXAMPLE_RPT_1=\"include/reporters/catch_reporter_automake.hpp\" )
 
- #target_compile_definitions( CatchMainTap      PRIVATE CATCH_EXAMPLE_RPT_1=\"include/reporters/catch_reporter_tap.hpp\" )
 
- target_compile_definitions( CatchMainTeamCity PRIVATE CATCH_EXAMPLE_RPT_1=\"include/reporters/catch_reporter_teamcity.hpp\" )
 
- foreach( name ${TARGETS_SINGLE_FILE} )
 
-     add_executable( ${name} ${EXAMPLES_DIR}/${name}.cpp ${HEADER_DIR}/catch2/catch.hpp )
 
- endforeach()
 
- foreach( name ${TARGETS_IDIOMATIC_TESTS} )
 
-     add_executable( ${name} ${EXAMPLES_DIR}/${name}.cpp $<TARGET_OBJECTS:CatchMain> ${HEADER_DIR}/catch2/catch.hpp )
 
- endforeach()
 
- add_executable( 020-TestCase ${EXAMPLES_DIR}/020-TestCase-1.cpp ${EXAMPLES_DIR}/020-TestCase-2.cpp ${HEADER_DIR}/catch2/catch.hpp )
 
- #add_executable( 207-Rpt-AutomakeReporter ${EXAMPLES_DIR}/207-Rpt-AutomakeReporter.cpp $<TARGET_OBJECTS:CatchMainAutomake> ${HEADER_DIR}/catch2/catch.hpp )
 
- #add_executable( 207-Rpt-TapReporter      ${EXAMPLES_DIR}/207-Rpt-TapReporter.cpp      $<TARGET_OBJECTS:CatchMainTap>      ${HEADER_DIR}/catch2/catch.hpp )
 
- add_executable( 207-Rpt-TeamCityReporter ${EXAMPLES_DIR}/207-Rpt-TeamCityReporter.cpp $<TARGET_OBJECTS:CatchMainTeamCity> ${HEADER_DIR}/catch2/catch.hpp )
 
- #foreach( name ${TARGETS_REPORTERS_TESTS} )
 
- #    add_executable( ${name} ${EXAMPLES_DIR}/${name}.cpp $<TARGET_OBJECTS:CatchMain> ${HEADER_DIR}/catch2/catch.hpp )
 
- #endforeach()
 
- foreach( name ${TARGETS_ALL} )
 
-     target_include_directories( ${name} PRIVATE ${HEADER_DIR} ${CATCH_DIR} )
 
-     set_property(TARGET ${name} PROPERTY CXX_STANDARD 11)
 
-     set_property(TARGET ${name} PROPERTY CXX_EXTENSIONS OFF)
 
-     # Add desired warnings
 
-     if ( CMAKE_CXX_COMPILER_ID MATCHES "Clang|AppleClang|GNU" )
 
-         target_compile_options( ${name}  PRIVATE -Wall -Wextra -Wunreachable-code )
 
-     endif()
 
-     # Clang specific warning go here
 
-     if ( CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
 
-         # Actually keep these
 
-         target_compile_options( ${name}  PRIVATE -Wweak-vtables -Wexit-time-destructors -Wglobal-constructors -Wmissing-noreturn )
 
-     endif()
 
-     if ( CMAKE_CXX_COMPILER_ID MATCHES "MSVC" )
 
-         target_compile_options( ${name}  PRIVATE /W4 /w44265 /WX )
 
-     endif()
 
- endforeach()
 
 
  |