98 lines
1.7 KiB
CMake
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)
|