@@ -94,12 +94,38 @@ if plat == 'win' and host_machine.cpu_family().startswith('x86')
94
94
# yes, this is a bit ugly and hardcoded but it is what it is
95
95
# TODO (middle-term goal) - Should migrate away from this
96
96
# consider meson wraps? Hopefully can also get the same build path as below
97
+ sdl_ver = (sdl_api == 3 ) ? ' 3.2.10' : ' 2.32.8'
98
+ sdl_image_ver = (sdl_api == 3 ) ? ' 3.2.4' : ' 2.8.8'
99
+ sdl_mixer_ver = ' 2.8.1'
100
+ sdl_ttf_ver = (sdl_api == 3 ) ? ' 3.2.2' : ' 2.24.0'
101
+
97
102
arch_suffix = ' x' + host_machine .cpu_family().substring(- 2 )
98
103
base_dir = meson .current_source_dir()
99
104
prebuilt_dir = base_dir / ' prebuilt-' + arch_suffix
100
105
101
- # download prebuilts (uses legacy builconfig code)
102
- if not fs.is_dir(prebuilt_dir)
106
+ sdl_dir = prebuilt_dir / ' @0@-@1@' .format(sdl, sdl_ver)
107
+ sdl_image_dir = prebuilt_dir / ' @0@-@1@' .format(sdl_image, sdl_image_ver)
108
+ sdl_mixer_dir = prebuilt_dir / ' @0@-@1@' .format(sdl_mixer, sdl_mixer_ver)
109
+ sdl_ttf_dir = prebuilt_dir / ' @0@-@1@' .format(sdl_ttf, sdl_ttf_ver)
110
+ common_lib_dir = prebuilt_dir / ' lib'
111
+
112
+ # download prebuilts (uses legacy buildconfig code)
113
+ required_dirs = [
114
+ prebuilt_dir,
115
+ sdl_dir,
116
+ sdl_image_dir,
117
+ sdl_mixer_dir,
118
+ sdl_ttf_dir,
119
+ common_lib_dir,
120
+ ]
121
+ any_missing = false
122
+ foreach d : required_dirs
123
+ if not fs.is_dir(d)
124
+ any_missing = true
125
+ break
126
+ endif
127
+ endforeach
128
+ if any_missing
103
129
run_command (
104
130
[
105
131
find_program (' python3' , ' python' ),
@@ -109,23 +135,16 @@ if plat == 'win' and host_machine.cpu_family().startswith('x86')
109
135
)
110
136
endif
111
137
112
- sdl_ver = (sdl_api == 3 ) ? ' 3.2.10' : ' 2.32.8'
113
- sdl_image_ver = (sdl_api == 3 ) ? ' 3.2.4' : ' 2.8.8'
114
- sdl_mixer_ver = ' 2.8.1'
115
- sdl_ttf_ver = (sdl_api == 3 ) ? ' 3.2.2' : ' 2.24.0'
116
-
117
138
dlls = []
118
139
119
140
# SDL
120
- sdl_dir = prebuilt_dir / ' @0@-@1@' .format(sdl, sdl_ver)
121
141
sdl_lib_dir = sdl_dir / ' lib' / arch_suffix
122
142
pg_inc_dirs += fs.relative_to(sdl_dir / ' include' , base_dir)
123
143
pg_lib_dirs += sdl_lib_dir
124
144
dlls += sdl_lib_dir / ' @0@.dll' .format(sdl)
125
145
126
146
# SDL_image
127
147
if get_option (' image' ).enabled()
128
- sdl_image_dir = prebuilt_dir / ' @0@-@1@' .format(sdl_image, sdl_image_ver)
129
148
sdl_image_lib_dir = sdl_image_dir / ' lib' / arch_suffix
130
149
pg_inc_dirs += fs.relative_to(sdl_image_dir / ' include' , base_dir)
131
150
pg_lib_dirs += sdl_image_lib_dir
@@ -147,7 +166,6 @@ if plat == 'win' and host_machine.cpu_family().startswith('x86')
147
166
148
167
# SDL_mixer
149
168
if get_option (' mixer' ).enabled()
150
- sdl_mixer_dir = prebuilt_dir / ' @0@-@1@' .format(sdl_mixer, sdl_mixer_ver)
151
169
sdl_mixer_lib_dir = sdl_mixer_dir / ' lib' / arch_suffix
152
170
pg_inc_dirs += fs.relative_to(sdl_mixer_dir / ' include' , base_dir)
153
171
pg_lib_dirs += sdl_mixer_lib_dir
@@ -163,7 +181,6 @@ if plat == 'win' and host_machine.cpu_family().startswith('x86')
163
181
164
182
# SDL_ttf
165
183
if get_option (' font' ).enabled()
166
- sdl_ttf_dir = prebuilt_dir / ' @0@-@1@' .format(sdl_ttf, sdl_ttf_ver)
167
184
sdl_ttf_lib_dir = sdl_ttf_dir / ' lib' / arch_suffix
168
185
pg_inc_dirs += fs.relative_to(sdl_ttf_dir / ' include' , base_dir)
169
186
pg_lib_dirs += sdl_ttf_lib_dir
@@ -172,7 +189,6 @@ if plat == 'win' and host_machine.cpu_family().startswith('x86')
172
189
173
190
# freetype, portmidi and porttime
174
191
if get_option (' freetype' ).enabled() and get_option (' midi' ).enabled()
175
- common_lib_dir = prebuilt_dir / ' lib'
176
192
pg_inc_dirs += fs.relative_to(prebuilt_dir / ' include' , base_dir)
177
193
pg_lib_dirs += common_lib_dir
178
194
dlls += [common_lib_dir / ' freetype.dll' , common_lib_dir / ' portmidi.dll' ]
0 commit comments