| 1234567891011121314151617181920212223242526272829 |
- #!/usr/bin/env bash
- # Source file.
- src="$(printf %q "$1")"
- shift
- # Output file the compiler expects.
- out="$(printf %q "$1")"
- shift
- # Create the file the compiler expects. It will check syntax.
- >"$out"
- cpp='cpp'
- opts=''
- while test "$#" != 0; do
- case "$1" in
- # Extract the option for the path to cpp.
- --cpp) shift; cpp="$(printf %q "$1")" ;;
- # Extract the option for our own output file.
- --out) shift; out="$(printf %q "$1")" ;;
- # Collect the rest of the command line.
- *) opts="$opts $(printf %q "$1")" ;;
- esac
- shift
- done
- # Execute the real preprocessor tool.
- eval "exec $cpp $src $out $opts"
|