mirror of
https://github.com/nim-lang/Nim.git
synced 2026-04-21 06:45:27 +00:00
@@ -21,10 +21,23 @@ do
|
||||
optosname=$2
|
||||
shift 2
|
||||
;;
|
||||
--parallel)
|
||||
parallel=$2
|
||||
shift 2
|
||||
;;
|
||||
--extraBuildArgs)
|
||||
extraBuildArgs=" $2"
|
||||
shift 2
|
||||
;;
|
||||
-h | --help)
|
||||
echo "Options:"
|
||||
echo " --os <OS>"
|
||||
echo " --cpu <CPU architecture>"
|
||||
echo " --osname <name> Additional OS specification (used for Android)"
|
||||
echo " --extraBuildArgs <args> Additional arguments passed to the compiler"
|
||||
echo " --parallel <number> Multiprocess build. Requires GNU parallel"
|
||||
exit 0
|
||||
;;
|
||||
--) # End of all options
|
||||
shift
|
||||
break;
|
||||
@@ -39,7 +52,15 @@ do
|
||||
esac
|
||||
done
|
||||
|
||||
parallel="${parallel:-0}"
|
||||
CC="${CC:-gcc}"
|
||||
if [ "$parallel" -gt 1 ]; then
|
||||
if ! command -v sem > /dev/null; then
|
||||
echo "Error: GNU parallel is required to use --parallel"
|
||||
exit 1
|
||||
fi
|
||||
CC="sem -j $parallel --id $$ ${CC}"
|
||||
fi
|
||||
COMP_FLAGS="${CPPFLAGS:-} ${CFLAGS:-} ?{c.ccompiler.flags}$extraBuildArgs"
|
||||
LINK_FLAGS="${LDFLAGS:-} ?{c.linker.flags}"
|
||||
PS4=""
|
||||
@@ -222,6 +243,9 @@ case $myos in
|
||||
$CC $COMP_FLAGS -Ic_code -c ?{f} -o ?{changeFileExt(f, "o")}
|
||||
# add(linkCmd, " \\\n" & changeFileExt(f, "o"))
|
||||
# end for
|
||||
if [ "$parallel" -gt 0 ]; then
|
||||
sem --wait --id $$
|
||||
fi
|
||||
$CC -o ?{"$binDir/" & toLowerAscii(c.name)} ?linkCmd $LINK_FLAGS
|
||||
;;
|
||||
# end for
|
||||
|
||||
Reference in New Issue
Block a user