From 3ac9fff183457e230efef41626b32c52fffa7c10 Mon Sep 17 00:00:00 2001
From: Ozkan Sezer <[EMAIL REDACTED]>
Date: Thu, 1 Oct 2026 23:56:50 +0300
Subject: [PATCH] ci: add os2/emx workflow.
Closes: https://github.com/libsdl-org/SDL/issues/16403
---
.github/workflows/create-test-plan.py | 14 ++++++++++++++
.github/workflows/generic.yml | 5 +++++
2 files changed, 19 insertions(+)
diff --git a/.github/workflows/create-test-plan.py b/.github/workflows/create-test-plan.py
index 39462f4f975c1..5af85c8ab6c0a 100755
--- a/.github/workflows/create-test-plan.py
+++ b/.github/workflows/create-test-plan.py
@@ -52,6 +52,7 @@ class SdlPlatform(Enum):
NetBSD = "netbsd"
OpenBSD = "openbsd"
Watcom = "watcom"
+ OS2EMX = "os2emx"
class Msys2Platform(Enum):
@@ -135,6 +136,7 @@ class JobSpec:
"freebsd": JobSpec(name="FreeBSD", os=JobOs.UbuntuLatest, platform=SdlPlatform.FreeBSD, artifact="SDL-freebsd-x64", autotools=True, ),
"watcom-win32": JobSpec(name="Watcom (Windows)", os=JobOs.WindowsLatest, platform=SdlPlatform.Watcom, artifact="SDL-watcom-win32", no_cmake=True, watcom_platform=WatcomPlatform.Windows ),
"watcom-os2": JobSpec(name="Watcom (OS/2)", os=JobOs.WindowsLatest, platform=SdlPlatform.Watcom, artifact="SDL-watcom-os2", no_cmake=True, watcom_platform=WatcomPlatform.OS2 ),
+ "os2-emx": JobSpec(name="OS/2 EMX (KLIBC)", os=JobOs.UbuntuLatest, platform=SdlPlatform.OS2EMX, artifact="SDL-os2-emx", ),
# "watcom-win32"
# "watcom-os2"
}
@@ -658,6 +660,18 @@ def spec_to_job(spec: JobSpec, key: str, trackmem_symbol_names: bool) -> JobDeta
job.run_tests = True
case _:
raise ValueError(f"Unsupported watcom_platform=${spec.watcom_platform}")
+ case SdlPlatform.OS2EMX:
+ fpic = False
+ job.apt_packages = []
+ job.build_autotools_tests = False
+ job.run_tests = False
+ job.cmake_generator = "Unix Makefiles"
+ job.cmake_build_arguments.append("-j$(nproc)")
+ job.cc_from_cmake = True
+ job.cmake_toolchain_file = "$OS2EMX_CMAKE_TOOLCHAIN_FILE"
+ job.sudo = ""
+ job.shared_lib = SharedLibType.WIN32
+ #job.static_lib = StaticLibType.A
case _:
raise ValueError(f"Unsupported platform={spec.platform}")
diff --git a/.github/workflows/generic.yml b/.github/workflows/generic.yml
index 2234f613a9ecd..200944842222c 100644
--- a/.github/workflows/generic.yml
+++ b/.github/workflows/generic.yml
@@ -65,6 +65,11 @@ jobs:
with:
arch: ${{ matrix.platform.msvc-vcvars-arch }}
sdk: ${{ matrix.platform.msvc-vcvars-sdk }}
+ - name: 'Set up OS2EMX cross-toolchain'
+ uses: komh/setup-cross-os2emx@v1
+ if: ${{ matrix.platform.platform == 'os2emx' }}
+ with:
+ platform: linux-x64
- name: 'Set up Windows GDK Desktop'
uses: ./.github/actions/setup-gdk-desktop
if: ${{ matrix.platform.setup-gdk-folder != '' }}