From 1cf017937726028b2bad4ead3367d5e0ad89ee17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Mon, 22 Oct 2012 17:44:38 +0200 Subject: [PATCH] Avoid linker errors with *WindowContext on mingw. --- modules/FindMagnum.cmake | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/modules/FindMagnum.cmake b/modules/FindMagnum.cmake index a242f3310..1e6e4e97f 100644 --- a/modules/FindMagnum.cmake +++ b/modules/FindMagnum.cmake @@ -78,6 +78,13 @@ else() find_package(OpenGLES2 REQUIRED) endif() +# On Windows, *WindowContext libraries need to have ${MAGNUM_LIBRARY} listed +# in dependencies also after *WindowContext.lib static library name to avoid +# linker errors +if(WIN32) + set(_WINDOWCONTEXT_MAGNUM_LIBRARY_DEPENDENCY ${MAGNUM_LIBRARY}) +endif() + # Additional components foreach(component ${Magnum_FIND_COMPONENTS}) string(TOUPPER ${component} _COMPONENT) @@ -96,7 +103,7 @@ foreach(component ${Magnum_FIND_COMPONENTS}) if(${component} STREQUAL GlutWindowContext) find_package(GLUT) if(GLUT_FOUND) - set(_MAGNUM_${_COMPONENT}_LIBRARIES ${GLUT_LIBRARIES}) + set(_MAGNUM_${_COMPONENT}_LIBRARIES ${GLUT_LIBRARIES} ${_WINDOWCONTEXT_MAGNUM_LIBRARY_DEPENDENCY}) else() unset(MAGNUM_${_COMPONENT}_LIBRARY) endif() @@ -106,7 +113,7 @@ foreach(component ${Magnum_FIND_COMPONENTS}) if(${component} STREQUAL Sdl2WindowContext) find_package(SDL2) if(SDL2_FOUND) - set(_MAGNUM_${_COMPONENT}_LIBRARIES ${SDL2_LIBRARY}) + set(_MAGNUM_${_COMPONENT}_LIBRARIES ${SDL2_LIBRARY} ${_WINDOWCONTEXT_MAGNUM_LIBRARY_DEPENDENCY}) set(_MAGNUM_${_COMPONENT}_INCLUDE_DIRS ${SDL2_INCLUDE_DIR}) else() unset(MAGNUM_${_COMPONENT}_LIBRARY) @@ -117,7 +124,7 @@ foreach(component ${Magnum_FIND_COMPONENTS}) if(${component} STREQUAL GlxWindowContext) find_package(X11) if(X11_FOUND) - set(_MAGNUM_${_COMPONENT}_LIBRARIES ${X11_LIBRARIES}) + set(_MAGNUM_${_COMPONENT}_LIBRARIES ${X11_LIBRARIES} ${_WINDOWCONTEXT_MAGNUM_LIBRARY_DEPENDENCY}) else() unset(MAGNUM_${_COMPONENT}_LIBRARY) endif() @@ -128,7 +135,7 @@ foreach(component ${Magnum_FIND_COMPONENTS}) find_package(EGL) find_package(X11) if(EGL_FOUND AND X11_FOUND) - set(_MAGNUM_${_COMPONENT}_LIBRARIES ${EGL_LIBRARY} ${X11_LIBRARIES}) + set(_MAGNUM_${_COMPONENT}_LIBRARIES ${EGL_LIBRARY} ${X11_LIBRARIES} ${_WINDOWCONTEXT_MAGNUM_LIBRARY_DEPENDENCY}) else() unset(MAGNUM_${_COMPONENT}_LIBRARY) endif()