Browse Source

dos: get SDL via CMake

Now that the DOS SDL supports CMake, this is a much better option that
`configure`, because it lets us easily test out local changes to SDL,
e.g.:

```bash
cmake -S. -Bbuild-dos -DCMAKE_TOOLCHAIN_FILE=CMake/platforms/djcpp.toolchain.cmake \
  -DTARGET_PLATFORM="dos" -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \
  -DFETCHCONTENT_SOURCE_DIR_SDL2="${HOME}/diasurgical-SDL"
```
pull/8161/head
Gleb Mazovetskiy 7 months ago
parent
commit
d00dedfdd0
  1. 10
      3rdParty/SDL2/CMakeLists.txt
  2. 2
      CMake/platforms/dos.cmake
  3. 13
      Packaging/windows/dos-prep.sh

10
3rdParty/SDL2/CMakeLists.txt vendored

@ -14,8 +14,18 @@ set(SDL_TEST_ENABLED_BY_DEFAULT OFF)
include(functions/FetchContent_ExcludeFromAll_backport) include(functions/FetchContent_ExcludeFromAll_backport)
include(FetchContent) include(FetchContent)
if(TARGET_PLATFORM STREQUAL "dos")
set(DOS ON)
FetchContent_Declare(SDL2
# branch: dos-vbe-rebase
URL https://github.com/diasurgical/SDL/archive/6a87741b50e52b93852eb8ab59a89495ae9e607b.tar.gz
URL_HASH MD5=a41f10f31b3ec00256c85131291bb0c3
)
else()
FetchContent_Declare(SDL2 FetchContent_Declare(SDL2
URL https://github.com/libsdl-org/SDL/releases/download/release-2.32.8/SDL2-2.32.8.tar.gz URL https://github.com/libsdl-org/SDL/releases/download/release-2.32.8/SDL2-2.32.8.tar.gz
URL_HASH SHA256=0ca83e9c9b31e18288c7ec811108e58bac1f1bb5ec6577ad386830eac51c787e URL_HASH SHA256=0ca83e9c9b31e18288c7ec811108e58bac1f1bb5ec6577ad386830eac51c787e
) )
endif()
FetchContent_MakeAvailable_ExcludeFromAll(SDL2) FetchContent_MakeAvailable_ExcludeFromAll(SDL2)

2
CMake/platforms/dos.cmake

@ -11,7 +11,7 @@ set(DEVILUTIONX_SYSTEM_BZIP2 OFF)
set(DEVILUTIONX_SYSTEM_LIBFMT OFF) set(DEVILUTIONX_SYSTEM_LIBFMT OFF)
set(DEVILUTIONX_SYSTEM_ZLIB OFF) set(DEVILUTIONX_SYSTEM_ZLIB OFF)
set(DEVILUTIONX_STATIC_ZLIB ON) set(DEVILUTIONX_STATIC_ZLIB ON)
set(DEVILUTIONX_SYSTEM_SDL2 ON) set(DEVILUTIONX_SYSTEM_SDL2 OFF)
set(DEVILUTIONX_STATIC_SDL2 ON) set(DEVILUTIONX_STATIC_SDL2 ON)
set(DEVILUTIONX_SYSTEM_SDL_IMAGE OFF) set(DEVILUTIONX_SYSTEM_SDL_IMAGE OFF)
set(DEVILUTIONX_SYSTEM_LIBPNG OFF) set(DEVILUTIONX_SYSTEM_LIBPNG OFF)

13
Packaging/windows/dos-prep.sh

@ -31,25 +31,12 @@ build_and_install_djgpp() {
$SUDO rm -rf build-gcc $SUDO rm -rf build-gcc
} }
# Build and install SDL2 for DOS
build_and_install_sdl2() {
git clone --branch=dos-vbe-rebase https://github.com/diasurgical/SDL.git
cd SDL
"${INSTALL_PREFIX}/bin/i386-pc-msdosdjgpp-setenv" autoreconf -fi --verbose
"${INSTALL_PREFIX}/bin/i386-pc-msdosdjgpp-setenv" ./configure --host=i386-pc-msdosdjgpp --prefix="${INSTALL_PREFIX}/i386-pc-msdosdjgpp" --disable-shared --enable-static --enable-video-svga --enable-timer-dos --enable-uclock
"${INSTALL_PREFIX}/bin/i386-pc-msdosdjgpp-setenv" make -j$(nproc)
$SUDO "${INSTALL_PREFIX}/bin/i386-pc-msdosdjgpp-setenv" make install
cd -
rm -rf SDL
}
main() { main() {
set -x set -x
mkdir -p tmp/dos-prep mkdir -p tmp/dos-prep
cd tmp/dos-prep cd tmp/dos-prep
install_system_deps install_system_deps
build_and_install_djgpp build_and_install_djgpp
build_and_install_sdl2
} }
main "$@" main "$@"

Loading…
Cancel
Save