Add CMake configuration files, meant for VC devel package
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
diff --git a/VisualC/pkg-support/cmake/sdl2-config-version.cmake b/VisualC/pkg-support/cmake/sdl2-config-version.cmake
new file mode 100644
index 0000000..42bb6e7
--- /dev/null
+++ b/VisualC/pkg-support/cmake/sdl2-config-version.cmake
@@ -0,0 +1,54 @@
+# based on the files generated by CMake's write_basic_package_version_file
+
+# SDL2 CMake version configuration file:
+# This file is meant to be placed in a cmake subfolder of SDL2-devel-2.x.y-VC
+
+if(NOT EXISTS "${CMAKE_CURRENT_LIST_DIR}/../include/SDL_version.h")
+ message(AUTHOR_WARNING "Could not find SDL_version.h. This script is meant to be placed in the root of SDL2-devel-2.x.y-VC")
+ return()
+endif()
+
+file(READ "${CMAKE_CURRENT_LIST_DIR}/../include/SDL_version.h" _sdl_version_h)
+string(REGEX MATCH "#define[ \t]+SDL_MAJOR_VERSION[ \t]+([0-9]+)" _sdl_major_re "${_sdl_version_h}")
+set(_sdl_major "${CMAKE_MATCH_1}")
+string(REGEX MATCH "#define[ \t]+SDL_MINOR_VERSION[ \t]+([0-9]+)" _sdl_minor_re "${_sdl_version_h}")
+set(_sdl_minor "${CMAKE_MATCH_1}")
+string(REGEX MATCH "#define[ \t]+SDL_PATCHLEVEL[ \t]+([0-9]+)" _sdl_patch_re "${_sdl_version_h}")
+set(_sdl_patch "${CMAKE_MATCH_1}")
+if(_sdl_major_re AND _sdl_minor_re AND _sdl_patch_re)
+ set(PACKAGE_VERSION "${_sdl_major}.${_sdl_minor}.${_sdl_patch}")
+else()
+ message(AUTHOR_WARNING "Could not extract version from SDL_version.h.")
+ return()
+endif()
+
+if(PACKAGE_FIND_VERSION_RANGE)
+ # Package version must be in the requested version range
+ if ((PACKAGE_FIND_VERSION_RANGE_MIN STREQUAL "INCLUDE" AND PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION_MIN)
+ OR ((PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "INCLUDE" AND PACKAGE_VERSION VERSION_GREATER PACKAGE_FIND_VERSION_MAX)
+ OR (PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "EXCLUDE" AND PACKAGE_VERSION VERSION_GREATER_EQUAL PACKAGE_FIND_VERSION_MAX)))
+ set(PACKAGE_VERSION_COMPATIBLE FALSE)
+ else()
+ set(PACKAGE_VERSION_COMPATIBLE TRUE)
+ endif()
+else()
+ if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
+ set(PACKAGE_VERSION_COMPATIBLE FALSE)
+ else()
+ set(PACKAGE_VERSION_COMPATIBLE TRUE)
+ if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION)
+ set(PACKAGE_VERSION_EXACT TRUE)
+ endif()
+ endif()
+endif()
+
+# if the using project doesn't have CMAKE_SIZEOF_VOID_P set, fail.
+if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "")
+ set(PACKAGE_VERSION_UNSUITABLE TRUE)
+endif()
+
+# check that the installed version has the same 32/64bit-ness as the one which is currently searching:
+if(NOT (CMAKE_SIZEOF_VOID_P STREQUAL "8" OR CMAKE_SIZEOF_VOID_P STREQUAL "4"))
+ set(PACKAGE_VERSION "${PACKAGE_VERSION} (32+64bit)")
+ set(PACKAGE_VERSION_UNSUITABLE TRUE)
+endif()
diff --git a/VisualC/pkg-support/cmake/sdl2-config.cmake b/VisualC/pkg-support/cmake/sdl2-config.cmake
new file mode 100644
index 0000000..a2f0e94
--- /dev/null
+++ b/VisualC/pkg-support/cmake/sdl2-config.cmake
@@ -0,0 +1,77 @@
+# SDL2 CMake configuration file:
+# This file is meant to be placed in a cmake subfolder of SDL2-devel-2.x.y-VC
+
+cmake_minimum_required(VERSION 3.0)
+
+set(_sdl2_known_comps SDL2 SDL2main SDL2test)
+if(NOT SDL2_FIND_COMPONENTS)
+ set(SDL2_FIND_COMPONENTS ${_sdl2_known_comps})
+endif()
+
+# Fail early when an unknown component is requested
+list(REMOVE_DUPLICATES SDL2_FIND_COMPONENTS)
+list(REMOVE_ITEM SDL2_FIND_COMPONENTS ${_sdl2_known_comps})
+if(SDL2_FIND_COMPONENTS)
+ set(missing_required_comps)
+ foreach(missingcomp ${SDL2_FIND_COMPONENTS})
+ if(SDL2_FIND_REQUIRED_${missingcomp})
+ list(APPEND missing_required_comps ${missingcomp})
+ endif()
+ endforeach()
+ if(missing_required_comps)
+ if(NOT SDL2_FIND_QUIETLY)
+ message(WARNING "SDL2: following component(s) are not available: ${missing_required_comps}")
+ endif()
+ set(SDL2_FOUND FALSE)
+ return()
+ endif()
+endif()
+
+set(SDL2_FOUND TRUE)
+
+if(CMAKE_SIZEOF_VOID_P STREQUAL "4")
+ set(_sdl_arch_subdir "x86")
+elseif(CMAKE_SIZEOF_VOID_P STREQUAL "8")
+ set(_sdl_arch_subdir "x64")
+else()
+ set(SDL2_FOUND FALSE)
+ return()
+endif()
+
+set(SDL2_INCLUDE_DIR "${CMAKE_CURRENT_LIST_DIR}/../include")
+set(SDL2_INCLUDE_DIRS "${SDL2_INCLUDE_DIR}")
+set(SDL2_LIBRARY "${CMAKE_CURRENT_LIST_DIR}/../lib/${_sdl_arch_subdir}/SDL2.lib")
+set(SDL2_DLL_LIBRARY "${CMAKE_CURRENT_LIST_DIR}/../lib/${_sdl_arch_subdir}/SDL2.dll")
+set(SDL2main_LIBRARY "${CMAKE_CURRENT_LIST_DIR}/../lib/${_sdl_arch_subdir}/SDL2main.lib")
+set(SDL2test_LIBRARY "${CMAKE_CURRENT_LIST_DIR}/../lib/${_sdl_arch_subdir}/SDL2test.lib")
+
+
+# All targets are created, even when some might not be requested though COMPONENTS.
+# This is done for compatibility with CMake generated SDL2-target.cmake files.
+
+if(NOT TARGET SDL2::SDL2)
+ add_library(SDL2::SDL2 SHARED IMPORTED)
+ set_target_properties(SDL2::SDL2
+ PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIR}"
+ IMPORTED_IMPLIB "${SDL2_LIBRARY}"
+ IMPORTED_LOCATION "${SDL2_DLL_LIBRARY}"
+ )
+endif()
+
+if(NOT TARGET SDL2::SDL2main)
+ add_library(SDL2::SDL2main STATIC IMPORTED)
+ set_target_properties(SDL2::SDL2main
+ PROPERTIES
+ IMPORTED_LOCATION "${SDL2main_LIBRARY}"
+ )
+endif()
+
+if(NOT TARGET SDL2::SDL2test)
+ add_library(SDL2::SDL2test STATIC IMPORTED)
+ set_target_properties(SDL2::SDL2test
+ PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIR}"
+ IMPORTED_LOCATION "${SDL2test_LIBRARY}"
+ )
+endif()