Fix up minimal dependency case and clang support.
This commit is contained in:
parent
925f0c3ccd
commit
1adc9272f8
17 changed files with 183 additions and 226 deletions
|
@ -1,3 +1,7 @@
|
|||
set(MODULE_NAME graphics)
|
||||
|
||||
message(STATUS "Checking dependencies for module: " ${MODULE_NAME})
|
||||
|
||||
set(platform_LIB_INCLUDES "")
|
||||
set(platform_INCLUDE_DIRS "")
|
||||
set(platform_HEADERS "")
|
||||
|
@ -28,27 +32,29 @@ if (OpenGL_FOUND)
|
|||
opengl/OpenGlFontTexture.cpp
|
||||
opengl/OpenGlShaderProgram.cpp
|
||||
)
|
||||
list(APPEND graphics_HEADERS
|
||||
list(APPEND ${MODULE_NAME}
|
||||
opengl/OpenGlPainter.h
|
||||
opengl/OpenGlTextPainter.h
|
||||
opengl/OpenGlMeshPainter.h
|
||||
opengl/OpenGlFontTexture.h
|
||||
opengl/OpenGlShaderProgram.h)
|
||||
list(APPEND DEFINES "HAS_OPENGL")
|
||||
else()
|
||||
message(STATUS "OpenGL headers not found - skipping OpenGL support")
|
||||
message(STATUS "OpenGL not found - skipping support")
|
||||
endif()
|
||||
|
||||
add_library(graphics SHARED
|
||||
add_library(${MODULE_NAME} SHARED
|
||||
${graphics_LIB_INCLUDES}
|
||||
${graphics_HEADERS})
|
||||
|
||||
target_include_directories(graphics PUBLIC
|
||||
target_include_directories(${MODULE_NAME} PUBLIC
|
||||
${platform_INCLUDE_DIRS}
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/opengl"
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/opengl
|
||||
)
|
||||
|
||||
target_link_libraries(graphics PUBLIC geometry mesh fonts image visual_elements ${platform_LIBS})
|
||||
target_compile_definitions(${MODULE_NAME} PRIVATE ${DEFINES})
|
||||
target_link_libraries(${MODULE_NAME} PUBLIC geometry mesh fonts image visual_elements ${platform_LIBS})
|
||||
|
||||
set_property(TARGET graphics PROPERTY FOLDER src)
|
||||
set_target_properties( graphics PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON )
|
||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER src)
|
||||
set_target_properties( ${MODULE_NAME} PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON )
|
|
@ -1,10 +1,12 @@
|
|||
#include "PainterFactory.h"
|
||||
|
||||
#ifdef HAS_OPENGL
|
||||
#include "OpenGlPainter.h"
|
||||
#include "OpenGlMeshPainter.h"
|
||||
#include "OpenGlTextPainter.h"
|
||||
#include "OpenGlShaderProgram.h"
|
||||
#include "OpenGlFontTexture.h"
|
||||
#endif
|
||||
|
||||
#include "Grid.h"
|
||||
|
||||
|
@ -14,6 +16,7 @@
|
|||
|
||||
std::unique_ptr<AbstractPainter> PainterFactory::Create(DrawingMode drawMode)
|
||||
{
|
||||
#ifdef HAS_OPENGL
|
||||
if (drawMode == DrawingMode::GRAPH)
|
||||
{
|
||||
return std::make_unique<OpenGlPainter>();
|
||||
|
@ -22,6 +25,9 @@ std::unique_ptr<AbstractPainter> PainterFactory::Create(DrawingMode drawMode)
|
|||
{
|
||||
return std::make_unique<RasterPainter>();
|
||||
}
|
||||
#else
|
||||
return std::make_unique<RasterPainter>();
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue