# author: Tyson Jones # locate Catch2 header for compiler include_directories(catch) # compile Catch2 unit tests in C++14 add_executable(tests main.cpp utilities.cpp test_calculations.cpp test_data_structures.cpp test_decoherence.cpp test_gates.cpp test_operators.cpp test_state_initialisations.cpp test_unitaries.cpp ) set_property(TARGET tests PROPERTY CXX_STANDARD 14) # link QuEST if (WIN32) target_link_libraries(tests QuEST) else () target_link_libraries(tests QuEST m) endif () if (${DISTRIBUTED}) # distributed unit tests must supply an MPI-clue to (modified) catch add_definitions(-DDISTRIBUTED_MODE) # compile and link C++ MPI find_package(MPI REQUIRED) include_directories(${MPI_CXX_INCLUDE_PATH}) target_link_libraries(tests ${MPI_CXX_LIBRARIES}) endif () # locate Catch2 scripts for CMake list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/catch) include(CTest) include(Catch) # register Catch2 tests as individual CTest tests catch_discover_tests(tests)