Use a meson option to crossbuild for Windows

Meson decided to crossbuild for Windows as soon as
meson.is_cross_build() returned true. This made non-Windows crossbuilds
fail.

Instead, add an explicit option "crossbuild_windows".

Fixes <https://github.com/Genymobile/scrcpy/issues/165>.
This commit is contained in:
Romain Vimont 2018-06-05 20:43:47 +02:00
parent 27a9bd3424
commit f705a73149
3 changed files with 6 additions and 1 deletions

View file

@ -55,6 +55,7 @@ build-win32: prepare-deps-win32
meson "$(WIN32_BUILD_DIR)" \ meson "$(WIN32_BUILD_DIR)" \
--cross-file cross_win32.txt \ --cross-file cross_win32.txt \
--buildtype release --strip -Db_lto=true \ --buildtype release --strip -Db_lto=true \
-Dcrossbuild_windows=true \
-Dbuild_server=false \ -Dbuild_server=false \
-Doverride_server_path=scrcpy-server.jar ) -Doverride_server_path=scrcpy-server.jar )
ninja -C "$(WIN32_BUILD_DIR)" ninja -C "$(WIN32_BUILD_DIR)"
@ -64,6 +65,7 @@ build-win32-noconsole: prepare-deps-win32
meson "$(WIN32_NOCONSOLE_BUILD_DIR)" \ meson "$(WIN32_NOCONSOLE_BUILD_DIR)" \
--cross-file cross_win32.txt \ --cross-file cross_win32.txt \
--buildtype release --strip -Db_lto=true \ --buildtype release --strip -Db_lto=true \
-Dcrossbuild_windows=true \
-Dbuild_server=false \ -Dbuild_server=false \
-Dwindows_noconsole=true \ -Dwindows_noconsole=true \
-Doverride_server_path=scrcpy-server.jar ) -Doverride_server_path=scrcpy-server.jar )
@ -77,6 +79,7 @@ build-win64: prepare-deps-win64
meson "$(WIN64_BUILD_DIR)" \ meson "$(WIN64_BUILD_DIR)" \
--cross-file cross_win64.txt \ --cross-file cross_win64.txt \
--buildtype release --strip -Db_lto=true \ --buildtype release --strip -Db_lto=true \
-Dcrossbuild_windows=true \
-Dbuild_server=false \ -Dbuild_server=false \
-Doverride_server_path=scrcpy-server.jar ) -Doverride_server_path=scrcpy-server.jar )
ninja -C "$(WIN64_BUILD_DIR)" ninja -C "$(WIN64_BUILD_DIR)"
@ -86,6 +89,7 @@ build-win64-noconsole: prepare-deps-win64
meson "$(WIN64_NOCONSOLE_BUILD_DIR)" \ meson "$(WIN64_NOCONSOLE_BUILD_DIR)" \
--cross-file cross_win64.txt \ --cross-file cross_win64.txt \
--buildtype release --strip -Db_lto=true \ --buildtype release --strip -Db_lto=true \
-Dcrossbuild_windows=true \
-Dbuild_server=false \ -Dbuild_server=false \
-Dwindows_noconsole=true \ -Dwindows_noconsole=true \
-Doverride_server_path=scrcpy-server.jar ) -Doverride_server_path=scrcpy-server.jar )

View file

@ -19,7 +19,7 @@ src = [
'src/tinyxpm.c', 'src/tinyxpm.c',
] ]
if not meson.is_cross_build() if not get_option('crossbuild_windows')
# native build # native build
dependencies = [ dependencies = [

View file

@ -1,5 +1,6 @@
option('build_app', type: 'boolean', value: true, description: 'Build the client') option('build_app', type: 'boolean', value: true, description: 'Build the client')
option('build_server', type: 'boolean', value: true, description: 'Build the server') option('build_server', type: 'boolean', value: true, description: 'Build the server')
option('crossbuild_windows', type: 'boolean', value: false, description: 'Build for Windows from Linux')
option('windows_noconsole', type: 'boolean', value: false, description: 'Disable console on Windows (pass -mwindows flag)') option('windows_noconsole', type: 'boolean', value: false, description: 'Disable console on Windows (pass -mwindows flag)')
option('prebuilt_server', type: 'string', description: 'Path of the prebuilt server') option('prebuilt_server', type: 'string', description: 'Path of the prebuilt server')
option('override_server_path', type: 'string', description: 'Hardcoded path to find the server at runtime') option('override_server_path', type: 'string', description: 'Hardcoded path to find the server at runtime')