aboutsummaryrefslogtreecommitdiff
path: root/.ci/common/build.sh
diff options
context:
space:
mode:
Diffstat (limited to '.ci/common/build.sh')
-rw-r--r--.ci/common/build.sh79
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}"
+}