mirror of
https://github.com/libsdl-org/SDL.git
synced 2026-04-20 14:25:40 +00:00
remove autotools build system
- TODO: update INSTALL.txt to replace the autotools configure
instructions with cmake.
- TODO: update make build system to provide an equivalent to
autotools' `make dist` ?
- TODO: update / revise github actions, replace autotools-only
ones with cmake (e.g.: vmactions.yml for FreeBSD.)
Reference issue: https://github.com/libsdl-org/SDL/issues/6571
This commit is contained in:
committed by
Sam Lantinga
parent
873ec097ea
commit
7b21eaddce
108
.github/workflows/main.yml
vendored
108
.github/workflows/main.yml
vendored
@@ -20,12 +20,9 @@ jobs:
|
||||
- { name: Windows (clang32), os: windows-latest, shell: 'msys2 {0}', msystem: clang32, msys-env: mingw-w64-clang-i686 }
|
||||
- { name: Windows (clang64), os: windows-latest, shell: 'msys2 {0}', msystem: clang64, msys-env: mingw-w64-clang-x86_64 }
|
||||
- { name: Windows (ucrt64), os: windows-latest, shell: 'msys2 {0}', msystem: ucrt64, msys-env: mingw-w64-ucrt-x86_64 }
|
||||
- { name: Ubuntu 20.04 (CMake), os: ubuntu-20.04, shell: sh }
|
||||
- { name: Ubuntu 20.04 (autotools), os: ubuntu-20.04, shell: sh, autotools: true }
|
||||
- { name: Ubuntu 22.04 (CMake), os: ubuntu-22.04, shell: sh }
|
||||
- { name: Ubuntu 22.04 (autotools), os: ubuntu-22.04, shell: sh, autotools: true }
|
||||
- { name: MacOS (CMake), os: macos-latest, shell: sh, cmake: '-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"' }
|
||||
- { name: MacOS (autotools), os: macos-latest, shell: sh, autotools: true }
|
||||
- { name: Ubuntu 20.04, os: ubuntu-20.04, shell: sh }
|
||||
- { name: Ubuntu 22.04, os: ubuntu-22.04, shell: sh }
|
||||
- { name: MacOS, os: macos-latest, shell: sh, cmake: '-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"' }
|
||||
|
||||
steps:
|
||||
- name: Set up MSYS2
|
||||
@@ -63,10 +60,9 @@ jobs:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Check that versioning is consistent
|
||||
# We only need to run this once: arbitrarily use the Linux/CMake build
|
||||
if: "runner.os == 'Linux' && ! matrix.platform.autotools"
|
||||
if: "runner.os == 'Linux'"
|
||||
run: ./build-scripts/test-versioning.sh
|
||||
- name: Configure (CMake)
|
||||
if: "! matrix.platform.autotools"
|
||||
run: |
|
||||
cmake -S . -B build -G Ninja \
|
||||
-DSDL_TESTS=ON \
|
||||
@@ -77,11 +73,9 @@ jobs:
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
${{ matrix.platform.cmake }}
|
||||
- name: Build (CMake)
|
||||
if: "! matrix.platform.autotools"
|
||||
run: |
|
||||
cmake --build build/ --config Release --verbose --parallel
|
||||
- name: Run build-time tests (CMake)
|
||||
if: "! matrix.platform.autotools"
|
||||
run: |
|
||||
set -eu
|
||||
export SDL_TESTS_QUICK=1
|
||||
@@ -91,76 +85,11 @@ jobs:
|
||||
strings build/libSDL3.so.0 | grep SDL-
|
||||
fi
|
||||
- name: Install (CMake)
|
||||
if: "! matrix.platform.autotools"
|
||||
run: |
|
||||
set -eu
|
||||
cmake --install build/ --config Release
|
||||
echo "SDL3_DIR=$(pwd)/cmake_prefix" >> $GITHUB_ENV
|
||||
( cd cmake_prefix; find . ) | LC_ALL=C sort -u
|
||||
- name: Configure (Autotools)
|
||||
if: matrix.platform.autotools
|
||||
run: |
|
||||
set -eu
|
||||
rm -fr build-autotools
|
||||
mkdir build-autotools
|
||||
./autogen.sh
|
||||
(
|
||||
cd build-autotools
|
||||
${{ github.workspace }}/configure \
|
||||
--enable-vendor-info="Github Workflow" \
|
||||
--enable-werror \
|
||||
--prefix=${{ github.workspace }}/autotools_prefix \
|
||||
)
|
||||
if test "${{ runner.os }}" != "macOS" ; then
|
||||
curdir="$(pwd)"
|
||||
multiarch="$(dpkg-architecture -qDEB_HOST_MULTIARCH)"
|
||||
(
|
||||
mkdir -p build-autotools/test
|
||||
cd build-autotools/test
|
||||
${{ github.workspace }}/test/configure \
|
||||
--enable-werror \
|
||||
--x-includes=/usr/include \
|
||||
--x-libraries="/usr/lib/${multiarch}" \
|
||||
--prefix=${{ github.workspace }}/autotools_prefix \
|
||||
SDL_CFLAGS="-I${curdir}/include" \
|
||||
SDL_LIBS="-L${curdir}/build-autotools/build/.libs -lSDL3" \
|
||||
ac_cv_lib_SDL3_ttf_TTF_Init=no \
|
||||
${NULL+}
|
||||
)
|
||||
fi
|
||||
- name: Build (Autotools)
|
||||
if: matrix.platform.autotools
|
||||
run: |
|
||||
set -eu
|
||||
parallel="$(getconf _NPROCESSORS_ONLN)"
|
||||
make -j"${parallel}" -C build-autotools V=1
|
||||
if test "${{ runner.os }}" != "macOS" ; then
|
||||
make -j"${parallel}" -C build-autotools/test V=1
|
||||
fi
|
||||
- name: Run build-time tests (Autotools)
|
||||
if: ${{ matrix.platform.autotools && (runner.os != 'macOS') }}
|
||||
run: |
|
||||
set -eu
|
||||
curdir="$(pwd)"
|
||||
parallel="$(getconf _NPROCESSORS_ONLN)"
|
||||
export SDL_TESTS_QUICK=1
|
||||
make -j"${parallel}" -C build-autotools/test check LD_LIBRARY_PATH="${curdir}/build-autotools/build/.libs"
|
||||
if test "${{ runner.os }}" = "Linux"; then
|
||||
# This should show us the SDL_REVISION
|
||||
strings "${curdir}/build-autotools/build/.libs/libSDL3.so.0" | grep SDL-
|
||||
fi
|
||||
- name: Install (Autotools)
|
||||
if: matrix.platform.autotools
|
||||
run: |
|
||||
set -eu
|
||||
curdir="$(pwd)"
|
||||
parallel="$(getconf _NPROCESSORS_ONLN)"
|
||||
make -j"${parallel}" -C build-autotools install V=1
|
||||
if test "${{ runner.os }}" != "macOS" ; then
|
||||
make -j"${parallel}" -C build-autotools/test install V=1
|
||||
fi
|
||||
( cd autotools_prefix; find . ) | LC_ALL=C sort -u
|
||||
echo "SDL3_DIR=$(pwd)/autotools_prefix" >> $GITHUB_ENV
|
||||
- name: Verify CMake configuration files
|
||||
run: |
|
||||
cmake -S cmake/test -B cmake_config_build -G Ninja \
|
||||
@@ -175,32 +104,3 @@ jobs:
|
||||
run: |
|
||||
export PKG_CONFIG_PATH=${{ env.SDL3_DIR }}/lib/pkgconfig
|
||||
cmake/test/test_pkgconfig.sh
|
||||
- name: Distcheck (Autotools)
|
||||
if: matrix.platform.autotools
|
||||
run: |
|
||||
set -eu
|
||||
parallel="$(getconf _NPROCESSORS_ONLN)"
|
||||
make -j"${parallel}" -C build-autotools dist V=1
|
||||
# Similar to Automake `make distcheck`: check that the tarball
|
||||
# release is sufficient to do a new build
|
||||
mkdir distcheck
|
||||
tar -C distcheck -zxf build-autotools/SDL3-*.tar.gz
|
||||
( cd distcheck/SDL3-* && ./configure )
|
||||
make -j"${parallel}" -C distcheck/SDL3-*
|
||||
- name: Run installed-tests (Autotools)
|
||||
if: "runner.os == 'Linux' && matrix.platform.autotools"
|
||||
run: |
|
||||
set -eu
|
||||
parallel="$(getconf _NPROCESSORS_ONLN)"
|
||||
sudo make -j"${parallel}" -C build-autotools install
|
||||
sudo make -j"${parallel}" -C build-autotools/test install
|
||||
export SDL_TESTS_QUICK=1
|
||||
# We need to set LD_LIBRARY_PATH because it isn't in the default
|
||||
# linker search path. We don't need to set XDG_DATA_DIRS for
|
||||
# ginsttest-runner, because /usr/local/share *is* in the default
|
||||
# search path for that.
|
||||
env --chdir=/ \
|
||||
LD_LIBRARY_PATH=/usr/local/lib \
|
||||
SDL_AUDIODRIVER=dummy \
|
||||
SDL_VIDEODRIVER=dummy \
|
||||
ginsttest-runner --tap SDL3
|
||||
|
||||
19
.github/workflows/riscos.yml
vendored
19
.github/workflows/riscos.yml
vendored
@@ -12,31 +12,12 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
platform:
|
||||
- { name: autotools, test_args: '-DTEST_SHARED=FALSE' } # FIXME: autotools should build and install shared libraries
|
||||
- { name: CMake }
|
||||
|
||||
steps:
|
||||
- name: Setup dependencies
|
||||
run: apt-get update && apt-get install -y cmake ninja-build
|
||||
- uses: actions/checkout@v3
|
||||
- name: Configure (autotools)
|
||||
if: ${{ contains(matrix.platform.name, 'autotools') }}
|
||||
run: |
|
||||
mkdir build_autotools
|
||||
cd build_autotools
|
||||
../configure \
|
||||
--host=arm-unknown-riscos \
|
||||
--disable-gcc-atomics \
|
||||
--prefix=${{ github.workspace }}/prefix_autotools
|
||||
- name: Build (autotools)
|
||||
if: ${{ contains(matrix.platform.name, 'autotools') }}
|
||||
run: make -C build_autotools -j`nproc` V=1
|
||||
- name: Install (autotools)
|
||||
if: ${{ contains(matrix.platform.name, 'autotools') }}
|
||||
run: |
|
||||
echo "SDL3_DIR=${{ github.workspace }}/prefix_autotools" >> $GITHUB_ENV
|
||||
make -C build_autotools install
|
||||
( cd ${{ github.workspace }}/prefix_autotools; find ) | LC_ALL=C sort -u
|
||||
- name: Configure (CMake)
|
||||
if: ${{ contains(matrix.platform.name, 'CMake') }}
|
||||
run: |
|
||||
|
||||
Reference in New Issue
Block a user