diff options
author | ZyX <kp-pav@yandex.ru> | 2017-12-03 16:49:30 +0300 |
---|---|---|
committer | ZyX <kp-pav@yandex.ru> | 2017-12-03 16:49:30 +0300 |
commit | c49e22d3964d6c7ae1c24e8ad01b5fec4ca40b57 (patch) | |
tree | b7e59c416d1435725c65f8952b6e55c70544d97e /ci/common/build.sh | |
parent | 62108c3b0be46936c83f6d4c98b44ceb5e6f77fd (diff) | |
parent | 27a577586eace687c47e7398845178208cae524a (diff) | |
download | rneovim-c49e22d3964d6c7ae1c24e8ad01b5fec4ca40b57.tar.gz rneovim-c49e22d3964d6c7ae1c24e8ad01b5fec4ca40b57.tar.bz2 rneovim-c49e22d3964d6c7ae1c24e8ad01b5fec4ca40b57.zip |
Merge branch 'master' into s-dash-stdin
Diffstat (limited to 'ci/common/build.sh')
-rw-r--r-- | ci/common/build.sh | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/ci/common/build.sh b/ci/common/build.sh new file mode 100644 index 0000000000..f398a1a1cc --- /dev/null +++ b/ci/common/build.sh @@ -0,0 +1,89 @@ +top_make() { + ${MAKE_CMD} "$@" +} + +build_make() { + top_make -C "${BUILD_DIR}" "$@" +} + +build_deps() { + if test "${BUILD_32BIT}" = ON ; then + DEPS_CMAKE_FLAGS="${DEPS_CMAKE_FLAGS} ${CMAKE_FLAGS_32BIT}" + fi + if test "${FUNCTIONALTEST}" = "functionaltest-lua" \ + || test "${CLANG_SANITIZER}" = "ASAN_UBSAN" ; then + DEPS_CMAKE_FLAGS="${DEPS_CMAKE_FLAGS} -DUSE_BUNDLED_LUA=ON" + fi + + rm -rf "${DEPS_BUILD_DIR}" + + # If there is a valid cache and we're not forced to recompile, + # use cached third-party dependencies. + if test -f "${CACHE_MARKER}" && test "${BUILD_NVIM_DEPS}" != "true" ; then + local statcmd="stat -c '%y'" + if test "${TRAVIS_OS_NAME}" = osx ; then + statcmd="stat -f '%Sm'" + fi + echo "Using third-party dependencies from Travis's cache (last updated: $(${statcmd} "${CACHE_MARKER}"))." + + mkdir -p "$(dirname "${DEPS_BUILD_DIR}")" + mv "${HOME}/.cache/nvim-deps" "${DEPS_BUILD_DIR}" + else + mkdir -p "${DEPS_BUILD_DIR}" + fi + + # Even if we're using cached dependencies, run CMake and make to + # update CMake configuration and update to newer deps versions. + cd "${DEPS_BUILD_DIR}" + echo "Configuring with '${DEPS_CMAKE_FLAGS}'." + CC= cmake ${DEPS_CMAKE_FLAGS} "${TRAVIS_BUILD_DIR}/third-party/" + + if ! top_make; then + exit 1 + fi + + cd "${TRAVIS_BUILD_DIR}" +} + +prepare_build() { + if test -n "${CLANG_SANITIZER}" ; then + CMAKE_FLAGS="${CMAKE_FLAGS} -DCLANG_${CLANG_SANITIZER}=ON" + fi + if test "${BUILD_32BIT}" = ON ; then + CMAKE_FLAGS="${CMAKE_FLAGS} ${CMAKE_FLAGS_32BIT}" + fi + + mkdir -p "${BUILD_DIR}" + cd "${BUILD_DIR}" + echo "Configuring with '${CMAKE_FLAGS} $@'." + cmake ${CMAKE_FLAGS} "$@" "${TRAVIS_BUILD_DIR}" +} + +build_nvim() { + echo "Building nvim." + if ! top_make nvim ; then + exit 1 + fi + + if test "$CLANG_SANITIZER" != "TSAN" ; then + echo "Building libnvim." + if ! top_make libnvim ; then + exit 1 + fi + + echo "Building nvim-test." + if ! top_make nvim-test ; then + exit 1 + fi + fi + + # Invoke nvim to trigger *San early. + if ! (bin/nvim --version && bin/nvim -u NONE -e -c ':qall') ; then + asan_check "${LOG_DIR}" + exit 1 + fi + asan_check "${LOG_DIR}" + + + cd "${TRAVIS_BUILD_DIR}" +} |