# Extension wrangler add_library(MagnumContextsExtensionWrangler OBJECT ExtensionWrangler.cpp) set(MagnumContexts_HEADERS AbstractContextHandler.h AbstractWindowContext.h ExtensionWrangler.h) install(FILES ${MagnumContexts_HEADERS} DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Contexts) # GLUT window context if(WITH_GLUTWINDOWCONTEXT) find_package(GLUT) if(GLUT_FOUND) add_library(MagnumGlutWindowContext STATIC GlutWindowContext.cpp $) install(FILES GlutWindowContext.h DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Contexts) install(TARGETS MagnumGlutWindowContext DESTINATION ${MAGNUM_LIBRARY_INSTALL_DIR}) else() message(FATAL_ERROR "GLUT library, required by GlutWindowContext, was not found. Set WITH_GLUTWINDOWCONTEXT to OFF to skip building it.") endif() endif() # SDL2 window context if(WITH_SDL2WINDOWCONTEXT) find_package(SDL2) if(SDL2_FOUND) include_directories(${SDL2_INCLUDE_DIR}) add_library(MagnumSdl2WindowContext STATIC Sdl2WindowContext.cpp $) install(FILES Sdl2WindowContext.h DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Contexts) install(TARGETS MagnumSdl2WindowContext DESTINATION ${MAGNUM_LIBRARY_INSTALL_DIR}) else() message(FATAL_ERROR "SDL2 library, required by Sdl2WindowContext, was not found. Set WITH_SDL2WINDOWCONTEXT to OFF to skip building it.") endif() endif() # GLX window context if(WITH_GLXWINDOWCONTEXT) set(NEED_ABSTRACTXWINDOWCONTEXT 1) set(NEED_GLXCONTEXT 1) add_library(MagnumGlxWindowContext STATIC $ $ $) install(FILES GlxWindowContext.h DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Contexts) install(TARGETS MagnumGlxWindowContext DESTINATION ${MAGNUM_LIBRARY_INSTALL_DIR}) endif() # X/EGL window context if(WITH_XEGLWINDOWCONTEXT) set(NEED_ABSTRACTXWINDOWCONTEXT 1) set(NEED_EGLCONTEXT 1) add_library(MagnumXEglWindowContext STATIC $ $ $) install(FILES XEglWindowContext.h DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Contexts) install(TARGETS MagnumXEglWindowContext DESTINATION ${MAGNUM_LIBRARY_INSTALL_DIR}) endif() # Abstract X window context if(NEED_ABSTRACTXWINDOWCONTEXT) find_package(X11) if(NOT X11_FOUND) message(FATAL_ERROR "X11 library, required by some contexts, was not found. Set WITH_*X*WINDOWCONTEXT to OFF to skip building them.") endif() add_library(MagnumAbstractXWindowContext OBJECT AbstractXWindowContext.cpp) # X11 macros are a mess, disable warnings for C-style casts set_target_properties(MagnumAbstractXWindowContext PROPERTIES COMPILE_FLAGS "-Wno-old-style-cast") install(FILES AbstractXWindowContext.h DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Contexts) endif() # GLX window context if(NEED_GLXCONTEXT) add_library(MagnumGlxContextHandler OBJECT GlxContextHandler.cpp) # X11 macros are a mess, disable warnings for C-style casts set_target_properties(MagnumGlxContextHandler PROPERTIES COMPILE_FLAGS "-Wno-old-style-cast") install(FILES GlxContextHandler.h DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Contexts) endif() # EGL context if(NEED_EGLCONTEXT) find_package(EGL) if(NOT EGL_FOUND) message(FATAL_ERROR "EGL library, required by some window contexts, was not found. Set WITH_*EGL*WINDOWCONTEXT to OFF to skip building them.") endif() add_library(MagnumEglContextHandler OBJECT EglContextHandler.cpp) # X11 macros are a mess, disable warnings for C-style casts set_target_properties(MagnumEglContextHandler PROPERTIES COMPILE_FLAGS "-Wno-old-style-cast") install(FILES EglContextHandler.h DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Contexts) endif()