diff --git a/.github/workflows/msvc.yml b/.github/workflows/msvc.yml index 7d5d0f5dd..9195a94e6 100644 --- a/.github/workflows/msvc.yml +++ b/.github/workflows/msvc.yml @@ -36,13 +36,20 @@ jobs: srcdir = r"${{ github.workspace }}".replace("\\", "/") builddir = f"{ srcdir }/build" os.makedirs(builddir) + cmakelists_txt = textwrap.dedent(f"""\ + # Always build .PDB symbol file + set(CMAKE_POLICY_DEFAULT_CMP0141 "NEW" CACHE STRING "MSVC debug information format flags are selected by an abstraction") + set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "ProgramDatabase" CACHE STRING "MSVC debug information format") + set(CMAKE_EXE_LINKER_FLAGS "-DEBUG" CACHE STRING "Linker flags for executables") + set(CMAKE_SHARED_LINKER_FLAGS "-DEBUG" CACHE STRING "Linker flag for shared libraries") + cmake_minimum_required(VERSION 3.0...3.25) + project(sdl_user) + enable_testing() + add_subdirectory("{ srcdir }" SDL) + """) + print(cmakelists_txt) with open(f"{ builddir }/CMakeLists.txt", "w") as f: - f.write(textwrap.dedent(f"""\ - cmake_minimum_required(VERSION 3.0...3.25) - project(sdl_user) - enable_testing() - add_subdirectory("{ srcdir }" SDL) - """)) + f.write(cmakelists_txt) - name: Configure (CMake) run: cmake -S build -B build ` -Wdeprecated -Wdev -Werror ` diff --git a/CMakeLists.txt b/CMakeLists.txt index 6f03982f3..a5188e538 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3264,6 +3264,9 @@ if(NOT SDL_DISABLE_INSTALL) FRAMEWORK DESTINATION "." RESOURCE DESTINATION "${SDL_SDL_INSTALL_RESOURCEDIR}" ) + if(MSVC) + install(FILES $ DESTINATION "${CMAKE_INSTALL_BINDIR}" OPTIONAL) + endif() endif() if(SDL_STATIC) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index fa4175a8d..942400ff7 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -557,6 +557,11 @@ if(SDL_INSTALL_TESTS) DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/installed-tests/SDL3 ) endif() + if(MSVC) + foreach(test IN LISTS SDL_TEST_EXECUTABLES) + install(FILES $ DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}/installed-tests/SDL3" OPTIONAL) + endforeach() + endif() install( FILES ${RESOURCE_FILES} DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/installed-tests/SDL3