cmake_minimum_required(VERSION 3.10) project(UnitTestpp LANGUAGES CXX) add_library(UnitTestpp AssertException.cpp Checks.cpp CompositeTestReporter.cpp CurrentTest.cpp DeferredTestReporter.cpp DeferredTestResult.cpp MemoryOutStream.cpp ReportAssert.cpp RequiredCheckException.cpp RequiredCheckTestReporter.cpp Test.cpp TestDetails.cpp TestList.cpp TestReporter.cpp TestReporterStdout.cpp TestResults.cpp TestRunner.cpp ThrowingTestReporter.cpp TimeConstraint.cpp XmlTestReporter.cpp ) target_include_directories(UnitTestpp SYSTEM INTERFACE ..) if (WIN32) target_sources(UnitTestpp PRIVATE Win32/TimeHelpers.cpp) else () target_sources(UnitTestpp PRIVATE Posix/SignalTranslator.cpp Posix/TimeHelpers.cpp ) endif () if ((CMAKE_CXX_COMPILER_ID MATCHES "GNU") OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang")) target_compile_options(UnitTestpp PRIVATE -fexceptions) endif () if (UNIX AND NOT APPLE) # atomic is need on Linux with Clang set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED) target_link_libraries(UnitTestpp PRIVATE atomic Threads::Threads) elseif (NOT UNIX AND APPLE) set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED) target_link_libraries(UnitTestpp PRIVATE Threads::Threads) endif ()