Atlas - sdlcommands.cmake

Home / ext / SDL / cmake Lines: 4 | Size: 17873 bytes [Download] [Show on GitHub] [Search similar files] [Raw] [Raw (proxy)]
[FILE BEGIN]
1add_library(SDL3-collector INTERFACE) 2add_library(SDL3_test-collector INTERFACE) 3 4function(sdl_source_group prefix_directory) 5 set(prefixed_list) 6 file(TO_CMAKE_PATH ${prefix_directory} normalized_prefix_path) 7 foreach(file in ${ARGN}) 8 file(TO_CMAKE_PATH ${file} normalized_path) 9 string(FIND "${normalized_path}" ${normalized_prefix_path} position) 10 if("${position}" EQUAL 0) 11 list(APPEND prefixed_list ${file}) 12 endif() 13 endforeach() 14 if(prefixed_list) 15 source_group(TREE ${prefix_directory} FILES ${prefixed_list}) 16 endif() 17endfunction() 18 19# Use sdl_glob_sources to add glob sources to SDL3-shared, to SDL3-static, or to both. 20function(sdl_glob_sources) 21 cmake_parse_arguments(ARGS "" "" "SHARED;STATIC" ${ARGN}) 22 if(ARGS_SHARED) 23 file(GLOB shared_sources CONFIGURE_DEPENDS ${ARGS_SHARED}) 24 endif() 25 if(ARGS_STATIC) 26 file(GLOB static_sources CONFIGURE_DEPENDS ${ARGS_STATIC}) 27 endif() 28 if(ARGS_UNPARSED_ARGUMENTS) 29 file(GLOB both_sources CONFIGURE_DEPENDS ${ARGS_UNPARSED_ARGUMENTS}) 30 endif() 31 if(TARGET SDL3-shared) 32 target_sources(SDL3-shared PRIVATE ${shared_sources} ${both_sources}) 33 endif() 34 if(TARGET SDL3-static) 35 target_sources(SDL3-static PRIVATE ${static_sources} ${both_sources}) 36 endif() 37 sdl_source_group(${PROJECT_SOURCE_DIR} ${shared_sources} ${shared_sources} ${both_sources}) 38 set_property(TARGET SDL3-collector APPEND PROPERTY INTERFACE_SOURCES ${shared_sources} ${static_sources} ${both_sources}) 39endfunction() 40 41# Use sdl_sources to add sources to SDL3-shared, to SDL3-static, or to both. 42function(sdl_sources) 43 cmake_parse_arguments(ARGS "" "" "SHARED;STATIC" ${ARGN}) 44 if(TARGET SDL3-shared) 45 target_sources(SDL3-shared PRIVATE ${ARGS_SHARED} ${ARGS_UNPARSED_ARGUMENTS}) 46 endif() 47 if(TARGET SDL3-static) 48 target_sources(SDL3-static PRIVATE ${ARGS_STATIC} ${ARGS_UNPARSED_ARGUMENTS}) 49 endif() 50 sdl_source_group(${PROJECT_SOURCE_DIR} ${ARGS_SHARED} ${ARGS_STATIC} ${ARGS_UNPARSED_ARGUMENTS}) 51 set_property(TARGET SDL3-collector APPEND PROPERTY INTERFACE_SOURCES ${ARGS_SHARED} ${ARGS_STATIC} ${ARGS_UNPARSED_ARGUMENTS}) 52endfunction() 53 54# Use sdl_generic_link_dependency to describe a private dependency. All options are optional. 55# Users should use sdl_link_dependency and sdl_test_link_dependency instead 56# - SHARED_TARGETS: shared targets to add this dependency to 57# - STATIC_TARGETS: static targets to add this dependency to 58# - COLLECTOR: target that stores information, for pc and Config.cmake generation. 59# - INCLUDES: the include directories of the dependency 60# - PKG_CONFIG_PREFIX: name of the prefix, when using the functions of FindPkgConfig 61# - PKG_CONFIG_SPECS: pkg-config spec, used as argument for the functions of FindPkgConfig 62# - PKG_CONFIG_LIBS: libs that will only end up in the Libs.private of the .pc file 63# - PKG_CONFIG_LINK_OPTIONS: ldflags that will only end up in the Libs.private of sdl3.pc 64# - CMAKE_MODULE: CMake module name of the dependency, used as argument of find_package 65# - LIBS: list of libraries to link to (cmake and pkg-config) 66# - LINK_OPTIONS: list of link options (also used in pc file, unless PKG_CONFIG_LINK_OPTION is used) 67function(sdl_generic_link_dependency ID) 68 cmake_parse_arguments(ARGS "" "COLLECTOR" "SHARED_TARGETS;STATIC_TARGETS;INCLUDES;PKG_CONFIG_LINK_OPTIONS;PKG_CONFIG_LIBS;PKG_CONFIG_PREFIX;PKG_CONFIG_SPECS;CMAKE_MODULE;LIBS;LINK_OPTIONS" ${ARGN}) 69 foreach(target IN LISTS ARGS_SHARED_TARGETS) 70 if(TARGET ${target}) 71 target_include_directories(${target} SYSTEM PRIVATE ${ARGS_INCLUDES}) 72 target_link_libraries(${target} PRIVATE ${ARGS_LIBS}) 73 target_link_options(${target} PRIVATE ${ARGS_LINK_OPTIONS}) 74 endif() 75 endforeach() 76 foreach(target IN LISTS ARGS_STATIC_TARGETS) 77 if(TARGET ${target}) 78 target_include_directories(${target} SYSTEM PRIVATE ${ARGS_INCLUDES}) 79 target_link_libraries(${target} PRIVATE ${ARGS_LIBS}) 80 target_link_options(${target} INTERFACE ${ARGS_LINK_OPTIONS}) 81 endif() 82 endforeach() 83 get_property(ids TARGET ${ARGS_COLLECTOR} PROPERTY INTERFACE_SDL_DEP_IDS) 84 if(NOT ID IN_LIST ids) 85 set_property(TARGET ${ARGS_COLLECTOR} APPEND PROPERTY INTERFACE_SDL_DEP_IDS ${ID}) 86 endif() 87 set_property(TARGET ${ARGS_COLLECTOR} APPEND PROPERTY INTERFACE_SDL_DEP_${ID}_PKG_CONFIG_PREFIX ${ARGS_PKG_CONFIG_PREFIX}) 88 set_property(TARGET ${ARGS_COLLECTOR} APPEND PROPERTY INTERFACE_SDL_DEP_${ID}_PKG_CONFIG_SPECS ${ARGS_PKG_CONFIG_SPECS}) 89 set_property(TARGET ${ARGS_COLLECTOR} APPEND PROPERTY INTERFACE_SDL_DEP_${ID}_PKG_CONFIG_LIBS ${ARGS_PKG_CONFIG_LIBS}) 90 set_property(TARGET ${ARGS_COLLECTOR} APPEND PROPERTY INTERFACE_SDL_DEP_${ID}_PKG_CONFIG_LINK_OPTIONS ${ARGS_PKG_CONFIG_LINK_OPTIONS}) 91 set_property(TARGET ${ARGS_COLLECTOR} APPEND PROPERTY INTERFACE_SDL_DEP_${ID}_LIBS ${ARGS_LIBS}) 92 set_property(TARGET ${ARGS_COLLECTOR} APPEND PROPERTY INTERFACE_SDL_DEP_${ID}_LINK_OPTIONS ${ARGS_LINK_OPTIONS}) 93 set_property(TARGET ${ARGS_COLLECTOR} APPEND PROPERTY INTERFACE_SDL_DEP_${ID}_CMAKE_MODULE ${ARGS_CMAKE_MODULE}) 94 set_property(TARGET ${ARGS_COLLECTOR} APPEND PROPERTY INTERFACE_SDL_DEP_${ID}_INCLUDES ${ARGS_INCLUDES}) 95endfunction() 96 97function(sdl_link_dependency ) 98 sdl_generic_link_dependency(${ARGN} COLLECTOR SDL3-collector SHARED_TARGETS SDL3-shared STATIC_TARGETS SDL3-static) 99endfunction() 100 101function(sdl_test_link_dependency ) 102 sdl_generic_link_dependency(${ARGN} COLLECTOR SDL3_test-collector STATIC_TARGETS SDL3_test) 103endfunction() 104 105macro(_get_ARGS_visibility) 106 set(_conflict FALSE) 107 set(visibility) 108 if(ARGS_PRIVATE) 109 set(visibility PRIVATE) 110 elseif(ARGS_PUBLIC) 111 if(visibility) 112 set(_conflict TRUE) 113 endif() 114 set(visibility PUBLIC) 115 elseif(ARGS_INTERFACE) 116 if(visibility) 117 set(_conflict TRUE) 118 endif() 119 set(visibility INTERFACE) 120 endif() 121 if(_conflict OR NOT visibility) 122 message(FATAL_ERROR "PRIVATE/PUBLIC/INTERFACE must be used exactly once") 123 endif() 124 unset(_conflict) 125endmacro() 126 127# Use sdl_link_dependency to add compile definitions to the SDL3 libraries. 128function(sdl_compile_definitions) 129 cmake_parse_arguments(ARGS "PRIVATE;PUBLIC;INTERFACE;NO_EXPORT" "" "" ${ARGN}) 130 _get_ARGS_visibility() 131 if(TARGET SDL3-shared) 132 target_compile_definitions(SDL3-shared ${visibility} ${ARGS_UNPARSED_ARGUMENTS}) 133 endif() 134 if(TARGET SDL3-static) 135 target_compile_definitions(SDL3-static ${visibility} ${ARGS_UNPARSED_ARGUMENTS}) 136 endif() 137 if(NOT ARGS_NO_EXPORT AND (ARGS_PUBLIC OR ARGS_INTERFACE)) 138 set_property(TARGET SDL3-collector APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS "${ARGS_UNPARSED_ARGUMENTS}") 139 endif() 140endfunction() 141 142# Use sdl_link_dependency to add compile options to the SDL3 libraries. 143function(sdl_compile_options) 144 cmake_parse_arguments(ARGS "PRIVATE;PUBLIC;INTERFACE;NO_EXPORT" "" "" ${ARGN}) 145 _get_ARGS_visibility() 146 set(escaped_opts ${ARGS_UNPARSED_ARGUMENTS}) 147 if(ARGS_NO_EXPORT) 148 set(escaped_opts "$<BUILD_INTERFACE:${ARGS_UNPARSED_ARGUMENTS}>") 149 endif() 150 if(TARGET SDL3-shared) 151 target_compile_options(SDL3-shared ${visibility} ${escaped_opts}) 152 endif() 153 if(TARGET SDL3-static) 154 target_compile_options(SDL3-static ${visibility} ${escaped_opts}) 155 endif() 156 if(NOT ARGS_NO_EXPORT AND (ARGS_PUBLIC OR ARGS_INTERFACE)) 157 set_property(TARGET SDL3-collector APPEND PROPERTY INTERFACE_COMPILE_OPTIONS "${ARGS_UNPARSED_ARGUMENTS}") 158 endif() 159endfunction() 160 161# Use sdl_link_dependency to add include directories to the SDL3 libraries. 162function(sdl_include_directories) 163 cmake_parse_arguments(ARGS "SYSTEM;BEFORE;AFTER;PRIVATE;PUBLIC;INTERFACE;NO_EXPORT" "" "" ${ARGN}) 164 set(system "") 165 if(ARGS_SYSTEM) 166 set(system "SYSTEM") 167 endif() 168 set(before_after ) 169 if(ARGS_AFTER) 170 set(before_after "AFTER") 171 endif() 172 if(ARGS_BEFORE) 173 if(before_after) 174 message(FATAL_ERROR "before and after are exclusive options") 175 endif() 176 set(before_after "BEFORE") 177 endif() 178 _get_ARGS_visibility() 179 if(TARGET SDL3-shared) 180 target_include_directories(SDL3-shared ${system} ${before_after} ${visibility} ${ARGS_UNPARSED_ARGUMENTS}) 181 endif() 182 if(TARGET SDL3-static) 183 target_include_directories(SDL3-static ${system} ${before_after} ${visibility} ${ARGS_UNPARSED_ARGUMENTS}) 184 endif() 185 if(NOT NO_EXPORT AND (ARGS_PUBLIC OR ARGS_INTERFACE)) 186 set_property(TARGET SDL3-collector APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${ARGS_UNPARSED_ARGUMENTS}") 187 endif() 188endfunction() 189 190# Use sdl_link_dependency to add link directories to the SDL3 libraries. 191function(sdl_link_directories) 192 if(TARGET SDL3-shared) 193 target_link_directories(SDL3-shared PRIVATE ${ARGN}) 194 endif() 195 if(TARGET SDL3-static) 196 target_link_directories(SDL3-static INTERFACE ${ARGN}) 197 endif() 198endfunction() 199 200# Use sdl_pc_link_options to add a link option, only visible in sdl3.pc 201function(sdl_pc_link_options) 202 set_property(TARGET SDL3-collector APPEND PROPERTY INTERFACE_SDL_PC_LINK_OPTIONS "${ARGN}") 203endfunction() 204 205# Use sdl_pc_link_options to add a link option only to SDL3-shared 206function(sdl_shared_link_options) 207 if(TARGET SDL3-shared) 208 target_link_options(SDL3-shared PRIVATE ${ARGN}) 209 endif() 210endfunction() 211 212# Return minimum list of custom SDL CMake modules, used for finding dependencies of SDL. 213function(sdl_cmake_config_required_modules OUTPUT) 214 set(cmake_modules) 215 foreach(collector SDL3-collector SDL3_test-collector) 216 get_property(ids TARGET ${collector} PROPERTY INTERFACE_SDL_DEP_IDS) 217 foreach(ID IN LISTS ids) 218 get_property(CMAKE_MODULE TARGET ${collector} PROPERTY INTERFACE_SDL_DEP_${ID}_CMAKE_MODULE) 219 if(CMAKE_MODULE) 220 if(EXISTS "${SDL3_SOURCE_DIR}/cmake/Find${CMAKE_MODULE}.cmake") 221 list(APPEND cmake_modules "${SDL3_SOURCE_DIR}/cmake/Find${CMAKE_MODULE}.cmake") 222 endif() 223 endif() 224 endforeach() 225 if(cmake_modules) 226 list(APPEND cmake_modules "${SDL3_SOURCE_DIR}/cmake/PkgConfigHelper.cmake") 227 endif() 228 endforeach() 229 set(${OUTPUT} "${cmake_modules}" PARENT_SCOPE) 230endfunction() 231 232# Generate string for SDL3Config.cmake, finding all pkg-config dependencies of SDL3. 233function(sdl_cmake_config_find_pkg_config_commands OUTPUT) 234 cmake_parse_arguments(ARGS "" "COLLECTOR;CONFIG_COMPONENT_FOUND_NAME" "" ${ARGN}) 235 if(NOT ARGS_COLLECTOR OR NOT ARGS_CONFIG_COMPONENT_FOUND_NAME) 236 message(FATAL_ERROR "COLLECTOR AND CONFIG_COMPONENT_FOUND_NAME are required arguments") 237 endif() 238 get_property(ids TARGET ${ARGS_COLLECTOR} PROPERTY INTERFACE_SDL_DEP_IDS) 239 240 set(static_pkgconfig_deps_checks) 241 set(static_module_deps_checks) 242 set(cmake_modules_seen) 243 244 foreach(ID IN LISTS ids) 245 get_property(PKG_CONFIG_PREFIX TARGET ${ARGS_COLLECTOR} PROPERTY INTERFACE_SDL_DEP_${ID}_PKG_CONFIG_PREFIX) 246 get_property(PKG_CONFIG_SPECS TARGET ${ARGS_COLLECTOR} PROPERTY INTERFACE_SDL_DEP_${ID}_PKG_CONFIG_SPECS) 247 get_property(CMAKE_MODULE TARGET ${ARGS_COLLECTOR} PROPERTY INTERFACE_SDL_DEP_${ID}_CMAKE_MODULE) 248 if(CMAKE_MODULE AND NOT CMAKE_MODULE IN_LIST cmake_modules_seen) 249 list(APPEND static_module_deps_checks 250 "find_package(${CMAKE_MODULE})" 251 "if(NOT ${CMAKE_MODULE}_FOUND)" 252 " set(${ARGS_CONFIG_COMPONENT_FOUND_NAME} OFF)" 253 "endif()" 254 ) 255 list(APPEND cmake_modules_seen ${CMAKE_MODULE}) 256 endif() 257 if(PKG_CONFIG_PREFIX AND PKG_CONFIG_SPECS) 258 string(JOIN " " pkg_config_specs_str ${PKG_CONFIG_SPECS}) 259 list(APPEND static_pkgconfig_deps_checks 260 " pkg_check_modules(${PKG_CONFIG_PREFIX} QUIET IMPORTED_TARGET ${pkg_config_specs_str})" 261 " if(NOT ${PKG_CONFIG_PREFIX}_FOUND)" 262 " set(${ARGS_CONFIG_COMPONENT_FOUND_NAME} OFF)" 263 " endif()" 264 ) 265 endif() 266 endforeach() 267 268 set(prefix " ") 269 270 set(static_module_deps_texts) 271 if(static_module_deps_checks) 272 set(static_module_deps_texts 273 [[set(_original_module_path "${CMAKE_MODULE_PATH}")]] 274 [[list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}")]] 275 ${static_module_deps_checks} 276 [[set(CMAKE_MODULE_PATH "${_original_module_path}")]] 277 [[unset(_original_module_path)]] 278 ) 279 endif() 280 281 set(static_pkgconfig_deps_texts) 282 if(static_pkgconfig_deps_checks) 283 string(JOIN "\n${prefix}" static_deps_texts_str ${static_deps_texts}) 284 list(APPEND static_pkgconfig_deps_texts 285 "find_package(PkgConfig)" 286 "if(PkgConfig_FOUND)" 287 ${static_pkgconfig_deps_checks} 288 "else()" 289 " set(${ARGS_CONFIG_COMPONENT_FOUND_NAME} OFF)" 290 "endif()" 291 ) 292 endif() 293 294 set(text) 295 string(JOIN "\n${prefix}" text ${static_module_deps_texts} ${static_pkgconfig_deps_texts}) 296 if(text) 297 set(text "${prefix}${text}") 298 endif() 299 300 set(${OUTPUT} "${text}" PARENT_SCOPE) 301endfunction() 302 303# Create sdl3.pc. 304function(configure_sdl3_pc) 305 # Clean up variables for sdl3.pc 306 if(TARGET SDL3-shared) 307 set(SDL_PC_SECTION_LIBS_PRIVATE "\nLibs.private:") 308 else() 309 set(SDL_PC_SECTION_LIBS_PRIVATE "") 310 endif() 311 312 get_property(ids TARGET SDL3-collector PROPERTY SDL3-collector PROPERTY INTERFACE_SDL_DEP_IDS) 313 314 set(private_requires) 315 set(private_libs) 316 set(private_ldflags) 317 318 foreach(ID IN LISTS ids) 319 get_property(CMAKE_MODULE TARGET SDL3-collector PROPERTY INTERFACE_SDL_DEP_${ID}_CMAKE_MODULE) 320 get_property(PKG_CONFIG_SPECS TARGET SDL3-collector PROPERTY INTERFACE_SDL_DEP_${ID}_PKG_CONFIG_SPECS) 321 get_property(PKG_CONFIG_LIBS TARGET SDL3-collector PROPERTY INTERFACE_SDL_DEP_${ID}_PKG_CONFIG_LIBS) 322 get_property(PKG_CONFIG_LDFLAGS TARGET SDL3-collector PROPERTY INTERFACE_SDL_DEP_${ID}_PKG_CONFIG_LINK_OPTIONS) 323 get_property(LIBS TARGET SDL3-collector PROPERTY INTERFACE_SDL_DEP_${ID}_LIBS) 324 get_property(LINK_OPTIONS TARGET SDL3-collector PROPERTY INTERFACE_SDL_DEP_${ID}_LINK_OPTIONS) 325 326 list(APPEND private_requires ${PKG_CONFIG_SPECS}) 327 list(APPEND private_libs ${PKG_CONFIG_LIBS}) 328 if(PKG_CONFIG_SPECS OR PKG_CONFIG_LIBS OR PKG_CONFIG_LDFLAGS) 329 list(APPEND private_ldflags ${PKG_CONFIG_LDFLAGS}) 330 else() 331 list(APPEND private_ldflags ${LINK_OPTIONS}) 332 if(NOT CMAKE_MODULE) 333 list(APPEND private_libs ${LIBS}) 334 endif() 335 endif() 336 endforeach() 337 338 list(TRANSFORM private_libs PREPEND "-l") 339 set(SDL_PC_STATIC_LIBS ${private_ldflags} ${private_libs}) 340 list(REMOVE_DUPLICATES SDL_PC_STATIC_LIBS) 341 string(JOIN " " SDL_PC_STATIC_LIBS ${SDL_PC_STATIC_LIBS}) 342 343 string(JOIN " " SDL_PC_PRIVATE_REQUIRES ${private_requires}) 344 string(REGEX REPLACE "(>=|>|=|<|<=)" [[ \1 ]] SDL_PC_PRIVATE_REQUIRES "${SDL_PC_PRIVATE_REQUIRES}") 345 346 get_property(interface_defines TARGET SDL3-collector PROPERTY INTERFACE_COMPILE_DEFINITIONS) 347 list(TRANSFORM interface_defines PREPEND "-D") 348 get_property(interface_includes TARGET SDL3-collector PROPERTY INTERFACE_INCLUDE_DIRECTORIES) 349 list(TRANSFORM interface_includes PREPEND "-I") 350 set(SDL_PC_CFLAGS ${interface_defines} ${interface_includes}) 351 string(JOIN " " SDL_PC_CFLAGS ${SDL_PC_CFLAGS}) 352 353 get_property(SDL_PC_LIBS TARGET SDL3-collector PROPERTY INTERFACE_SDL_PC_LINK_OPTIONS) 354 string(JOIN " " SDL_PC_LIBS ${SDL_PC_LIBS}) 355 356 string(REGEX REPLACE "-lSDL3( |$)" "-l${sdl_static_libname} " SDL_PC_STATIC_LIBS "${SDL_PC_STATIC_LIBS}") 357 if(NOT SDL_SHARED) 358 string(REGEX REPLACE "-lSDL3( |$)" "-l${sdl_static_libname} " SDL_PC_LIBS "${SDL_PC_LIBS}") 359 endif() 360 if(TARGET SDL3-shared AND TARGET SDL3-static AND NOT sdl_static_libname STREQUAL "SDL3") 361 message(STATUS "\"pkg-config --static --libs sdl3\" will return invalid information") 362 endif() 363 364 if(SDL_RELOCATABLE) 365 # Calculate prefix relative to location of sdl3.pc 366 if(NOT IS_ABSOLUTE "${CMAKE_INSTALL_PREFIX}") 367 set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_PREFIX}") 368 endif() 369 file(RELATIVE_PATH SDL_PATH_PREFIX_RELATIVE_TO_PKGCONFIG "${CMAKE_INSTALL_PREFIX}/${SDL_PKGCONFIG_INSTALLDIR}" "${CMAKE_INSTALL_PREFIX}") 370 string(REGEX REPLACE "[/]+$" "" SDL_PATH_PREFIX_RELATIVE_TO_PKGCONFIG "${SDL_PATH_PREFIX_RELATIVE_TO_PKGCONFIG}") 371 set(SDL_PKGCONFIG_PREFIX "\${pcfiledir}/${SDL_PATH_PREFIX_RELATIVE_TO_PKGCONFIG}") 372 else() 373 set(SDL_PKGCONFIG_PREFIX "${CMAKE_INSTALL_PREFIX}") 374 endif() 375 376 if(IS_ABSOLUTE "${CMAKE_INSTALL_INCLUDEDIR}") 377 set(INCLUDEDIR_FOR_PKG_CONFIG "${CMAKE_INSTALL_INCLUDEDIR}") 378 else() 379 set(INCLUDEDIR_FOR_PKG_CONFIG "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}") 380 endif() 381 if(IS_ABSOLUTE "${CMAKE_INSTALL_LIBDIR}") 382 set(LIBDIR_FOR_PKG_CONFIG "${CMAKE_INSTALL_LIBDIR}") 383 else() 384 set(LIBDIR_FOR_PKG_CONFIG "\${prefix}/${CMAKE_INSTALL_LIBDIR}") 385 endif() 386 387 configure_file("${SDL3_SOURCE_DIR}/cmake/sdl3.pc.in" "${SDL3_BINARY_DIR}/sdl3.pc" @ONLY) 388endfunction() 389 390# Write list of dependencies to output. Only visible when configuring with --log-level=DEBUG. 391function(debug_show_sdl_deps) 392 get_property(ids TARGET SDL3-collector PROPERTY SDL3-collector PROPERTY INTERFACE_SDL_DEP_IDS) 393 394 foreach(ID IN LISTS ids) 395 message(DEBUG "- id: ${ID}") 396 get_property(INCLUDES TARGET SDL3-collector PROPERTY INTERFACE_SDL_DEP_${ID}_INCLUDES) 397 get_property(CMAKE_MODULE TARGET SDL3-collector PROPERTY INTERFACE_SDL_DEP_${ID}_CMAKE_MODULE) 398 get_property(PKG_CONFIG_PREFIX TARGET SDL3-collector PROPERTY INTERFACE_SDL_DEP_${ID}_PKG_CONFIG_PREFIX) 399 get_property(PKG_CONFIG_SPECS TARGET SDL3-collector PROPERTY INTERFACE_SDL_DEP_${ID}_PKG_CONFIG_SPECS) 400 get_property(LIBS TARGET SDL3-collector PROPERTY INTERFACE_SDL_DEP_${ID}_LIBS) 401 get_property(LINK_OPTIONS TARGET SDL3-collector PROPERTY INTERFACE_SDL_DEP_${ID}_LINK_OPTIONS) 402 message(DEBUG " INCLUDES: ${INCLUDES}") 403 message(DEBUG " CMAKE_MODULE: ${CMAKE_MODULE}") 404 message(DEBUG " PKG_CONFIG_PREFIX: ${PKG_CONFIG_PREFIX}") 405 message(DEBUG " PKG_CONFIG_SPECS: ${PKG_CONFIG_SPECS}") 406 message(DEBUG " LIBS: ${LIBS}") 407 message(DEBUG " LINK_OPTIONS: ${LINK_OPTIONS}") 408 endforeach() 409endfunction() 410
[FILE END]
(C) 2025 0x4248 (C) 2025 4248 Media and 4248 Systems, All part of 0x4248 See LICENCE files for more information. Not all files are by 0x4248 always check Licencing.