93 lines
2.0 KiB
Fish
Executable File
93 lines
2.0 KiB
Fish
Executable File
#!/usr/bin/env fish
|
|
|
|
#basename (git rev-parse --show-toplevel)
|
|
|
|
function print_help_and_exit
|
|
echo "\
|
|
Print paths to core parts of the repository
|
|
Usage: sparkd_path.sh SUBCOMMAND
|
|
|
|
Subcommands:
|
|
build Print build path
|
|
repo-root Print repo root path
|
|
|
|
"
|
|
exit $argv[1]
|
|
end
|
|
|
|
function print_build_help_and_exit
|
|
echo "\
|
|
Print build path
|
|
Usage: sparkd_path.sh build [OPTIONS] compiler build-type
|
|
|
|
Positionals:
|
|
gcc Print gcc build path
|
|
clang Print clang build path
|
|
debug Print debug build path
|
|
release Print release build path
|
|
|
|
Options:
|
|
--compiler <clang|gcc> Specify the compiler
|
|
--type <debug|release> Specify the type of build
|
|
-h,--help Print this help message and exit
|
|
|
|
"
|
|
exit $argv[1]
|
|
end
|
|
|
|
function print_repo_root
|
|
git rev-parse --show-toplevel
|
|
end
|
|
|
|
function run_repo_root
|
|
print_repo_root
|
|
end
|
|
|
|
function run_build
|
|
set compiler "gcc"
|
|
set build_type "release"
|
|
set i 1
|
|
while test $i -lt (count $argv)
|
|
switch $argv[$i]
|
|
case '--compiler'
|
|
set i (math "$i + 1")
|
|
set compiler $argv[$i]
|
|
case 'clang'
|
|
set compiler 'clang'
|
|
case 'gcc'
|
|
set compiler 'gcc'
|
|
case '--type'
|
|
set i (math "$i + 1")
|
|
set build_type $argv[$i]
|
|
case 'release'
|
|
set build_type 'release'
|
|
case 'debug'
|
|
set build_type 'debug'
|
|
'-h'
|
|
print_build_help_and_exit 0
|
|
'--help'
|
|
print_build_help_and_exit 0
|
|
'*'
|
|
print_build_help_and_exit 1
|
|
end
|
|
set i (math "$i + 1")
|
|
end
|
|
if test \( $compiler = "clang" \) -o \( $compiler = "gcc" \)
|
|
set comp_path $compiler
|
|
else
|
|
print_build_help_and_exit 1
|
|
end
|
|
set src_root (print_repo_root)
|
|
set build_root (readlink -f "$src_root""/build")
|
|
set build_dest $build_root"/"$compiler"/"$build_type
|
|
echo $build_dest
|
|
end
|
|
|
|
if test "$argv[1]" = "repo-root"
|
|
print_repo_root $argv[2..-1]
|
|
else if test "$argv[1]" = "build"
|
|
run_build $argv[2..-1]
|
|
else
|
|
print_help_and_exit 1
|
|
end
|