Skip to content

Commit 151a72c

Browse files
madebrstahta01
authored andcommitted
ci: add cygwin job and
install python for cygwin Also, cygwin has a unix-like naming convention using dlls [sdl-ci-filter cygwin]
1 parent 6d0f797 commit 151a72c

2 files changed

Lines changed: 24 additions & 0 deletions

File tree

.github/workflows/create-test-plan.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ class SdlPlatform(Enum):
4242
Haiku = "haiku"
4343
LoongArch64 = "loongarch64"
4444
Msys2 = "msys2"
45+
Cygwin = "cygwin"
4546
Linux = "linux"
4647
MacOS = "macos"
4748
Ios = "ios"
@@ -110,6 +111,7 @@ class JobSpec:
110111
"msys2-mingw64": JobSpec(name="Windows (msys2, mingw64)", os=JobOs.WindowsLatest, platform=SdlPlatform.Msys2, artifact="SDL-mingw64", msys2_platform=Msys2Platform.Mingw64, ),
111112
"msys2-clang64": JobSpec(name="Windows (msys2, clang64)", os=JobOs.WindowsLatest, platform=SdlPlatform.Msys2, artifact="SDL-mingw64-clang", msys2_platform=Msys2Platform.Clang64, ),
112113
"msys2-ucrt64": JobSpec(name="Windows (msys2, ucrt64)", os=JobOs.WindowsLatest, platform=SdlPlatform.Msys2, artifact="SDL-mingw64-ucrt", msys2_platform=Msys2Platform.Ucrt64, ),
114+
"cygwin": JobSpec(name="Cygwin", os=JobOs.WindowsLatest, platform=SdlPlatform.Cygwin, artifact="SDL-cygwin", ),
113115
"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", ),
114116
"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", ),
115117
"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, ),
@@ -161,6 +163,7 @@ class StaticLibType(Enum):
161163

162164
class SharedLibType(Enum):
163165
WIN32 = "SDL3.dll"
166+
CYGDLL = "cygSDL3-0.dll"
164167
SO_0 = "libSDL3.so.0"
165168
SO = "libSDL3.so"
166169
DYLIB = "libSDL3.0.dylib"
@@ -216,6 +219,7 @@ class JobDetails:
216219
intel: bool = False
217220
msys2_msystem: str = ""
218221
msys2_packages: list[str] = dataclasses.field(default_factory=list)
222+
cygwin_packages: list[str] = dataclasses.field(default_factory=list)
219223
werror: bool = True
220224
msvc_vcvars_arch: str = ""
221225
msvc_vcvars_sdk: str = ""
@@ -252,6 +256,7 @@ def to_workflow(self, enable_artifacts: bool) -> dict[str, str|bool]:
252256
"shell": self.shell,
253257
"msys2-msystem": self.msys2_msystem,
254258
"msys2-packages": my_shlex_join(self.msys2_packages),
259+
"cygwin-packages": my_shlex_join(self.cygwin_packages),
255260
"android-ndk": self.android_ndk,
256261
"java": self.java,
257262
"intel": self.intel,
@@ -764,6 +769,20 @@ def spec_to_job(spec: JobSpec, key: str, trackmem_symbol_names: bool, ctest_args
764769
job.msys2_packages.append(f"{msys2_env}-clang-tools-extra")
765770
if job.ccache:
766771
job.msys2_packages.append(f"{msys2_env}-ccache")
772+
case SdlPlatform.Cygwin:
773+
job.ccache = True
774+
job.shell = "bash --noprofile --norc -eo pipefail -o igncr {0}"
775+
job.shared_lib = SharedLibType.CYGDLL
776+
job.static_lib = StaticLibType.A
777+
job.cygwin_packages.extend([
778+
"ccache",
779+
"cmake",
780+
"gcc-core",
781+
"gcc-g++",
782+
"ninja",
783+
"pkg-config",
784+
"python",
785+
])
767786
case SdlPlatform.Riscos:
768787
job.ccache = False # FIXME: enable when container gets upgrade
769788
# FIXME: Enable SDL_WERROR

.github/workflows/generic.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,11 @@ jobs:
2828
with:
2929
msystem: ${{ matrix.platform.msys2-msystem }}
3030
install: ${{ matrix.platform.msys2-packages }}
31+
- name: 'Set up Cygwin'
32+
if: ${{ matrix.platform.platform == 'cygwin' }}
33+
uses: cygwin/cygwin-install-action@master
34+
with:
35+
packages: ${{ matrix.platform.cygwin-packages }}
3136
- name: 'About this job'
3237
run: |
3338
echo "key=${{ matrix.platform.key }}"

0 commit comments

Comments
 (0)