cmake_minimum_required(VERSION 3.7.2) if ("${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_SOURCE_DIR}") message(FATAL_ERROR "In-source builds are disabled. Please create a subfolder called build and use `cmake ..` inside it. NOTE: cmake will now create CMakeCache.txt and CMakeFiles/*. You must delete them, or cmake will refuse to work.") endif() set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "bin" "doc" "CMakeFiles" "lib" "include") project(GUI) set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_CLANG_TIDY "clang-tidy;") set(CMAKE_CXX_CLANG_TIDY clang-tidy;-header-filter=.;) file(GLOB_RECURSE SOURCES src/*.cpp) file(GLOB_RECURSE HEADERS src/*.hpp) file(GLOB_RECURSE TESTS test/*.cpp) set(LIB_PATH "${CMAKE_SOURCE_DIR}/../library") include_directories(${LIB_PATH}/include) add_executable(GUI ${SOURCES} ${HEADERS} main/main.cpp) target_link_libraries(GUI ${LIB_PATH}/lib/liblibrary.a) set(FLTK_SKIP_FLUID true) if(FALSE) include_directories(../fltk-1.3.5/FL) link_directories(${PROJECT_NAME} ../fltk-1.3.5/lib) target_link_libraries(${PROJECT_NAME} fltk) else() find_package(FLTK REQUIRED) include_directories(${FLTK_INCLUDE_DIR}) target_link_libraries(${PROJECT_NAME} ${FLTK_PLATFORM_DEPENDENT_LIBS} ${FLTK_LIBRARIES} ${OPENGL_LIBRARIES}) endif() enable_testing() find_package(Catch2 REQUIRED) add_executable(UnitTests ${SOURCES} ${HEADERS} ${TESTS}) target_link_libraries(UnitTests Catch2::Catch2) target_link_libraries(UnitTests ${LIB_PATH}/lib/liblibrary.a) target_link_libraries(UnitTests ${FLTK_PLATFORM_DEPENDENT_LIBS} ${FLTK_LIBRARIES} ${OPENGL_LIBRARIES}) include(CTest) include(Catch) catch_discover_tests(UnitTests)