cmake: use CMAKE_CURRENT_BINARY_DIR instead of CMAKE_BINARY_DIR (#5834) * Update install directory to match generated https://github.com/libsdl-org/SDL/blob/main/CMakeLists.txt#L3122 Sets `SDL2Config.cmake` to `CMAKE_BINARY_DIR`, whereas the install file tries to find it from a different location. * cmake: use CMAKE_CURRENT_BINARY_DIR instead of CMAKE_BINARY_DIR * ci: test SDL included as a cmake subproject Co-authored-by: Anonymous Maarten <anonymous.maarten@gmail.com>
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
diff --git a/.github/workflows/msvc.yml b/.github/workflows/msvc.yml
index 2c4cb6f..5cc1ff1 100644
--- a/.github/workflows/msvc.yml
+++ b/.github/workflows/msvc.yml
@@ -24,20 +24,34 @@ jobs:
steps:
- uses: actions/checkout@v2
- - name: Configure CMake
- run: cmake -S . -B build `
+ - name: Create CMake project using SDL as a subproject
+ shell: python
+ run: |
+ import os
+ import textwrap
+ srcdir = r"${{ github.workspace }}".replace("\\", "/")
+ builddir = f"{ srcdir }/build"
+ os.makedirs(builddir)
+ with open(f"{ builddir }/CMakeLists.txt", "w") as f:
+ f.write(textwrap.dedent(f"""\
+ cmake_minimum_required(VERSION 3.0)
+ project(sdl_user)
+ add_subdirectory("{ srcdir }" SDL)
+ """))
+ - name: Configure (CMake)
+ run: cmake -S build -B build `
-DSDL_TESTS=ON `
-DSDL_INSTALL_TESTS=ON `
${{ matrix.platform.flags }} `
-DCMAKE_INSTALL_PREFIX=prefix
- - name: Build CMake
+ - name: Build (CMake)
run: cmake --build build/ --config Release --parallel
- name: Run build-time tests
if: "! contains(matrix.platform.name, 'ARM')"
run: |
$env:SDL_TESTS_QUICK=1
ctest -VV --test-dir build/ -C Release
- - name: Install CMake
+ - name: Install (CMake)
run: |
echo "SDL2_DIR=$Env:GITHUB_WORKSPACE/prefix" >> $Env:GITHUB_ENV
cmake --install build/
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c5dadc0..f40005f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -3139,11 +3139,11 @@ if(NOT SDL2_DISABLE_INSTALL)
endif ()
include(CMakePackageConfigHelpers)
- configure_package_config_file(SDL2Config.cmake.in "${CMAKE_BINARY_DIR}/SDL2Config.cmake"
+ configure_package_config_file(SDL2Config.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/SDL2Config.cmake"
PATH_VARS CMAKE_INSTALL_PREFIX CMAKE_INSTALL_FULL_BINDIR CMAKE_INSTALL_FULL_INCLUDEDIR CMAKE_INSTALL_FULL_LIBDIR
INSTALL_DESTINATION ${PKG_PREFIX}
)
- write_basic_package_version_file("${CMAKE_BINARY_DIR}/SDL2ConfigVersion.cmake"
+ write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/SDL2ConfigVersion.cmake"
VERSION ${SDL_VERSION}
COMPATIBILITY AnyNewerVersion
)
@@ -3199,7 +3199,7 @@ if(NOT SDL2_DISABLE_INSTALL)
install(
FILES
${CMAKE_CURRENT_BINARY_DIR}/SDL2Config.cmake
- ${CMAKE_BINARY_DIR}/SDL2ConfigVersion.cmake
+ ${CMAKE_CURRENT_BINARY_DIR}/SDL2ConfigVersion.cmake
DESTINATION ${PKG_PREFIX}
COMPONENT Devel
)