mirror of
https://github.com/libsdl-org/SDL.git
synced 2026-05-25 14:28:34 +00:00
Fix Cygwin building and add CI (#15566)
Co-authored-by: TrueCat17 <truecat17@gmail.com> Co-authored-by: Anonymous Maarten <anonymous.maarten@gmail.com> Co-authored-by: Ozkan Sezer <sezeroz@gmail.com>
This commit is contained in:
23
.github/workflows/create-test-plan.py
vendored
23
.github/workflows/create-test-plan.py
vendored
@@ -43,6 +43,7 @@ class SdlPlatform(Enum):
|
||||
Haiku = "haiku"
|
||||
LoongArch64 = "loongarch64"
|
||||
Msys2 = "msys2"
|
||||
Cygwin = "cygwin"
|
||||
Linux = "linux"
|
||||
MacOS = "macos"
|
||||
Ios = "ios"
|
||||
@@ -111,6 +112,7 @@ JOB_SPECS = {
|
||||
"msys2-mingw64": JobSpec(name="Windows (msys2, mingw64)", os=JobOs.WindowsLatest, platform=SdlPlatform.Msys2, artifact="SDL-mingw64", msys2_platform=Msys2Platform.Mingw64, ),
|
||||
"msys2-clang64": JobSpec(name="Windows (msys2, clang64)", os=JobOs.WindowsLatest, platform=SdlPlatform.Msys2, artifact="SDL-mingw64-clang", msys2_platform=Msys2Platform.Clang64, ),
|
||||
"msys2-ucrt64": JobSpec(name="Windows (msys2, ucrt64)", os=JobOs.WindowsLatest, platform=SdlPlatform.Msys2, artifact="SDL-mingw64-ucrt", msys2_platform=Msys2Platform.Ucrt64, ),
|
||||
"cygwin": JobSpec(name="Cygwin", os=JobOs.WindowsLatest, platform=SdlPlatform.Cygwin, artifact="SDL-cygwin", ),
|
||||
"msvc-x64": JobSpec(name="Windows (MSVC, x64)", os=JobOs.WindowsLatest, platform=SdlPlatform.Msvc, artifact="SDL-VC-x64", msvc_arch=MsvcArch.X64, msvc_project="VisualC/SDL.sln", ),
|
||||
"msvc-x86": JobSpec(name="Windows (MSVC, x86)", os=JobOs.WindowsLatest, platform=SdlPlatform.Msvc, artifact="SDL-VC-x86", msvc_arch=MsvcArch.X86, msvc_project="VisualC/SDL.sln", ),
|
||||
"msvc-clang-x64": JobSpec(name="Windows (MSVC, clang-cl x64)", os=JobOs.WindowsLatest, platform=SdlPlatform.Msvc, artifact="SDL-clang-cl-x64", msvc_arch=MsvcArch.X64, clang_cl=True, ),
|
||||
@@ -162,6 +164,7 @@ class StaticLibType(Enum):
|
||||
|
||||
class SharedLibType(Enum):
|
||||
WIN32 = "SDL3.dll"
|
||||
CYGDLL = "cygSDL3.dll"
|
||||
SO_0 = "libSDL3.so.0"
|
||||
SO = "libSDL3.so"
|
||||
DYLIB = "libSDL3.0.dylib"
|
||||
@@ -217,6 +220,7 @@ class JobDetails:
|
||||
intel: bool = False
|
||||
msys2_msystem: str = ""
|
||||
msys2_packages: list[str] = dataclasses.field(default_factory=list)
|
||||
cygwin_packages: list[str] = dataclasses.field(default_factory=list)
|
||||
werror: bool = True
|
||||
microsoft_gameinput_version: str = ""
|
||||
msvc_vcvars_arch: str = ""
|
||||
@@ -254,6 +258,7 @@ class JobDetails:
|
||||
"shell": self.shell,
|
||||
"msys2-msystem": self.msys2_msystem,
|
||||
"msys2-packages": my_shlex_join(self.msys2_packages),
|
||||
"cygwin-packages": my_shlex_join(self.cygwin_packages),
|
||||
"android-ndk": self.android_ndk,
|
||||
"java": self.java,
|
||||
"intel": self.intel,
|
||||
@@ -773,6 +778,24 @@ def spec_to_job(spec: JobSpec, key: str, trackmem_symbol_names: bool, ctest_args
|
||||
job.microsoft_gameinput_version = WINDOWS_GAMEINPUT_VERSION
|
||||
job.cflags.append("-I$GAMEINPUT_INCLUDE")
|
||||
job.cxxflags.append("-I$GAMEINPUT_INCLUDE")
|
||||
case SdlPlatform.Cygwin:
|
||||
job.ccache = False # Missing evict-older-than option
|
||||
job.clang_tidy = False # error finding files [clang-diagnostic-error] cause might be space in command path
|
||||
job.test_pkg_config = False # Linefeed issue in test_pkgconfig.sh
|
||||
job.shell = "bash --noprofile --norc -eo pipefail -o igncr {0}"
|
||||
job.shared_lib = SharedLibType.CYGDLL
|
||||
job.static_lib = StaticLibType.A
|
||||
job.cmake_arguments.append("-DSDLTEST_GDB=ON")
|
||||
job.cygwin_packages.extend([
|
||||
"cmake",
|
||||
"gcc-core",
|
||||
"gcc-g++",
|
||||
"gdb",
|
||||
"ninja",
|
||||
"pkg-config",
|
||||
"perl",
|
||||
"python",
|
||||
])
|
||||
case SdlPlatform.Riscos:
|
||||
job.ccache = False # FIXME: enable when container gets upgrade
|
||||
# FIXME: Enable SDL_WERROR
|
||||
|
||||
5
.github/workflows/generic.yml
vendored
5
.github/workflows/generic.yml
vendored
@@ -28,6 +28,11 @@ jobs:
|
||||
with:
|
||||
msystem: ${{ matrix.platform.msys2-msystem }}
|
||||
install: ${{ matrix.platform.msys2-packages }}
|
||||
- name: 'Set up Cygwin'
|
||||
if: ${{ matrix.platform.platform == 'cygwin' }}
|
||||
uses: cygwin/cygwin-install-action@master
|
||||
with:
|
||||
packages: ${{ matrix.platform.cygwin-packages }}
|
||||
- name: 'About this job'
|
||||
run: |
|
||||
echo "key=${{ matrix.platform.key }}"
|
||||
|
||||
Reference in New Issue
Block a user