diff options
| -rw-r--r-- | README.adoc | 2 | ||||
| -rw-r--r-- | meson.build | 5 | ||||
| -rwxr-xr-x | msys2-configure.sh (renamed from msys2-cross-configure.sh) | 13 | ||||
| -rwxr-xr-x | msys2-install.sh (renamed from msys2-cross-install.sh) | 7 | 
4 files changed, 22 insertions, 5 deletions
diff --git a/README.adoc b/README.adoc index 0e36c48..a06b97c 100644 --- a/README.adoc +++ b/README.adoc @@ -64,7 +64,7 @@ from a context menu.  Windows  ~~~~~~~  'fiv' can be cross-compiled for Windows, provided that you install a bunch of -dependencies listed at the beginning of 'msys2-cross-configure.sh', +dependencies listed at the beginning of 'msys2-configure.sh',  plus rsvg-convert from librsvg2, and icotool from icoutils.  Beware that the build will take up about a gigabyte of disk space. diff --git a/meson.build b/meson.build index e1d9e5f..50daf3d 100644 --- a/meson.build +++ b/meson.build @@ -326,10 +326,11 @@ if not win32  		meson.add_install_script(updater, skip_if_destdir : dynamic_desktops)  	endif  elif meson.is_cross_build() +	# Note that even compiling /from within MSYS2/ can still be a cross-build.  	msys2_root = meson.get_external_property('msys2_root') -	meson.add_install_script('msys2-cross-install.sh', msys2_root) +	meson.add_install_script('msys2-install.sh', msys2_root) -	# This is the minimum to run targets from msys2-cross-configure.sh builds. +	# This is the minimum to run targets from msys2-configure.sh builds.  	meson.add_devenv({  		'WINEPATH' : msys2_root / 'bin',  		'XDG_DATA_DIRS' : msys2_root / 'share', diff --git a/msys2-cross-configure.sh b/msys2-configure.sh index b2ea2d5..53ccdc5 100755 --- a/msys2-cross-configure.sh +++ b/msys2-configure.sh @@ -1,9 +1,16 @@  #!/bin/sh -e -# msys2-cross-configure.sh: set up an MSYS2-based cross-compiled Meson build. +# msys2-configure.sh: set up an MSYS2-based Meson build targeting x86-64.  # Dependencies: AWK, sed, sha256sum, cURL, bsdtar,  # wine64, Meson, mingw-w64-binutils, mingw-w64-gcc, pkg-config  repository=https://repo.msys2.org/mingw/mingw64/ +# Support running directly from within MSYS2 on Windows. +if [ -n "$MSYSTEM" ] +then +	wine64() { "$@"; } +	awk() { command awk -v RS='\r?\n' "$@"; } +fi +  status() {  	echo "$(tput bold)-- $*$(tput sgr0)"  } @@ -74,6 +81,8 @@ configure() {  setup() {  	status Setting up Meson +	[ -n "$MSYSTEM" ] && wrap=false || wrap=true +  	cat >"$toolchain" <<-EOF  	[binaries]  	c = 'x86_64-w64-mingw32-gcc' @@ -88,7 +97,7 @@ setup() {  	sys_root = '$builddir'  	msys2_root = '$msys2_root'  	pkg_config_libdir = '$msys2_root/share/pkgconfig:$msys2_root/lib/pkgconfig' -	needs_exe_wrapper = true +	needs_exe_wrapper = $wrap  	[host_machine]  	system = 'windows' diff --git a/msys2-cross-install.sh b/msys2-install.sh index 7cbc2cc..abb284f 100755 --- a/msys2-cross-install.sh +++ b/msys2-install.sh @@ -3,6 +3,13 @@ export LC_ALL=C  cd "$MESON_INSTALL_DESTDIR_PREFIX"  msys2_root=$1 +# Support running directly from within MSYS2 on Windows. +if [ -n "$MSYSTEM" ] +then +	wine64() { "$@"; } +	awk() { command awk -v RS='\r?\n' "$@"; } +fi +  # Copy binaries we directly or indirectly depend on.  cp -p "$msys2_root"/bin/*.dll .  cp -p "$msys2_root"/bin/wperl.exe .  | 
