| #!/usr/bin/env bash | |
| # Script to do compilation-only testing. | |
| # Invocation | |
| # check_compile SRC_DIR BUILD_DIR | |
| # 1: variables | |
| # | |
| SRC_DIR=$1 | |
| BUILD_DIR=$2 | |
| # Now that we've successfully translated the numerical option into | |
| # a symbolic one, we can safely ignore it. | |
| shift | |
| # This has been true all along. Found out about it the hard way... | |
| case $BASH_VERSION in | |
| 1*) | |
| echo 'You need bash 2.x to run check_compile. Exiting.'; | |
| exit 1 ;; | |
| *) ;; | |
| esac | |
| flags_script=$BUILD_DIR/scripts/testsuite_flags | |
| INCLUDES=`$flags_script --build-includes` | |
| PCH_FLAGS=`$flags_script --cxxpchflags` | |
| FLAGS=`$flags_script --cxxflags` | |
| TEST_FLAGS="-S" | |
| COMPILER=`$flags_script --build-cxx` | |
| CXX="$COMPILER $INCLUDES $PCH_FLAGS $FLAGS -Wfatal-errors $TEST_FLAGS" | |
| echo "compile line is:" | |
| echo $CXX | |
| echo "" | |
| TESTS_FILE="testsuite_files" | |
| #mkdir binaries | |
| UNIQUE_ID=0 | |
| for NAME in `cat $TESTS_FILE` | |
| do | |
| if $RUN; then | |
| echo $NAME | |
| OUTPUT_NAME=$UNIQUE_ID | |
| $CXX $SRC_DIR/testsuite/$NAME -o $OUTPUT_NAME | |
| if [ -f $OUTPUT_NAME ]; then | |
| # mv $OUTPUT_NAME binaries | |
| rm $OUTPUT_NAME | |
| fi | |
| let UNIQUE_ID+=1 | |
| fi | |
| done | |
| exit 0 |