| #!/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 |