build.sh 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #!/bin/bash
  2. debug(){
  3. mkdir -p debug
  4. cd debug
  5. cmake .. -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug -DFL_BACKTRACE=ON -DFL_USE_FLOAT=OFF -DFL_CPP11=OFF
  6. make
  7. cd ..
  8. }
  9. release(){
  10. mkdir -p release
  11. cd release
  12. cmake .. -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DFL_BACKTRACE=ON -DFL_USE_FLOAT=OFF -DFL_CPP11=OFF
  13. make
  14. cd ..
  15. }
  16. all(){
  17. debug
  18. release
  19. }
  20. clean(){
  21. rm -rf release debug
  22. }
  23. usage(){
  24. printf 'Usage:\t[bash] ./build.sh [options]\n'
  25. printf "where\t[options] can be any of the following:\n"
  26. printf "\tall\t\t builds fuzzylite in debug and release mode (default)\n"
  27. printf "\tdebug\t\t builds fuzzylite in debug mode\n"
  28. printf "\trelease\t\t builds fuzzylite in release mode\n"
  29. printf "\tclean\t\t erases previous builds\n"
  30. printf "\thelp\t\t shows this information\n"
  31. printf "\n"
  32. }
  33. #############################
  34. OPTIONS=( "all" "debug" "release" "clean" "help")
  35. BUILD=( )
  36. for arg in "$@"
  37. do
  38. if [[ "$arg" == "help" ]]; then usage && exit 0; fi
  39. if [[ "$arg" == "all" || "$arg" == "debug" || "$arg" == "release" || "$arg" == "clean" ]];
  40. then BUILD+=( $arg ); else echo "Invalid option: $arg" && usage && exit 2;
  41. fi
  42. done
  43. if [ ${#BUILD[@]} -eq 0 ]; then BUILD+=( "all" ); fi
  44. echo "Building schedule: ${BUILD[@]}"
  45. echo "Starting in 3 seconds..."
  46. sleep 3
  47. for option in "${BUILD[@]}"
  48. do
  49. printf "\n\n"
  50. printf "******************************\n"
  51. printf "STARTING: $option\n"
  52. eval ${option}
  53. printf "\nFINISHED: $option\n"
  54. printf "******************************\n\n"
  55. done