@@ -54,6 +54,7 @@ class SdlPlatform(Enum):
54
54
Riscos = "riscos"
55
55
FreeBSD = "freebsd"
56
56
NetBSD = "netbsd"
57
+ NGage = "ngage"
57
58
58
59
59
60
class Msys2Platform (Enum ):
@@ -138,6 +139,7 @@ class JobSpec:
138
139
"riscos" : JobSpec (name = "RISC OS" , os = JobOs .UbuntuLatest , platform = SdlPlatform .Riscos , artifact = "SDL-riscos" , container = "riscosdotinfo/riscos-gccsdk-4.7:latest" , ),
139
140
"netbsd" : JobSpec (name = "NetBSD" , os = JobOs .UbuntuLatest , platform = SdlPlatform .NetBSD , artifact = "SDL-netbsd-x64" , ),
140
141
"freebsd" : JobSpec (name = "FreeBSD" , os = JobOs .UbuntuLatest , platform = SdlPlatform .FreeBSD , artifact = "SDL-freebsd-x64" , ),
142
+ "ngage" : JobSpec (name = "N-Gage" , os = JobOs .WindowsLatest , platform = SdlPlatform .NGage , artifact = "SDL-ngage" , ),
141
143
}
142
144
143
145
@@ -163,6 +165,7 @@ class JobDetails:
163
165
artifact : str
164
166
no_cmake : bool
165
167
ccache : bool = False
168
+ continue_on_error : bool = False
166
169
build_tests : bool = True
167
170
container : str = ""
168
171
cmake_build_type : str = "RelWithDebInfo"
@@ -222,6 +225,7 @@ class JobDetails:
222
225
check_sources : bool = False
223
226
setup_python : bool = False
224
227
pypi_packages : list [str ] = dataclasses .field (default_factory = list )
228
+ setup_gage_sdk_path : str = ""
225
229
226
230
def to_workflow (self , enable_artifacts : bool ) -> dict [str , str | bool ]:
227
231
data = {
@@ -231,6 +235,7 @@ def to_workflow(self, enable_artifacts: bool) -> dict[str, str|bool]:
231
235
"ccache" : self .ccache ,
232
236
"container" : self .container if self .container else "" ,
233
237
"platform" : self .platform ,
238
+ "continue-on-error" : self .continue_on_error ,
234
239
"artifact" : self .artifact ,
235
240
"enable-artifacts" : enable_artifacts ,
236
241
"shell" : self .shell ,
@@ -289,6 +294,7 @@ def to_workflow(self, enable_artifacts: bool) -> dict[str, str|bool]:
289
294
"check-sources" : self .check_sources ,
290
295
"setup-python" : self .setup_python ,
291
296
"pypi-packages" : my_shlex_join (self .pypi_packages ),
297
+ "setup-ngage-sdk-path" : self .setup_gage_sdk_path ,
292
298
}
293
299
return {k : v for k , v in data .items () if v != "" }
294
300
@@ -737,6 +743,20 @@ def spec_to_job(spec: JobSpec, key: str, trackmem_symbol_names: bool) -> JobDeta
737
743
job .cpactions_arch = "x86-64"
738
744
job .cpactions_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"
739
745
job .cpactions_install_cmd = "sudo -E pkgin -y install cmake dbus pkgconf ninja-build pulseaudio libxkbcommon wayland wayland-protocols libinotify libusb1"
746
+ case SdlPlatform .NGage :
747
+ job .cmake_arguments .extend ([
748
+ "-DBUILD_FOR_NOKIA_NGAGE=ON" , # FIXME: remove this
749
+ ])
750
+ job .continue_on_error = True # FIXME: remove this
751
+ job .setup_ninja = True
752
+ job .static_lib = None # FIXME: should be StaticLibType.A
753
+ job .shared_lib = None
754
+ job .clang_tidy = False
755
+ job .werror = False # FIXME: enable SDL_WERROR
756
+ job .shared = False
757
+ job .run_tests = False
758
+ job .setup_gage_sdk_path = "C:/ngagesdk"
759
+ job .cmake_toolchain_file = "C:/ngagesdk/cmake/ngage-toolchain.cmake"
740
760
case _:
741
761
raise ValueError (f"Unsupported platform={ spec .platform } " )
742
762
0 commit comments