Add cross-compile script
That will simply generate the win64 artifacts for those of us that run DF under Proton on Steam for Linux.develop
							parent
							
								
									740abba621
								
							
						
					
					
						commit
						aaaf2d9f22
					
				@ -0,0 +1,39 @@
 | 
			
		||||
#!/usr/bin/env sh
 | 
			
		||||
 | 
			
		||||
# Number of jobs == core count
 | 
			
		||||
jobs=$(grep -c ^processor /proc/cpuinfo)
 | 
			
		||||
 | 
			
		||||
# Calculate absolute paths for docker to do mounts
 | 
			
		||||
srcdir=$(realpath "$(dirname "$(readlink -f "$0")")"/..)
 | 
			
		||||
 | 
			
		||||
cd "$srcdir"/build
 | 
			
		||||
 | 
			
		||||
mkdir -p win64-cross
 | 
			
		||||
mkdir -p win64-cross/output
 | 
			
		||||
 | 
			
		||||
# Assumes you built a container image called dfhack-build-msvc from
 | 
			
		||||
# https://github.com/BenLubar/build-env/tree/master/msvc, see
 | 
			
		||||
# docs/dev/compile/Compile.rst.
 | 
			
		||||
#
 | 
			
		||||
# NOTE: win64-cross is mounted in /src/build due to the hardcoded `cmake ..` in
 | 
			
		||||
# the Dockerfile
 | 
			
		||||
#
 | 
			
		||||
# TODO: make this work for rootless docker, i.e. remove the sudo for those that
 | 
			
		||||
# don't normally need to use sudo to run docker.
 | 
			
		||||
if ! sudo docker run --rm -it -v "$srcdir":/src -v "$srcdir/build/win64-cross/":/src/build  \
 | 
			
		||||
    --user buildmaster \
 | 
			
		||||
    --name dfhack-win \
 | 
			
		||||
    dfhack-build-msvc bash -c "cd /src/build && dfhack-configure windows 64 Release -DCMAKE_INSTALL_PREFIX=/src/build/output && dfhack-make -j$jobs install" \
 | 
			
		||||
    ; then
 | 
			
		||||
    echo
 | 
			
		||||
    echo "Build failed"
 | 
			
		||||
    exit 1
 | 
			
		||||
else
 | 
			
		||||
    echo
 | 
			
		||||
    echo "Windows artifacts are at win64-cross/output. Copy or symlink them to"
 | 
			
		||||
    echo "your steam DF directory to install dfhack (and optionally delete the"
 | 
			
		||||
    echo "hack/ directory already present)"
 | 
			
		||||
    echo
 | 
			
		||||
    echo "Typically this can be done like this:"
 | 
			
		||||
    echo "  cp -r win64-cross/output/* \"$HOME/.local/share/Steam/steamapps/common/Dwarf Fortress\""
 | 
			
		||||
fi
 | 
			
		||||
		Loading…
	
		Reference in New Issue