# This CMakeLists.txt checks the system for the Google Test framework. # In case GTest is not found, the manual test cases are used in manualtest.cpp # instead of the cool unit tests in test.cpp cmake_minimum_required(VERSION 3.6) project(refcountedString) set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -pedantic -Wno-unused-comparison") set(STRING_FILES String.cpp String.h StringValue.cpp StringValue.h Char.cpp Char.h) set(UNIT_SOURCE_FILES ${STRING_FILES} test.cpp) set(MANUAL_SOURCE_FILES ${STRING_FILES} manualtest.cpp) include(FindGTest) enable_testing() find_package(GTest) if(GTEST_FOUND) find_package(Threads REQUIRED) link_libraries(${CMAKE_THREAD_LIBS_INIT}) include_directories(${GTEST_INCLUDE_DIRS}) link_libraries(${GTEST_BOTH_LIBRARIES}) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-gnu-zero-variadic-macro-arguments") add_executable(refcountedString ${UNIT_SOURCE_FILES}) else(GTEST_FOUND) add_executable(refcountedString ${MANUAL_SOURCE_FILES}) endif(GTEST_FOUND)