You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

165 lines
3.4 KiB

8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
  1. #!/bin/bash -x
  2. # Inspired by https://github.com/google/fruit
  3. set -e
  4. # Helper for travis folding
  5. travis_fold() {
  6. local action=$1
  7. local name=$2
  8. echo -en "travis_fold:${action}:${name}\r"
  9. }
  10. # Helper for distinguishing between different runs
  11. run() {
  12. case "$1" in
  13. BuildDep)
  14. # CMake
  15. travis_fold start cmake
  16. rm -rf build
  17. mkdir build
  18. cd build
  19. cmake .. "${CMAKE_ARGS[@]}"
  20. echo
  21. echo "Content of CMakeFiles/CMakeError.log:"
  22. if [ -f "CMakeFiles/CMakeError.log" ]
  23. then
  24. cat CMakeFiles/CMakeError.log
  25. fi
  26. echo
  27. travis_fold end cmake
  28. # Make resources
  29. travis_fold start make_dep
  30. VERBOSE=1 make resources -j$N_JOBS
  31. VERBOSE=1 make test-resources -j$N_JOBS
  32. VERBOSE=1 make l3pp_ext -j$N_JOBS
  33. travis_fold end make_dep
  34. ;;
  35. BuildLib)
  36. # Make libstorm
  37. travis_fold start make_lib
  38. cd build
  39. VERBOSE=1 make storm -j$N_JOBS
  40. travis_fold end make_lib
  41. ;;
  42. BuildAll)
  43. # Make all
  44. travis_fold start make_all
  45. cd build
  46. VERBOSE=1 make -j$N_JOBS
  47. travis_fold end make_all
  48. ;;
  49. TestAll)
  50. # Test all
  51. travis_fold start test_all
  52. cd build
  53. ctest test --output-on-failure
  54. travis_fold end test_all
  55. ;;
  56. *)
  57. echo "Unrecognized value of run: $1"
  58. exit 1
  59. esac
  60. }
  61. # This only exists in OS X, but it doesn't cause issues in Linux (the dir doesn't exist, so it's
  62. # ignored).
  63. export PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"
  64. case $COMPILER in
  65. gcc-4.8)
  66. export CC=gcc-4.8
  67. export CXX=g++-4.8
  68. ;;
  69. gcc-4.9)
  70. export CC=gcc-4.9
  71. export CXX=g++-4.9
  72. ;;
  73. gcc-5)
  74. export CC=gcc-5
  75. export CXX=g++-5
  76. ;;
  77. gcc-6)
  78. export CC=gcc-6
  79. export CXX=g++-6
  80. ;;
  81. gcc-default)
  82. export CC=gcc
  83. export CXX=g++
  84. ;;
  85. clang-3.5)
  86. export CC=clang-3.5
  87. export CXX=clang++-3.5
  88. ;;
  89. clang-3.6)
  90. export CC=clang-3.6
  91. export CXX=clang++-3.6
  92. ;;
  93. clang-3.7)
  94. export CC=clang-3.7
  95. export CXX=clang++-3.7
  96. ;;
  97. clang-3.8)
  98. export CC=clang-3.8
  99. export CXX=clang++-3.8
  100. ;;
  101. clang-3.9)
  102. export CC=clang-3.9
  103. export CXX=clang++-3.9
  104. ;;
  105. clang-4.0)
  106. case "$OS" in
  107. linux)
  108. export CC=clang-4.0
  109. export CXX=clang++-4.0
  110. ;;
  111. osx)
  112. export CC=/usr/local/opt/llvm/bin/clang-4.0
  113. export CXX=/usr/local/opt/llvm/bin/clang++
  114. ;;
  115. *) echo "Error: unexpected OS: $OS"; exit 1 ;;
  116. esac
  117. ;;
  118. clang-default)
  119. export CC=clang
  120. export CXX=clang++
  121. ;;
  122. *)
  123. echo "Unrecognized value of COMPILER: $COMPILER"
  124. exit 1
  125. esac
  126. # Build
  127. echo CXX version: $($CXX --version)
  128. echo C++ Standard library location: $(echo '#include <vector>' | $CXX -x c++ -E - | grep 'vector\"' | awk '{print $3}' | sed 's@/vector@@;s@\"@@g' | head -n 1)
  129. echo Normalized C++ Standard library location: $(readlink -f $(echo '#include <vector>' | $CXX -x c++ -E - | grep 'vector\"' | awk '{print $3}' | sed 's@/vector@@;s@\"@@g' | head -n 1))
  130. case "$1" in
  131. DefaultDebug) CMAKE_ARGS=(-DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="$STLARG") ;;
  132. DefaultRelease) CMAKE_ARGS=(-DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="$STLARG") ;;
  133. *) echo "Error: you need to specify one of the supported postsubmit modes (see postsubmit.sh)."; exit 1 ;;
  134. esac
  135. # Restore timestamps of files
  136. travis_fold start mtime
  137. ruby travis/mtime_cache/mtime_cache.rb -g travis/mtime_cache/globs.txt -c travis/mtime_cache/cache.json
  138. travis_fold end mtime
  139. run "$2"