From 653893f1886c398f60bc8cc57850ee4a6188a1b7 Mon Sep 17 00:00:00 2001 From: Anonymous Maarten Date: Sun, 18 Dec 2022 02:24:42 +0100 Subject: [PATCH] cmake: declutter root + remove obsolete variables --- .editorconfig | 2 +- CMakeLists.txt | 35 ++++--------------- .../SDL3Config.cmake.in | 0 .../cmake_uninstall.cmake.in | 7 ++-- cmake/macros.cmake | 19 +++++----- sdl3.pc.in => cmake/sdl3.pc.in | 8 ++--- 6 files changed, 25 insertions(+), 46 deletions(-) rename SDL3Config.cmake.in => cmake/SDL3Config.cmake.in (100%) rename cmake_uninstall.cmake.in => cmake/cmake_uninstall.cmake.in (86%) rename sdl3.pc.in => cmake/sdl3.pc.in (77%) diff --git a/.editorconfig b/.editorconfig index ab8435470..fb73dae34 100644 --- a/.editorconfig +++ b/.editorconfig @@ -22,7 +22,7 @@ indent_style = space insert_final_newline = true trim_trailing_whitespace = true -[{cmake_uninstall.cmake.in,test/CMakeLists.txt,./SDL3Config.cmake.in}] +[{cmake/cmake_uninstall.cmake.in,test/CMakeLists.txt,cmake/SDL3Config.cmake.in}] indent_size = 4 indent_style = space insert_final_newline = true diff --git a/CMakeLists.txt b/CMakeLists.txt index dba551ea2..d1cc977ef 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2915,34 +2915,15 @@ else() set(sdl_static_libname "SDL3") endif() -set(prefix ${CMAKE_INSTALL_PREFIX}) -file(RELATIVE_PATH bin_prefix_relpath "${CMAKE_INSTALL_FULL_BINDIR}" "${CMAKE_INSTALL_PREFIX}") - -set(exec_prefix "\${prefix}") -set(libdir "\${exec_prefix}/${CMAKE_INSTALL_LIBDIR}") -set(bindir "\${exec_prefix}/${CMAKE_INSTALL_BINDIR}") -set(includedir "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}") -if(SDL_STATIC) - set(ENABLE_STATIC_TRUE "") - set(ENABLE_STATIC_FALSE "#") -else() - set(ENABLE_STATIC_TRUE "#") - set(ENABLE_STATIC_FALSE "") -endif() if(SDL_SHARED) - set(PKGCONFIG_LIBS_PRIV " -Libs.private:") - set(ENABLE_SHARED_TRUE "") - set(ENABLE_SHARED_FALSE "#") + set(PKGCONFIG_LIBS_PRIV "\nLibs.private:") else() set(PKGCONFIG_LIBS_PRIV "") - set(ENABLE_SHARED_TRUE "#") - set(ENABLE_SHARED_FALSE "") endif() # Clean up the different lists listtostr(EXTRA_LIBS _EXTRA_LIBS "-l") -set(SDL_STATIC_LIBS ${SDL_LIBS} ${EXTRA_LDFLAGS} ${_EXTRA_LIBS}) +set(SDL_STATIC_LIBS ${EXTRA_LDFLAGS} ${_EXTRA_LIBS}) list(REMOVE_DUPLICATES SDL_STATIC_LIBS) listtostr(SDL_STATIC_LIBS _SDL_STATIC_LIBS) set(SDL_STATIC_LIBS ${_SDL_STATIC_LIBS}) @@ -2962,8 +2943,7 @@ endif() # MESSAGE(STATUS "SDL_LIBS: ${SDL_LIBS}") # MESSAGE(STATUS "SDL_STATIC_LIBS: ${SDL_STATIC_LIBS}") -configure_file("${SDL3_SOURCE_DIR}/sdl3.pc.in" - "${SDL3_BINARY_DIR}/sdl3.pc" @ONLY) +configure_file(cmake/sdl3.pc.in sdl3.pc @ONLY) macro(check_add_debug_flag FLAG SUFFIX) check_c_compiler_flag(${FLAG} HAS_C_FLAG_${SUFFIX}) @@ -3299,7 +3279,7 @@ if(NOT SDL3_DISABLE_INSTALL) ##### Export files ##### include(CMakePackageConfigHelpers) - configure_package_config_file(SDL3Config.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/SDL3Config.cmake" + configure_package_config_file(cmake/SDL3Config.cmake.in SDL3Config.cmake PATH_VARS CMAKE_INSTALL_PREFIX CMAKE_INSTALL_FULL_BINDIR CMAKE_INSTALL_FULL_INCLUDEDIR CMAKE_INSTALL_FULL_LIBDIR INSTALL_DESTINATION "${SDL_INSTALL_CMAKEDIR}" ) @@ -3373,13 +3353,10 @@ endif() if(NOT SDL3_DISABLE_UNINSTALL) if(NOT TARGET uninstall) - configure_file( - "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in" - "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" - IMMEDIATE @ONLY) + configure_file(cmake/cmake_uninstall.cmake.in cmake_uninstall.cmake IMMEDIATE @ONLY) add_custom_target(uninstall - COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) + COMMAND ${CMAKE_COMMAND} -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake") endif() endif() diff --git a/SDL3Config.cmake.in b/cmake/SDL3Config.cmake.in similarity index 100% rename from SDL3Config.cmake.in rename to cmake/SDL3Config.cmake.in diff --git a/cmake_uninstall.cmake.in b/cmake/cmake_uninstall.cmake.in similarity index 86% rename from cmake_uninstall.cmake.in rename to cmake/cmake_uninstall.cmake.in index 1761561b3..9a59b4f48 100644 --- a/cmake_uninstall.cmake.in +++ b/cmake/cmake_uninstall.cmake.in @@ -1,10 +1,10 @@ if (NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt") message(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_BINARY_DIR@/install_manifest.txt\"") -endif(NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt") +endif() file(READ "@CMAKE_BINARY_DIR@/install_manifest.txt" files) string(REGEX REPLACE "\n" ";" files "${files}") -foreach (file ${files}) +foreach(file ${files}) message(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"") execute_process( COMMAND @CMAKE_COMMAND@ -E remove "$ENV{DESTDIR}${file}" @@ -14,5 +14,4 @@ foreach (file ${files}) if(NOT ${rm_retval} EQUAL 0) message(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"") endif (NOT ${rm_retval} EQUAL 0) -endforeach(file) - +endforeach() diff --git a/cmake/macros.cmake b/cmake/macros.cmake index e5977a8a7..5e38a7b94 100644 --- a/cmake/macros.cmake +++ b/cmake/macros.cmake @@ -68,19 +68,22 @@ macro(message_tested_option _NAME) message(STATUS " ${_NAME}${_PAD}(Wanted: ${_REQVALUE}): ${HAVE_${_STRIPPEDNAME}}") endmacro() -macro(listtostr _LIST _OUTPUT) +function(listtostr LIST OUTPUT) if(${ARGC} EQUAL 3) # prefix for each element - set(_LPREFIX ${ARGV2}) + set(LPREFIX ${ARGV2}) else() - set(_LPREFIX "") + set(LPREFIX "") endif() - # Do not use string(REPLACE ";" " ") here to avoid messing up list - # entries - foreach(_ITEM ${${_LIST}}) - set(${_OUTPUT} "${${_OUTPUT}} ${_LPREFIX}${_ITEM}") + # Do not use string(REPLACE ";" " ") here to avoid messing up list entries + set(res) + foreach(ITEM ${${LIST}}) + if(ITEM) + set(res "${res} ${LPREFIX}${ITEM}") + endif() endforeach() -endmacro() + set(${OUTPUT} "${res}" PARENT_SCOPE) +endfunction() function(listtostrrev _LIST _OUTPUT) if(${ARGC} EQUAL 3) diff --git a/sdl3.pc.in b/cmake/sdl3.pc.in similarity index 77% rename from sdl3.pc.in rename to cmake/sdl3.pc.in index c533a4034..328da05bb 100644 --- a/sdl3.pc.in +++ b/cmake/sdl3.pc.in @@ -1,9 +1,9 @@ # sdl pkg-config source file -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@ +prefix=@CMAKE_INSTALL_PREFIX@ +exec_prefix=${prefix} +libdir=@CMAKE_INSTALL_FULL_LIBDIR@ +includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ Name: sdl3 Description: Simple DirectMedia Layer is a cross-platform multimedia library designed to provide low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer.