From 0d9c5687dddcc2903441efba1c39a3357ff4b8f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Wed, 15 Jan 2020 19:30:18 +0100 Subject: [PATCH] modules: update just about all the modules, apparently. --- modules/FindCorrade.cmake | 32 +++++++++++++------ modules/FindGLFW.cmake | 43 +++++++++++++++++++++++-- modules/FindMagnum.cmake | 67 +++++++++++++++++++-------------------- modules/FindSDL2.cmake | 54 +++++++++++++++++++++++++++---- 4 files changed, 143 insertions(+), 53 deletions(-) diff --git a/modules/FindCorrade.cmake b/modules/FindCorrade.cmake index cc5b602..e57e441 100644 --- a/modules/FindCorrade.cmake +++ b/modules/FindCorrade.cmake @@ -88,6 +88,16 @@ # CORRADE_TARGET_WINDOWS_RT - Defined if compiled for Windows RT # CORRADE_TARGET_EMSCRIPTEN - Defined if compiled for Emscripten # CORRADE_TARGET_ANDROID - Defined if compiled for Android +# CORRADE_TARGET_GCC - Defined if compiling with GCC or GCC- +# compatible Clang +# CORRADE_TARGET_CLANG - Defined if compiling with Clang or any of its +# variants +# CORRADE_TARGET_APPLE_CLANG - Defined if compiling with Apple's Clang +# CORRADE_TARGET_CLANG_CL - Defined if compiling with Clang-CL (Clang +# with a MSVC frontend) +# CORRADE_TARGET_MSVC - Defined if compiling with MSVC or Clang with +# a MSVC frontend +# CORRADE_TARGET_MINGW` - Defined if compiling under MinGW # CORRADE_PLUGINMANAGER_NO_DYNAMIC_PLUGIN_SUPPORT - Defined if PluginManager # doesn't support dynamic plugin loading due to platform limitations # CORRADE_TESTSUITE_TARGET_XCTEST - Defined if TestSuite is targetting Xcode @@ -289,10 +299,9 @@ endif() # Read flags from configuration file(READ ${_CORRADE_CONFIGURE_FILE} _corradeConfigure) +string(REGEX REPLACE ";" "\\\\;" _corradeConfigure "${_corradeConfigure}") +string(REGEX REPLACE "\n" ";" _corradeConfigure "${_corradeConfigure}") set(_corradeFlags - # WARNING: CAREFUL HERE, the string(FIND) succeeds even if a subset is - # found -- so e.g. looking for TARGET_GL will match TARGET_GLES2 as well. - # So far that's not a problem, but might become an issue for new flags. MSVC2015_COMPATIBILITY MSVC2017_COMPATIBILITY MSVC2019_COMPATIBILITY @@ -307,11 +316,15 @@ set(_corradeFlags TARGET_WINDOWS_RT TARGET_EMSCRIPTEN TARGET_ANDROID + # TARGET_X86 etc and TARGET_LIBCXX are not exposed to CMake as the meaning + # is unclear on platforms with multi-arch binaries or when mixing different + # STL implementations. TARGET_GCC etc are figured out via UseCorrade.cmake, + # as the compiler can be different when compiling the lib & when using it. PLUGINMANAGER_NO_DYNAMIC_PLUGIN_SUPPORT TESTSUITE_TARGET_XCTEST UTILITY_USE_ANSI_COLORS) foreach(_corradeFlag ${_corradeFlags}) - string(FIND "${_corradeConfigure}" "#define CORRADE_${_corradeFlag}" _corrade_${_corradeFlag}) + list(FIND _corradeConfigure "#define CORRADE_${_corradeFlag}" _corrade_${_corradeFlag}) if(NOT _corrade_${_corradeFlag} EQUAL -1) set(CORRADE_${_corradeFlag} 1) endif() @@ -475,11 +488,7 @@ foreach(_component ${Corrade_FIND_COMPONENTS}) # PluginManager library elseif(_component STREQUAL PluginManager) - # At least static build needs this - if(CORRADE_TARGET_UNIX) - set_property(TARGET Corrade::${_component} APPEND PROPERTY - INTERFACE_LINK_LIBRARIES ${CMAKE_DL_LIBS}) - endif() + # -ldl is handled by Utility now # TestSuite library has some additional files elseif(_component STREQUAL TestSuite) @@ -514,6 +523,11 @@ foreach(_component ${Corrade_FIND_COMPONENTS}) set_property(TARGET Corrade::${_component} APPEND PROPERTY COMPATIBLE_INTERFACE_NUMBER_MAX CORRADE_CXX_STANDARD) + # Directory::libraryLocation() needs this + if(CORRADE_TARGET_UNIX) + set_property(TARGET Corrade::${_component} APPEND PROPERTY + INTERFACE_LINK_LIBRARIES ${CMAKE_DL_LIBS}) + endif() # AndroidLogStreamBuffer class needs to be linked to log library if(CORRADE_TARGET_ANDROID) set_property(TARGET Corrade::${_component} APPEND PROPERTY diff --git a/modules/FindGLFW.cmake b/modules/FindGLFW.cmake index 2e67547..d4c497c 100644 --- a/modules/FindGLFW.cmake +++ b/modules/FindGLFW.cmake @@ -12,6 +12,8 @@ # for internal usage: # # GLFW_LIBRARY - GLFW library +# GLFW_DLL_DEBUG - GLFW debug DLL on Windows, if found +# GLFW_DLL_RELEASE - GLFW release DLL on Windows, if found # GLFW_INCLUDE_DIR - Root include dir # @@ -61,11 +63,46 @@ if(TARGET glfw) include(FindPackageHandleStandardArgs) find_package_handle_standard_args("GLFW" DEFAULT_MSG _GLFW_INTERFACE_INCLUDE_DIRECTORIES) + + if(CORRADE_TARGET_WINDOWS) + # .dll is in LOCATION, .lib is in IMPLIB. Yay, useful! + get_target_property(GLFW_DLL_DEBUG glfw IMPORTED_LOCATION_DEBUG) + get_target_property(GLFW_DLL_RELEASE glfw IMPORTED_LOCATION_RELEASE) + endif() + return() endif() -# In case no config file was found, try manually finding the library. -find_library(GLFW_LIBRARY NAMES glfw glfw3) +if(CORRADE_TARGET_WINDOWS) + if(MSVC) + if(MSVC_VERSION VERSION_LESS 1910) + set(_GLFW_LIBRARY_PATH_SUFFIX lib-vc2015) + elseif(MSVC_VERSION VERSION_LESS 1920) + set(_GLFW_LIBRARY_PATH_SUFFIX lib-vc2017) + elseif(MSVC_VERSION VERSION_LESS 1930) + set(_GLFW_LIBRARY_PATH_SUFFIX lib-vc2019) + else() + message(FATAL_ERROR "Unsupported MSVC version") + endif() + elseif(MINGW) + set(_GLFW_LIBRARY_PATH_SUFFIX lib-mingw-w64) + else() + message(FATAL_ERROR "Unsupported compiler") + endif() +endif() + +# In case no config file was found, try manually finding the library. Prefer +# the glfw3dll as it's a dynamic library. +find_library(GLFW_LIBRARY + NAMES glfw glfw3dll glfw3 + PATH_SUFFIXES ${_GLFW_LIBRARY_PATH_SUFFIX}) + +if(CORRADE_TARGET_WINDOWS AND GLFW_LIBRARY MATCHES "glfw3dll.(lib|a)$") + # TODO: debug? + find_file(GLFW_DLL_RELEASE + NAMES glfw3.dll + PATH_SUFFIXES ${_GLFW_LIBRARY_PATH_SUFFIX}) +endif() # Include dir find_path(GLFW_INCLUDE_DIR @@ -81,7 +118,7 @@ if(NOT TARGET GLFW::GLFW) # Work around BUGGY framework support on macOS # https://cmake.org/Bug/view.php?id=14105 - if(CORRADE_TARGET_APPLE AND ${GLFW_LIBRARY} MATCHES "\\.framework$") + if(CORRADE_TARGET_APPLE AND GLFW_LIBRARY MATCHES "\\.framework$") set_property(TARGET GLFW::GLFW PROPERTY IMPORTED_LOCATION ${GLFW_LIBRARY}/GLFW) else() set_property(TARGET GLFW::GLFW PROPERTY IMPORTED_LOCATION ${GLFW_LIBRARY}) diff --git a/modules/FindMagnum.cmake b/modules/FindMagnum.cmake index 1f77aee..daef6d5 100644 --- a/modules/FindMagnum.cmake +++ b/modules/FindMagnum.cmake @@ -243,10 +243,9 @@ endif() # Read flags from configuration file(READ ${_MAGNUM_CONFIGURE_FILE} _magnumConfigure) +string(REGEX REPLACE ";" "\\\\;" _magnumConfigure "${_magnumConfigure}") +string(REGEX REPLACE "\n" ";" _magnumConfigure "${_magnumConfigure}") set(_magnumFlags - # WARNING: CAREFUL HERE, the string(FIND) succeeds even if a subset is - # found -- so e.g. looking for TARGET_GL will match TARGET_GLES2 as well. - # So far that's not a problem, but might become an issue for new flags. BUILD_DEPRECATED BUILD_STATIC TARGET_GL @@ -258,7 +257,7 @@ set(_magnumFlags TARGET_HEADLESS TARGET_VK) foreach(_magnumFlag ${_magnumFlags}) - string(FIND "${_magnumConfigure}" "#define MAGNUM_${_magnumFlag}" _magnum_${_magnumFlag}) + list(FIND _magnumConfigure "#define MAGNUM_${_magnumFlag}" _magnum_${_magnumFlag}) if(NOT _magnum_${_magnumFlag} EQUAL -1) set(MAGNUM_${_magnumFlag} 1) endif() @@ -363,17 +362,19 @@ set(_MAGNUM_EXECUTABLE_COMPONENT_LIST # Inter-component dependencies set(_MAGNUM_Audio_DEPENDENCIES ) -set(_MAGNUM_DebugTools_DEPENDENCIES ) +# Trade is used by CompareImage. If Trade is not enabled, CompareImage is not +# compiled at all. +set(_MAGNUM_DebugTools_DEPENDENCIES Trade) +set(_MAGNUM_DebugTools_Trade_DEPENDENCY_IS_OPTIONAL ON) +# MeshTools, Primitives, SceneGraph and Shaders are used only for GL renderers +# in DebugTools. All of this is optional, compiled in only if the base library +# was selected. if(MAGNUM_TARGET_GL) - # MeshTools, Primitives, SceneGraph and Shaders are used only for GL - # renderers. All of this is optional, compiled in only if the base library - # was selected. - list(APPEND _MAGNUM_DebugTools_DEPENDENCIES MeshTools Primitives SceneGraph Shaders Trade GL) + list(APPEND _MAGNUM_DebugTools_DEPENDENCIES MeshTools Primitives SceneGraph Shaders GL) set(_MAGNUM_DebugTools_MeshTools_DEPENDENCY_IS_OPTIONAL ON) set(_MAGNUM_DebugTools_Primitives_DEPENDENCY_IS_OPTIONAL ON) set(_MAGNUM_DebugTools_SceneGraph_DEPENDENCY_IS_OPTIONAL ON) set(_MAGNUM_DebugTools_Shaders_DEPENDENCY_IS_OPTIONAL ON) - set(_MAGNUM_DebugTools_Trade_DEPENDENCY_IS_OPTIONAL ON) set(_MAGNUM_DebugTools_GL_DEPENDENCY_IS_OPTIONAL ON) endif() @@ -805,9 +806,6 @@ foreach(_component ${Magnum_FIND_COMPONENTS}) # GL library elseif(_component STREQUAL GL) - set_property(TARGET Magnum::${_component} APPEND PROPERTY - INTERFACE_INCLUDE_DIRECTORIES ${MAGNUM_INCLUDE_DIR}/MagnumExternal/OpenGL) - if(NOT MAGNUM_TARGET_GLES OR MAGNUM_TARGET_DESKTOP_GLES) # If the GLVND library (CMake 3.11+) was found, link to the # imported target. Otherwise (and also on all systems except @@ -1011,15 +1009,15 @@ if(_MAGNUM_WINDOWLESSAPPLICATION_ALIAS AND NOT TARGET Magnum::WindowlessApplicat add_library(Magnum::WindowlessApplication ALIAS ${_MAGNUM_WINDOWLESSAPPLICATION_ALIASED_TARGET}) else() add_library(Magnum::WindowlessApplication UNKNOWN IMPORTED) - get_target_property(_MAGNUM_WINDOWLESSAPPLICATION_IMPORTED_CONFIGURATIONS ${_MAGNUM_WINDOWLESSAPPLICATION_ALIAS} IMPORTED_CONFIGURATIONS) + foreach(property IMPORTED_CONFIGURATIONS INTERFACE_INCLUDE_DIRECTORIES INTERFACE_COMPILE_DEFINITIONS INTERFACE_COMPILE_OPTIONS INTERFACE_LINK_LIBRARIES) + get_target_property(_MAGNUM_WINDOWLESSAPPLICATION_${property} ${_MAGNUM_WINDOWLESSAPPLICATION_ALIAS} ${property}) + if(_MAGNUM_WINDOWLESSAPPLICATION_${property}) + set_target_properties(Magnum::WindowlessApplication PROPERTIES + ${property} "${_MAGNUM_WINDOWLESSAPPLICATION_${property}}") + endif() + endforeach() get_target_property(_MAGNUM_WINDOWLESSAPPLICATION_IMPORTED_LOCATION_RELEASE ${_MAGNUM_WINDOWLESSAPPLICATION_ALIAS} IMPORTED_LOCATION_RELEASE) get_target_property(_MAGNUM_WINDOWLESSAPPLICATION_IMPORTED_LOCATION_DEBUG ${_MAGNUM_WINDOWLESSAPPLICATION_ALIAS} IMPORTED_LOCATION_DEBUG) - set_target_properties(Magnum::WindowlessApplication PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES $ - INTERFACE_COMPILE_DEFINITIONS $ - INTERFACE_COMPILE_OPTIONS $ - INTERFACE_LINK_LIBRARIES $ - IMPORTED_CONFIGURATIONS "${_MAGNUM_WINDOWLESSAPPLICATION_IMPORTED_CONFIGURATIONS}") if(_MAGNUM_WINDOWLESSAPPLICATION_IMPORTED_LOCATION_RELEASE) set_target_properties(Magnum::WindowlessApplication PROPERTIES IMPORTED_LOCATION_RELEASE ${_MAGNUM_WINDOWLESSAPPLICATION_IMPORTED_LOCATION_RELEASE}) @@ -1038,15 +1036,16 @@ if(_MAGNUM_APPLICATION_ALIAS AND NOT TARGET Magnum::Application) add_library(Magnum::Application ALIAS ${_MAGNUM_APPLICATION_ALIASED_TARGET}) else() add_library(Magnum::Application UNKNOWN IMPORTED) - get_target_property(_MAGNUM_APPLICATION_IMPORTED_CONFIGURATIONS ${_MAGNUM_APPLICATION_ALIAS} IMPORTED_CONFIGURATIONS) + foreach(property IMPORTED_CONFIGURATIONS INTERFACE_INCLUDE_DIRECTORIES INTERFACE_COMPILE_DEFINITIONS INTERFACE_COMPILE_OPTIONS INTERFACE_LINK_LIBRARIES) + get_target_property(_MAGNUM_APPLICATION_${property} + ${_MAGNUM_APPLICATION_ALIAS} ${property}) + if(_MAGNUM_APPLICATION_${property}) + set_target_properties(Magnum::Application PROPERTIES ${property} + "${_MAGNUM_APPLICATION_${property}}") + endif() + endforeach() get_target_property(_MAGNUM_APPLICATION_IMPORTED_LOCATION_RELEASE ${_MAGNUM_APPLICATION_ALIAS} IMPORTED_LOCATION_RELEASE) get_target_property(_MAGNUM_APPLICATION_IMPORTED_LOCATION_DEBUG ${_MAGNUM_APPLICATION_ALIAS} IMPORTED_LOCATION_DEBUG) - set_target_properties(Magnum::Application PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES $ - INTERFACE_COMPILE_DEFINITIONS $ - INTERFACE_COMPILE_OPTIONS $ - INTERFACE_LINK_LIBRARIES $ - IMPORTED_CONFIGURATIONS "${_MAGNUM_APPLICATION_IMPORTED_CONFIGURATIONS}") if(_MAGNUM_APPLICATION_IMPORTED_LOCATION_RELEASE) set_target_properties(Magnum::Application PROPERTIES IMPORTED_LOCATION_RELEASE ${_MAGNUM_APPLICATION_IMPORTED_LOCATION_RELEASE}) @@ -1065,15 +1064,15 @@ if(_MAGNUM_GLCONTEXT_ALIAS AND NOT TARGET Magnum::GLContext) add_library(Magnum::GLContext ALIAS ${_MAGNUM_GLCONTEXT_ALIASED_TARGET}) else() add_library(Magnum::GLContext UNKNOWN IMPORTED) - get_target_property(_MAGNUM_GLCONTEXT_IMPORTED_CONFIGURATIONS ${_MAGNUM_GLCONTEXT_ALIAS} IMPORTED_CONFIGURATIONS) + foreach(property IMPORTED_CONFIGURATIONS INTERFACE_INCLUDE_DIRECTORIES INTERFACE_COMPILE_DEFINITIONS INTERFACE_COMPILE_OPTIONS INTERFACE_LINK_LIBRARIES) + get_target_property(_MAGNUM_GLCONTEXT_${property} ${_MAGNUM_GLCONTEXT_ALIAS} ${property}) + if(_MAGNUM_GLCONTEXT_${property}) + set_target_properties(Magnum::GLContext PROPERTIES ${property} + "${_MAGNUM_GLCONTEXT_${property}}") + endif() + endforeach() get_target_property(_MAGNUM_GLCONTEXT_IMPORTED_LOCATION_RELEASE ${_MAGNUM_GLCONTEXT_ALIAS} IMPORTED_LOCATION_RELEASE) get_target_property(_MAGNUM_GLCONTEXT_IMPORTED_LOCATION_DEBUG ${_MAGNUM_GLCONTEXT_ALIAS} IMPORTED_LOCATION_DEBUG) - set_target_properties(Magnum::GLContext PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES $ - INTERFACE_COMPILE_DEFINITIONS $ - INTERFACE_COMPILE_OPTIONS $ - INTERFACE_LINK_LIBRARIES $ - IMPORTED_CONFIGURATIONS "${_MAGNUM_GLCONTEXT_IMPORTED_CONFIGURATIONS}") if(_MAGNUM_GLCONTEXT_IMPORTED_LOCATION_RELEASE) set_target_properties(Magnum::GLContext PROPERTIES IMPORTED_LOCATION_RELEASE ${_MAGNUM_GLCONTEXT_IMPORTED_LOCATION_RELEASE}) diff --git a/modules/FindSDL2.cmake b/modules/FindSDL2.cmake index 850d0d6..01fc6cf 100644 --- a/modules/FindSDL2.cmake +++ b/modules/FindSDL2.cmake @@ -11,6 +11,8 @@ # # SDL2_LIBRARY_DEBUG - SDL2 debug library, if found # SDL2_LIBRARY_RELEASE - SDL2 release library, if found +# SDL2_DLL_DEBUG - SDL2 debug DLL on Windows, if found +# SDL2_DLL_RELEASE - SDL2 release DLL on Windows, if found # SDL2_INCLUDE_DIR - Root include dir # @@ -62,11 +64,15 @@ else() elseif(MINGW) if(CMAKE_SIZEOF_VOID_P EQUAL 8) set(_SDL2_LIBRARY_PATH_SUFFIX x86_64-w64-mingw32/lib) + set(_SDL2_RUNTIME_PATH_SUFFIX x86_64-w64-mingw32/bin) list(APPEND _SDL2_PATH_SUFFIXES x86_64-w64-mingw32/include/SDL2) elseif(CMAKE_SIZEOF_VOID_P EQUAL 4) set(_SDL2_LIBRARY_PATH_SUFFIX i686-w64-mingw32/lib) + set(_SDL2_RUNTIME_PATH_SUFFIX i686-w64-mingw32/lib) list(APPEND _SDL2_PATH_SUFFIXES i686-w64-mingw32/include/SDL2) endif() + else() + message(FATAL_ERROR "Unsupported compiler") endif() endif() @@ -101,8 +107,18 @@ find_path(SDL2_INCLUDE_DIR NAMES SDL_scancode.h PATH_SUFFIXES ${_SDL2_PATH_SUFFIXES}) -# iOS dependencies -if(CORRADE_TARGET_IOS) +# DLL on Windows +if(CORRADE_TARGET_WINDOWS) + find_file(SDL2_DLL_RELEASE + NAMES SDL2.dll + PATH_SUFFIXES ${_SDL2_RUNTIME_PATH_SUFFIX} ${_SDL2_LIBRARY_PATH_SUFFIX}) + find_file(SDL2_DLL_DEBUG + NAMES SDL2d.dll # not sure? + PATH_SUFFIXES ${_SDL2_RUNTIME_PATH_SUFFIX} ${_SDL2_LIBRARY_PATH_SUFFIX}) +endif() + +# (Static) iOS dependencies +if(CORRADE_TARGET_IOS AND SDL2_LIBRARY MATCHES ".*libSDL2.a$") set(_SDL2_FRAMEWORKS AudioToolbox AVFoundation @@ -110,6 +126,7 @@ if(CORRADE_TARGET_IOS) CoreMotion Foundation GameController + Metal # needed since 2.0.8 QuartzCore UIKit) set(_SDL2_FRAMEWORK_LIBRARIES ) @@ -151,17 +168,40 @@ if(NOT TARGET SDL2::SDL2) # Link additional `dl` and `pthread` libraries required by a static # build of SDL on Unixy platforms (except Apple, where it is most # probably some frameworks instead) - if(CORRADE_TARGET_UNIX AND NOT CORRADE_TARGET_APPLE AND SDL2_LIBRARY MATCHES "${CMAKE_STATIC_LIBRARY_SUFFIX}$") - find_package(Threads) + if(CORRADE_TARGET_UNIX AND NOT CORRADE_TARGET_APPLE AND (SDL2_LIBRARY_DEBUG MATCHES "${CMAKE_STATIC_LIBRARY_SUFFIX}$" OR SDL2_LIBRARY_RELEASE MATCHES "${CMAKE_STATIC_LIBRARY_SUFFIX}$")) + find_package(Threads REQUIRED) set_property(TARGET SDL2::SDL2 APPEND PROPERTY - INTERFACE_LINK_LIBRARIES ${CMAKE_THREAD_LIBS_INIT} ${CMAKE_DL_LIBS}) + INTERFACE_LINK_LIBRARIES Threads::Threads ${CMAKE_DL_LIBS}) endif() - # Link frameworks on iOS - if(CORRADE_TARGET_IOS) + # Link frameworks on iOS if we have a static SDL + if(CORRADE_TARGET_IOS AND SDL2_LIBRARY MATCHES ".*libSDL2.a$") set_property(TARGET SDL2::SDL2 APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${_SDL2_FRAMEWORK_LIBRARIES}) endif() + + # Windows dependencies for a static library. Unfortunately there's no + # easy way to figure out if a *.lib is static or dynamic, so we're + # adding only if a DLL is not found. + if(CORRADE_TARGET_WINDOWS AND NOT CORRADE_TARGET_WINDOWS_RT AND NOT SDL2_DLL_RELEASE AND NOT SDL2_DLL_DEBUG) + set_property(TARGET SDL2::SDL2 APPEND PROPERTY INTERFACE_LINK_LIBRARIES + # https://github.com/SDL-mirror/SDL/blob/release-2.0.10/CMakeLists.txt#L1338 + user32 gdi32 winmm imm32 ole32 oleaut32 version uuid advapi32 setupapi shell32 + # https://github.com/SDL-mirror/SDL/blob/release-2.0.10/CMakeLists.txt#L1384 + dinput8) + # https://github.com/SDL-mirror/SDL/blob/release-2.0.10/CMakeLists.txt#L1422 + # additionally has dxerr for MSVC if DirectX SDK is not used, but + # according to https://walbourn.github.io/wheres-dxerr-lib/ this + # thing is long deprecated. + if(MINGW) + set_property(TARGET SDL2::SDL2 APPEND PROPERTY INTERFACE_LINK_LIBRARIES + # https://github.com/SDL-mirror/SDL/blob/release-2.0.10/CMakeLists.txt#L1386 + dxerr8 + # https://github.com/SDL-mirror/SDL/blob/release-2.0.10/CMakeLists.txt#L1388 + mingw32) + endif() + endif() + else() add_library(SDL2::SDL2 INTERFACE IMPORTED) endif()