From 8222bfe56d4dabe8d92fc4b25ea1b0163b16f3e1 Mon Sep 17 00:00:00 2001 From: 3gg <3gg@shellblade.net> Date: Sat, 4 May 2024 16:51:29 -0700 Subject: Initial commit. --- src/contrib/SDL-2.30.2/cmake/macros.cmake | 148 ++++++++++++++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100644 src/contrib/SDL-2.30.2/cmake/macros.cmake (limited to 'src/contrib/SDL-2.30.2/cmake/macros.cmake') diff --git a/src/contrib/SDL-2.30.2/cmake/macros.cmake b/src/contrib/SDL-2.30.2/cmake/macros.cmake new file mode 100644 index 0000000..5060923 --- /dev/null +++ b/src/contrib/SDL-2.30.2/cmake/macros.cmake @@ -0,0 +1,148 @@ +macro(ADD_TO_ALLOPTIONS _NEWNAME) + list(APPEND ALLOPTIONS ${_NEWNAME}) + string(LENGTH ${_NEWNAME} _SLEN) + if(${LONGESTOPTIONNAME} LESS ${_SLEN}) + set(LONGESTOPTIONNAME ${_SLEN}) + endif() +endmacro() + +macro(SET_OPTION _NAME _DESC) + add_to_alloptions(${_NAME}) + if(${ARGC} EQUAL 3) + set(_DEFLT ${ARGV2}) + else() + set(_DEFLT OFF) + endif() + option(${_NAME} ${_DESC} ${_DEFLT}) +endmacro() + +macro(DEP_OPTION _NAME _DESC _DEFLT _DEPTEST _FAILDFLT) + add_to_alloptions("${_NAME}") + cmake_dependent_option("${_NAME}" "${_DESC}" "${_DEFLT}" "${_DEPTEST}" "${_FAILDFLT}") +endmacro() + +macro(OPTION_STRING _NAME _DESC _VALUE) + add_to_alloptions(${_NAME}) + set(${_NAME} ${_VALUE} CACHE STRING "${_DESC}") + set(HAVE_${_NAME} ${_VALUE}) +ENDMACRO() + +# Message Output +macro(MESSAGE_WARN _TEXT) + message(WARNING "${_TEXT}") +endmacro() + +macro(MESSAGE_ERROR _TEXT) + message(FATAL_ERROR "*** ERROR: ${_TEXT}") +endmacro() + +macro(MESSAGE_BOOL_OPTION _NAME _VALUE) + if(${_VALUE}) + message(STATUS " ${_NAME}:\tON") + else() + message(STATUS " ${_NAME}:\tOFF") + endif() +endmacro() + +macro(MESSAGE_TESTED_OPTION _NAME) + set(_REQVALUE ${${_NAME}}) + set(_PAD " ") + if(${ARGC} EQUAL 2) + set(_PAD ${ARGV1}) + endif() + string(SUBSTRING "${_NAME}" 0 4 _NAMESTART) + if(_NAMESTART STREQUAL "SDL_") + string(SUBSTRING "${_NAME}" 4 -1 _STRIPPEDNAME) + else() + set(_STRIPPEDNAME "${_NAME}") + endif() + if(NOT HAVE_${_STRIPPEDNAME}) + set(HAVE_${_STRIPPEDNAME} OFF) + elseif("${HAVE_${_STRIPPEDNAME}}" MATCHES "1|TRUE|YES|Y") + set(HAVE_${_STRIPPEDNAME} ON) + endif() + message(STATUS " ${_NAME}${_PAD}(Wanted: ${_REQVALUE}): ${HAVE_${_STRIPPEDNAME}}") +endmacro() + +function(LISTTOSTR _LIST _OUTPUT) + if(${ARGC} EQUAL 3) + # prefix for each element + set(_LPREFIX ${ARGV2}) + else() + set(_LPREFIX "") + endif() + # Do not use string(REPLACE ";" " ") here to avoid messing up list + # entries + set(res) + foreach(_ITEM ${${_LIST}}) + set(res "${res} ${_LPREFIX}${_ITEM}") + endforeach() + set(${_OUTPUT} "${res}" PARENT_SCOPE) +endfunction() + +macro(LISTTOSTRREV _LIST _OUTPUT) + if(${ARGC} EQUAL 3) + # prefix for each element + set(_LPREFIX ${ARGV2}) + else() + set(_LPREFIX "") + endif() + # Do not use string(REPLACE ";" " ") here to avoid messing up list + # entries + foreach(_ITEM ${${_LIST}}) + set(${_OUTPUT} "${_LPREFIX}${_ITEM} ${${_OUTPUT}}") + endforeach() +endmacro() + +if(CMAKE_VERSION VERSION_LESS 3.16.0 OR SDL2_SUBPROJECT) + # - CMake versions <3.16 do not support the OBJC language + # - When SDL is built as a subproject and when the main project does not enable OBJC, + # CMake fails due to missing internal CMake variables (CMAKE_OBJC_COMPILE_OBJECT) + # (reproduced with CMake 3.24.2) + macro(CHECK_OBJC_SOURCE_COMPILES SOURCE VAR) + set(PREV_REQUIRED_DEFS "${CMAKE_REQUIRED_DEFINITIONS}") + set(CMAKE_REQUIRED_DEFINITIONS "-x objective-c ${PREV_REQUIRED_DEFS}") + CHECK_C_SOURCE_COMPILES("${SOURCE}" ${VAR}) + set(CMAKE_REQUIRED_DEFINITIONS "${PREV_REQUIRED_DEFS}") + endmacro() +else() + include(CheckOBJCSourceCompiles) + if (APPLE) + enable_language(OBJC) + endif() +endif() + +if(APPLE) + check_language(OBJC) + if(NOT CMAKE_OBJC_COMPILER) + message(WARNING "Cannot find working OBJC compiler.") + endif() +endif() + +if(CMAKE_VERSION VERSION_LESS 3.13.0) + macro(target_link_directories _TARGET _SCOPE) + link_directories(${ARGN}) + endmacro() +endif() + +# CMP0087: install(CODE) and install(SCRIPT) support generator expressions. +if(POLICY CMP0087) + cmake_policy(SET CMP0087 NEW) +endif() +function(SDL_install_pdb TARGET DIRECTORY) + get_property(type TARGET ${TARGET} PROPERTY TYPE) + if(type MATCHES "^(SHARED_LIBRARY|EXECUTABLE)$") + if(NOT CMAKE_VERSION VERSION_LESS 3.1) + install(FILES $ DESTINATION "${DIRECTORY}" OPTIONAL) + endif() + elseif(type STREQUAL "STATIC_LIBRARY") + if(NOT CMAKE_VERSION VERSION_LESS 3.15) + # FIXME: Use $