@@ -37,196 +37,116 @@ pub enum OS {
3737
3838// Helper function to convert string names to OS enum
3939pub fn os_from_string (os_str string ) ! OS {
40- match os_str {
41- '' {
42- return ._auto
43- }
44- 'linux' {
45- return .linux
46- }
47- 'nix' {
48- return .linux
49- }
50- 'windows' {
51- return .windows
52- }
53- 'ios' {
54- return .ios
55- }
56- 'macos' {
57- return .macos
58- }
59- 'darwin' {
60- return .macos
61- }
62- 'freebsd' {
63- return .freebsd
64- }
65- 'openbsd' {
66- return .openbsd
67- }
68- 'netbsd' {
69- return .netbsd
70- }
71- 'dragonfly' {
72- return .dragonfly
73- }
74- 'js' , 'js_node' {
75- return .js_node
76- }
77- 'js_freestanding' {
78- return .js_freestanding
79- }
80- 'js_browser' {
81- return .js_browser
82- }
83- 'solaris' {
84- return .solaris
85- }
86- 'serenity' {
87- return .serenity
88- }
89- 'qnx' {
90- return .qnx
91- }
92- 'plan9' {
93- return .plan9
94- }
95- 'vinix' {
96- return .vinix
97- }
98- 'android' {
99- return .android
100- }
101- 'termux' {
102- return .termux
103- }
104- 'haiku' {
105- return .haiku
106- }
107- 'raw' {
108- return .raw
109- }
110- // WASM options:
111- 'wasm32' {
112- return .wasm32
113- }
114- 'wasm32_wasi' {
115- return .wasm32_ wasi
116- }
117- 'wasm32_emscripten' {
118- return .wasm32_ emscripten
119- }
120- // Native WASM options:
121- 'browser' {
122- return .browser
123- }
124- 'wasi' {
125- return .wasi
126- }
127- else {
128- return error ('bad OS ${os_str} ' )
129- }
40+ return match os_str {
41+ '' { ._auto }
42+ 'linux' , 'nix' { .linux }
43+ 'windows' { .windows }
44+ 'ios' { .ios }
45+ 'macos' , 'darwin' { .macos }
46+ 'freebsd' { .freebsd }
47+ 'openbsd' { .openbsd }
48+ 'netbsd' { .netbsd }
49+ 'dragonfly' { .dragonfly }
50+ 'js' , 'js_node' { .js_node }
51+ 'js_freestanding' { .js_freestanding }
52+ 'js_browser' { .js_browser }
53+ 'solaris' { .solaris }
54+ 'qnx' { .qnx }
55+ 'serenity' { .serenity }
56+ 'plan9' { .plan9 }
57+ 'vinix' { .vinix }
58+ 'android' { .android }
59+ 'termux' { .termux }
60+ 'haiku' { .haiku }
61+ 'raw' { .raw }
62+ 'wasm32' { .wasm32 }
63+ 'wasm32_wasi' { .wasm32_ wasi }
64+ 'wasm32_emscripten' { .wasm32_ emscripten }
65+ 'browser' { .browser }
66+ 'wasi' { .wasi }
67+ else { return error ('bad OS ${os_str} ' ) }
13068 }
13169}
13270
13371pub fn (o OS) str () string {
134- match o {
135- ._auto { return 'RESERVED: AUTO' }
136- .ios { return 'iOS' }
137- .macos { return 'MacOS' }
138- .linux { return 'Linux' }
139- .windows { return 'Windows' }
140- .freebsd { return 'FreeBSD' }
141- .openbsd { return 'OpenBSD' }
142- .netbsd { return 'NetBSD' }
143- .dragonfly { return 'Dragonfly' }
144- .js_node { return 'NodeJS' }
145- .js_freestanding { return 'JavaScript' }
146- .js_browser { return 'JavaScript(Browser)' }
147- .android { return 'Android' }
148- .termux { return 'Termux' }
149- .solaris { return 'Solaris' }
150- .qnx { return 'QNX' }
151- .serenity { return 'SerenityOS' }
152- .plan9 { return 'Plan9' }
153- .vinix { return 'Vinix' }
154- .haiku { return 'Haiku' }
155- .wasm32 { return 'WebAssembly' }
156- .wasm32_ emscripten { return 'WebAssembly(Emscripten)' }
157- .wasm32_ wasi { return 'WebAssembly(WASI)' }
158- .browser { return 'browser' }
159- .wasi { return 'wasi' }
160- .raw { return 'Raw' }
161- .all { return 'all' }
72+ return match o {
73+ ._auto { 'RESERVED: AUTO' }
74+ .ios { 'iOS' }
75+ .macos { 'MacOS' }
76+ .linux { 'Linux' }
77+ .windows { 'Windows' }
78+ .freebsd { 'FreeBSD' }
79+ .openbsd { 'OpenBSD' }
80+ .netbsd { 'NetBSD' }
81+ .dragonfly { 'Dragonfly' }
82+ .js_node { 'NodeJS' }
83+ .js_freestanding { 'JavaScript' }
84+ .js_browser { 'JavaScript(Browser)' }
85+ .android { 'Android' }
86+ .termux { 'Termux' }
87+ .solaris { 'Solaris' }
88+ .qnx { 'QNX' }
89+ .serenity { 'SerenityOS' }
90+ .plan9 { 'Plan9' }
91+ .vinix { 'Vinix' }
92+ .haiku { 'Haiku' }
93+ .wasm32 { 'WebAssembly' }
94+ .wasm32_ emscripten { 'WebAssembly(Emscripten)' }
95+ .wasm32_ wasi { 'WebAssembly(WASI)' }
96+ .browser { 'browser' }
97+ .wasi { 'wasi' }
98+ .raw { 'Raw' }
99+ .all { 'all' }
162100 }
163101}
164102
165103pub fn get_host_os () OS {
166104 if os.getenv ('TERMUX_VERSION' ) != '' {
167105 return .termux
168106 }
169- $if android {
170- return .android
107+ return $if emscripten ? {
108+ .wasm32_ emscripten
109+ // TODO: make this work:
110+ // $else $if wasm32_emscripten {
111+ // .wasm32_emscripten
112+ } $else $if linux {
113+ .linux
114+ } $else $if ios {
115+ .ios
116+ } $else $if macos {
117+ .macos
118+ } $else $if windows {
119+ .windows
120+ } $else $if freebsd {
121+ .freebsd
122+ } $else $if openbsd {
123+ .openbsd
124+ } $else $if netbsd {
125+ .netbsd
126+ } $else $if dragonfly {
127+ .dragonfly
128+ } $else $if js_node {
129+ .js_node
130+ } $else $if js_freestanding {
131+ .js_freestanding
132+ } $else $if js_browser {
133+ .js_browser
134+ } $else $if js {
135+ .js_node
136+ } $else $if serenity {
137+ .serenity
138+ // } $else $if plan9 {
139+ // .plan9
140+ } $else $if android {
141+ .android
142+ } $else $if solaris {
143+ .solaris
144+ } $else $if vinix {
145+ .vinix
146+ } $else $if haiku {
147+ .haiku
148+ } $else {
149+ panic ('unknown host OS' )
150+ return ._auto
171151 }
172- $if emscripten ? {
173- return .wasm32_ emscripten
174- }
175- // TODO: make this work:
176- // $if wasm32_emscripten {
177- // return .wasm32_emscripten
178- // }
179- $if linux {
180- return .linux
181- }
182- $if ios {
183- return .ios
184- }
185- $if macos {
186- return .macos
187- }
188- $if windows {
189- return .windows
190- }
191- $if freebsd {
192- return .freebsd
193- }
194- $if openbsd {
195- return .openbsd
196- }
197- $if netbsd {
198- return .netbsd
199- }
200- $if dragonfly {
201- return .dragonfly
202- }
203- $if serenity {
204- return .serenity
205- }
206- // $if plan9 {
207- // return .plan9
208- // }
209- $if vinix {
210- return .vinix
211- }
212- $if solaris {
213- return .solaris
214- }
215- $if haiku {
216- return .haiku
217- }
218- $if js_node {
219- return .js_node
220- }
221- $if js_freestanding {
222- return .js_freestanding
223- }
224- $if js_browser {
225- return .js_browser
226- }
227- $if js {
228- return .js_node
229- }
230- panic ('unknown host OS' )
231- return ._auto
232152}
0 commit comments