forked from libsdl-org/SDL
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge remote-tracking branch 'upstream/main' into SDL3-MorphOS
- Loading branch information
Showing
1,239 changed files
with
76,958 additions
and
24,609 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,106 @@ | ||
name: Build (Android) | ||
|
||
on: [push, pull_request] | ||
|
||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} | ||
cancel-in-progress: true | ||
|
||
jobs: | ||
android: | ||
name: ${{ matrix.platform.name }} | ||
runs-on: ubuntu-latest | ||
|
||
strategy: | ||
fail-fast: false | ||
matrix: | ||
platform: | ||
- { name: Android.mk } | ||
- { name: CMake, cmake: 1, android_abi: "arm64-v8a", android_platform: 23, arch: "aarch64", artifact: "SDL-android-arm64", apk-artifact: "SDL-android-apks-arm64" } | ||
|
||
steps: | ||
- uses: actions/checkout@v3 | ||
- uses: nttld/setup-ndk@v1 | ||
id: setup_ndk | ||
with: | ||
local-cache: true | ||
ndk-version: r21e | ||
- name: Build (Android.mk) | ||
if: ${{ matrix.platform.name == 'Android.mk' }} | ||
run: | | ||
./build-scripts/androidbuildlibs.sh | ||
- uses: actions/setup-java@v3 | ||
if: ${{ matrix.platform.name == 'CMake' }} | ||
with: | ||
distribution: 'temurin' | ||
java-version: '11' | ||
- name: Setup (CMake) | ||
if: ${{ matrix.platform.name == 'CMake' }} | ||
run: | | ||
sudo apt-get update | ||
sudo apt-get install ninja-build pkg-config | ||
- name: Configure (CMake) | ||
if: ${{ matrix.platform.name == 'CMake' }} | ||
run: | | ||
cmake -S . -B build \ | ||
-Wdeprecated -Wdev -Werror \ | ||
-DCMAKE_TOOLCHAIN_FILE=${{ steps.setup_ndk.outputs.ndk-path }}/build/cmake/android.toolchain.cmake \ | ||
-DSDL_WERROR=ON \ | ||
-DSDL_TESTS=ON \ | ||
-DSDL_INSTALL_TESTS=ON \ | ||
-DSDL_CLANG_TIDY=ON \ | ||
-DANDROID_PLATFORM=${{ matrix.platform.android_platform }} \ | ||
-DANDROID_ABI=${{ matrix.platform.android_abi }} \ | ||
-DSDL_SHARED=ON \ | ||
-DSDL_STATIC=ON \ | ||
-DSDL_STATIC_PIC=ON \ | ||
-DSDL_VENDOR_INFO="Github Workflow" \ | ||
-DCMAKE_INSTALL_PREFIX=prefix \ | ||
-DCMAKE_BUILD_TYPE=Release \ | ||
-GNinja | ||
- name: Build (CMake) | ||
if: ${{ matrix.platform.name == 'CMake' }} | ||
run: | | ||
cmake --build build --config Release --parallel --verbose | ||
- name: Build test apk's (CMake) | ||
if: ${{ matrix.platform.name == 'CMake' }} | ||
run: | | ||
cmake --build build --config Release --parallel --verbose --target testaudiocapture-apk testcontroller-apk testmultiaudio-apk testsprite-apk | ||
- name: Install (CMake) | ||
if: ${{ matrix.platform.name == 'CMake' }} | ||
run: | | ||
cmake --install build --config Release | ||
echo "SDL3_DIR=$(pwd)/prefix" >> $GITHUB_ENV | ||
( cd prefix; find ) | LC_ALL=C sort -u | ||
- name: Package (CPack) | ||
if: ${{ matrix.platform.name == 'CMake' }} | ||
run: | | ||
cmake --build build/ --config Release --target package | ||
- name: Verify CMake configuration files | ||
if: ${{ matrix.platform.name == 'CMake' }} | ||
run: | | ||
cmake -S cmake/test -B cmake_config_build -G Ninja \ | ||
-DCMAKE_TOOLCHAIN_FILE=${{ steps.setup_ndk.outputs.ndk-path }}/build/cmake/android.toolchain.cmake \ | ||
-DANDROID_PLATFORM=${{ matrix.platform.android_platform }} \ | ||
-DANDROID_ABI=${{ matrix.platform.android_abi }} \ | ||
-DCMAKE_BUILD_TYPE=Release \ | ||
-DCMAKE_PREFIX_PATH=${{ env.SDL3_DIR }} | ||
cmake --build cmake_config_build --verbose | ||
- name: Verify sdl3.pc | ||
if: ${{ matrix.platform.name == 'CMake' }} | ||
run: | | ||
export CC="${{ steps.setup_ndk.outputs.ndk-path }}/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=${{ matrix.platform.arch }}-none-linux-androideabi${{ matrix.platform.android_platform }}" | ||
export PKG_CONFIG_PATH=${{ env.SDL3_DIR }}/lib/pkgconfig | ||
cmake/test/test_pkgconfig.sh | ||
- uses: actions/upload-artifact@v3 | ||
if: ${{ matrix.platform.name == 'CMake' }} | ||
with: | ||
if-no-files-found: error | ||
name: ${{ matrix.platform.artifact }} | ||
path: build/dist/SDL3* | ||
- uses: actions/upload-artifact@v3 | ||
if: ${{ matrix.platform.name == 'CMake' }} | ||
with: | ||
if-no-files-found: error | ||
name: ${{ matrix.platform.apk-artifact }} | ||
path: build/test/*.apk |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
name: Build (C/P Actions) | ||
|
||
on: [push, pull_request] | ||
|
||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} | ||
cancel-in-progress: true | ||
|
||
jobs: | ||
freebsd: | ||
runs-on: ubuntu-latest | ||
name: '${{ matrix.platform.name }} ${{ matrix.platform.os-version }}' | ||
timeout-minutes: 30 | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
platform: | ||
- { name: FreeBSD, os: freebsd, os-version: 13.2, os-arch: x86-64, artifact: SDL-freebsd-x64, | ||
sdl-cmake-configure-arguments: '-DSDL_CHECK_REQUIRED_INCLUDES="/usr/local/include" -DSDL_CHECK_REQUIRED_LINK_OPTIONS="-L/usr/local/lib"', | ||
setup-cmd: 'sudo pkg update', | ||
install-cmd: 'sudo pkg install -y cmake ninja pkgconf libXcursor libXext libXinerama libXi libXfixes libXrandr libXScrnSaver libXxf86vm wayland wayland-protocols libxkbcommon mesa-libs libglvnd evdev-proto libinotify alsa-lib jackit pipewire pulseaudio sndio dbus zh-fcitx ibus libudev-devd', | ||
} | ||
- { name: NetBSD, os: netbsd, os-version: 9.3, os-arch: x86-64, artifact: SDL-netbsd-x64, | ||
sdl-cmake-configure-arguments: '', | ||
setup-cmd: 'export PATH="/usr/pkg/sbin:/usr/pkg/bin:/sbin:$PATH";export PKG_CONFIG_PATH="/usr/pkg/lib/pkgconfig";export PKG_PATH="https://cdn.netBSD.org/pub/pkgsrc/packages/NetBSD/$(uname -p)/$(uname -r|cut -f "1 2" -d.)/All/";echo "PKG_PATH=$PKG_PATH";echo "uname -a -> \"$(uname -a)\"";sudo -E sysctl -w security.pax.aslr.enabled=0;sudo -E sysctl -w security.pax.aslr.global=0;sudo -E pkgin clean;sudo -E pkgin update', | ||
install-cmd: 'sudo -E pkgin -y install cmake dbus pkgconf ninja-build pulseaudio libxkbcommon wayland wayland-protocols libinotify libusb1', | ||
} | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: Build | ||
uses: cross-platform-actions/[email protected] | ||
with: | ||
operating_system: ${{ matrix.platform.os }} | ||
architecture: ${{ matrix.platform.os-arch }} | ||
version: ${{ matrix.platform.os-version }} | ||
run: | | ||
${{ matrix.platform.setup-cmd }} | ||
${{ matrix.platform.install-cmd }} | ||
cmake -S . -B build -GNinja \ | ||
-Wdeprecated -Wdev -Werror \ | ||
-DCMAKE_BUILD_TYPE=Release \ | ||
-DSDL_WERROR=ON \ | ||
${{ matrix.platform.sdl-cmake-configure-arguments }} | ||
cmake --build build/ --config Release --verbose | ||
cmake --build build/ --config Release --target package | ||
cmake --build build/ --config Release --target clean | ||
rm -rf build/dist/_CPack_Packages | ||
rm -rf build/CMakeFiles | ||
rm -rf build/docs | ||
- uses: actions/upload-artifact@v3 | ||
with: | ||
if-no-files-found: error | ||
name: ${{ matrix.platform.artifact }} | ||
path: build/dist/SDL3* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,102 @@ | ||
name: Build (MSVC) | ||
|
||
on: [push, pull_request] | ||
|
||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} | ||
cancel-in-progress: true | ||
|
||
jobs: | ||
Build: | ||
name: ${{ matrix.platform.name }} | ||
runs-on: windows-latest | ||
|
||
strategy: | ||
fail-fast: false | ||
matrix: | ||
platform: | ||
- { name: Windows (x64), flags: -A x64, project: VisualC/SDL.sln, projectflags: '/p:Platform=x64', artifact: 'SDL-VC-x64' } | ||
- { name: Windows (x86), flags: -A Win32, project: VisualC/SDL.sln, projectflags: '/p:Platform=Win32', artifact: 'SDL-VC-x86' } | ||
- { name: Windows static VCRT (x64), flags: -A x64 -DSDL_FORCE_STATIC_VCRT=ON, artifact: 'SDL-VC-static-VCRT-x64' } | ||
- { name: Windows static VCRT (x86), flags: -A Win32 -DSDL_FORCE_STATIC_VCRT=ON, artifact: 'SDL-VC-static-VCRT-x86' } | ||
- { name: Windows (clang-cl x64), flags: -T ClangCL -A x64, artifact: 'SDL-clang-cl-x64' } | ||
- { name: Windows (clang-cl x86), flags: -T ClangCL -A Win32, artifact: 'SDL-clang-cl-x86' } | ||
- { name: Windows (ARM), flags: -A ARM, artifact: 'SDL-VC-arm32', notests: true } | ||
- { name: Windows (ARM64), flags: -A ARM64, artifact: 'SDL-VC-arm64', notests: true } | ||
- { name: UWP (x64), flags: -A x64 -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION="10.0", nowerror: true, notests: true, | ||
project: VisualC-WinRT/SDL-UWP.sln, projectflags: '/p:Platform=x64 /p:WindowsTargetPlatformVersion=10.0.17763.0', artifact: 'SDL-VC-UWP' } | ||
|
||
steps: | ||
- uses: actions/checkout@v3 | ||
- 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) | ||
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(cmakelists_txt) | ||
- name: Configure (CMake) | ||
run: cmake -S build -B build ` | ||
-Wdeprecated -Wdev -Werror ` | ||
-DSDL_WERROR=${{ !matrix.platform.nowerror }} ` | ||
-DSDL_SHARED=ON ` | ||
-DSDL_STATIC=ON ` | ||
-DSDL_TESTS=ON ` | ||
-DSDL_INSTALL_TESTS=ON ` | ||
-DSDL_VENDOR_INFO="Github Workflow" ` | ||
-DSDL_DISABLE_INSTALL=OFF ` | ||
-DSDL_DISABLE_INSTALL_CPACK=OFF ` | ||
-DSDL_DISABLE_INSTALL_DOCS=OFF ` | ||
${{ matrix.platform.flags }} ` | ||
-DCMAKE_INSTALL_PREFIX=prefix | ||
- name: Build (CMake) | ||
id: build | ||
run: | | ||
cmake --build build/ --config Release --parallel | ||
- name: Run build-time tests | ||
if: ${{ !matrix.platform.notests }} | ||
run: | | ||
$env:SDL_TESTS_QUICK=1 | ||
ctest -VV --test-dir build/ -C Release -j2 | ||
- name: Install (CMake) | ||
run: | | ||
echo "SDL3_DIR=$Env:GITHUB_WORKSPACE/prefix" >> $Env:GITHUB_ENV | ||
cmake --install build/ | ||
- name: Package (CPack) | ||
if: ${{ always() && steps.build.outcome == 'success' }} | ||
run: | | ||
cmake --build build/ --config Release --target PACKAGE | ||
- name: Verify CMake configuration files | ||
run: | | ||
cmake -S cmake/test -B cmake_config_build ` | ||
-DCMAKE_PREFIX_PATH=${{ env.SDL3_DIR }} ` | ||
${{ matrix.platform.flags }} | ||
cmake --build cmake_config_build --config Release | ||
- name: Add msbuild to PATH | ||
if: ${{ matrix.platform.project != '' }} | ||
uses: microsoft/[email protected] | ||
- name: Build msbuild | ||
if: ${{ matrix.platform.project != '' }} | ||
run: msbuild ${{ matrix.platform.project }} /m /p:BuildInParallel=true /p:Configuration=Release ${{ matrix.platform.projectflags }} | ||
- uses: actions/upload-artifact@v3 | ||
if: ${{ always() && steps.build.outcome == 'success' }} | ||
with: | ||
if-no-files-found: error | ||
name: ${{ matrix.platform.artifact }} | ||
path: build/dist/SDL3* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.