From bd49696133eded6f441b20391b5bb4376b3834d8 Mon Sep 17 00:00:00 2001 From: hsdk123 Date: Thu, 23 Jun 2022 08:18:44 -0400 Subject: [PATCH] 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 --- .github/workflows/msvc.yml | 22 ++++++++++++++++++---- CMakeLists.txt | 6 +++--- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/.github/workflows/msvc.yml b/.github/workflows/msvc.yml index 2c4cb6f4b..5cc1ff17a 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 c5dadc045..f40005f6d 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 )