diff options
Diffstat (limited to '.ci/common/build.sh')
-rw-r--r-- | .ci/common/build.sh | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/.ci/common/build.sh b/.ci/common/build.sh new file mode 100644 index 0000000000..0140be3637 --- /dev/null +++ b/.ci/common/build.sh @@ -0,0 +1,79 @@ +build_deps() { + if [[ "${BUILD_32BIT}" == ON ]]; then + if [[ "${BUILD_MINGW}" == ON ]]; then + >&2 echo "32-bit MinGW builds not supported." + exit 1 + fi + + DEPS_CMAKE_FLAGS="${DEPS_CMAKE_FLAGS} ${CMAKE_FLAGS_32BIT}" + fi + if [[ "${BUILD_MINGW}" == ON ]]; then + DEPS_CMAKE_FLAGS="${DEPS_CMAKE_FLAGS} ${CMAKE_FLAGS_MINGW}" + fi + + rm -rf "${DEPS_INSTALL_PREFIX}" + + # If there is a valid cache and we're not forced to recompile, + # use cached third-party dependencies. + if [[ -f "${CACHE_MARKER}" ]] && [[ "${BUILD_NVIM_DEPS}" != true ]]; then + echo "Using third-party dependencies from Travis's cache (last updated: $(stat -c '%y' "${CACHE_MARKER}"))." + + mkdir -p "$(dirname "${DEPS_INSTALL_PREFIX}")" + ln -Ts "${HOME}/.cache/nvim-deps" "${DEPS_INSTALL_PREFIX}" + return + fi + + mkdir -p "${DEPS_BUILD_DIR}" + cd "${DEPS_BUILD_DIR}" + echo "Configuring with '${DEPS_CMAKE_FLAGS}'." + cmake ${DEPS_CMAKE_FLAGS} "${TRAVIS_BUILD_DIR}/third-party/" + + if ! ${MAKE_CMD}; then + exit 1 + fi + + cd "${TRAVIS_BUILD_DIR}" +} + +build_nvim() { + if [[ -n "${CLANG_SANITIZER}" ]]; then + CMAKE_FLAGS="${CMAKE_FLAGS} -DCLANG_${CLANG_SANITIZER}=ON" + fi + if [[ "${BUILD_32BIT}" == ON ]]; then + if [[ "${BUILD_MINGW}" == ON ]]; then + >&2 echo "32-bit MinGW builds not supported." + exit 1 + fi + + CMAKE_FLAGS="${CMAKE_FLAGS} ${CMAKE_FLAGS_32BIT}" + fi + if [[ "${BUILD_MINGW}" == ON ]]; then + CMAKE_FLAGS="${CMAKE_FLAGS} ${CMAKE_FLAGS_MINGW}" + fi + + mkdir -p "${BUILD_DIR}" + cd "${BUILD_DIR}" + echo "Configuring with '${CMAKE_FLAGS}'." + cmake ${CMAKE_FLAGS} "${TRAVIS_BUILD_DIR}" + + echo "Building nvim." + if ! ${MAKE_CMD} nvim; then + exit 1 + fi + + echo "Building libnvim." + if ! ${MAKE_CMD} libnvim; then + exit 1 + fi + + echo "Building nvim-test." + if ! ${MAKE_CMD} nvim-test; then + exit 1 + fi + + # Invoke nvim to trigger *San early. + bin/nvim --version + bin/nvim -u NONE -e -c ':qall' + + cd "${TRAVIS_BUILD_DIR}" +} |