Artifact ae0ce985989151d4e1fe1e545c4839c15dd764a98ce3c547d718c9319e923082:
- File
config/fish/functions/cross.fish
— part of check-in
[7666b7ca75]
at
2020-02-16 13:32:43
on branch trunk
— Add cross, to set up cross-compilation environment
This matches a collection of functions I had in zsh locally, but merges
them all into a single command. (user: js size: 3115)
function cross --description 'Set up cross-compilation environment' if test (count $argv) = 0 echo 'Usage: cross platform [architecture1] [architecture2]' return 1 end switch $argv[1] case amiga if test (count $argv) != 2 echo 'Usage: cross amiga m68k|ppc' return 1 end switch $argv[2] case m68k if test -z $amiga_gcc_path echo 'Please set amiga_gcc_path!' return 1 end set PATH $amiga_gcc_path/bin $PATH set -g cross_host m68k-amigaos case ppc if test -z $adtools_path echo 'Please set adtools_path!' return 1 end set PATH $adtools_path/bin $PATH set -g cross_host ppc-amigaos end if test (count $argv) != 2 -o -z $cross_host echo 'Usage: cross amiga m68k|ppc' return 1 end case ios iossim if ! type -q xcrun echo 'Can only cross-compile for iOS on a Mac with Xcode!' return 1 end set -l sdk_type set -l default_archs switch $argv[1] case ios set sdk_type iphoneos set default_archs arm64 case iossim set sdk_type iphonesimulator set default_archs x86_64 end set -l sdk (xcrun --show-sdk-path --sdk $sdk_type) set -l archs $argv[2..-1] if test (count $archs) = 0 set archs $default_archs end set -gx CC clang -isysroot $sdk set -gx CPP clang -E -isysroot $sdk set -gx CXX clang++ -isysroot $sdk set -gx CXXPP clang++ -E -isysroot $sdk for arch in $archs set -a CC -arch $arch set -a CXX -arch $arch end set -a CPP -arch $archs[1] set -a CXXPP -arch $archs[1] set -gx OBJC $CC set -gx OBJCPP $CPP set -gx OBJCXX $CXX set -gx OBJCPPXX $CXXPP set -gx IPHONEOS_DEPLOYMENT_TARGET 10.0 set -g cross_host $archs[1]-apple-darwin case morphos set -l prefix (pkg_info -qp ppc-morphos-gcc-9 | awk '/^@cwd/ { print $2; exit }') if test -z $prefix echo 'Please install ppc-morphos-gcc-9 from pkgsrc!' return 1 end set PATH $prefix/gg/bin $PATH set -gx CC ppc-morphos-gcc-9 set -gx CXX ppc-morphos-g++-9 set -gx OBJC ppc-morphos-gcc-9 set -gx OBJCXX ppc-morphos-g++-9 set -g cross_host ppc-morphos case '*' echo "Unknown target: $argv[1]" return 1 end end