This repository has been archived on 2024-01-28. You can view files and clone it, but cannot push or open issues/pull-requests.
ecg-prog-filtered/u02/CMakeLists.txt

98 lines
1.7 KiB
CMake

# set vim: noet:
cmake_minimum_required( VERSION 3.10 )
project(exercise2)
set(OpenGL_GL_PREFERENCE GLVND)
# Gebraucht werden OpenGL und GLUT
find_package(OpenGL REQUIRED)
find_package(GLUT REQUIRED)
# Definition der Headerdateien
set(HEADERS
include/tool_base.h
include/application.h
include/bresenham_circle_tool.h
include/bresenham_line_tool.h
include/canvas_renderer.h
include/canvas_buffer.h
include/dda_line_tool.h
include/line_fill_tool.h
include/non_recursive_fill_tool.h
include/pen_tool.h
include/preview_renderer.h
include/rectangle_tool.h
include/recursive_fill_tool.h
include/sweep_line_tool.h
include/tiny_vec.h
include/util.h
)
# Definition der Sourcedateien
set(EXECUTABLE_SOURCES
src/main.cpp
)
set(SOURCES
src/tool_base.cpp
src/application.cpp
src/bresenham_circle_tool.cpp
src/bresenham_line_tool.cpp
src/canvas_renderer.cpp
src/canvas_buffer.cpp
src/dda_line_tool.cpp
src/line_fill_tool.cpp
src/non_recursive_fill_tool.cpp
src/pen_tool.cpp
src/preview_renderer.cpp
src/rectangle_tool.cpp
src/recursive_fill_tool.cpp
src/sweep_line_tool.cpp
src/util.cpp
)
# Includeverzeichnisse setzen
include_directories(
include
)
# Support fuer C++-11 aktivieren
set(CMAKE_CXX_STANDARD 11)
# Ziel hinzufuegen
add_executable(exercise2
${EXECUTABLE_SOURCES}
${SOURCES}
${HEADERS}
)
# Bibliotheken linken
target_link_libraries(exercise2
OpenGL::GL
OpenGL::GLU
GLUT::GLUT
)
find_package(Catch2 3.3)
if(Catch2_FOUND)
# Catch2 requires C++17
set(CMAKE_CXX_STANDARD 17)
add_executable(tests src/tests.cpp ${SOURCES} ${HEADERS})
target_link_libraries(tests
PRIVATE Catch2::Catch2WithMain
OpenGL::GL
OpenGL::GLU
GLUT::GLUT
)
include(CTest)
include(Catch)
catch_discover_tests(tests)
endif()
install(TARGETS exercise2)