macos: just restart the build when it failed
authorThomas Debesse <dev@illwieckz.net>
Sun, 7 Mar 2021 03:35:37 +0000 (04:35 +0100)
committerThomas Debesse <dev@illwieckz.net>
Sun, 7 Mar 2021 09:13:02 +0000 (10:13 +0100)
Sometime linking fails on macOS with this message:

ld: symbol(s) not found for architecture x86_64

and restarting the build process just work.

easy-builder

index d2ff3da6e826d0bba53e7ba32514a895642ee3e5..6d1d971843819e5b957990db64c735464882adf6 100755 (executable)
@@ -92,28 +92,49 @@ case "$(uname -s)" in
                ;;
 esac
 
+task_enter_build_dir () {
+       mkdir -pv "${build_dir}"
+       cd "${build_dir}"
+}
+
+task_fetch_submodules () {
+       "${fetch_submodules_cmd[@]}"
+}
+
+task_configure () {
+       cmake \
+               -G'Unix Makefiles' \
+               -D'CMAKE_INSTALL_PREFIX'="${install_dir}" \
+               -D'CMAKE_BUILD_TYPE'="${build_type}" \
+               "${cmake_user_opts[@]}" \
+               "${project_source_dir}"
+}
+
+task_build_builtins () {
+       cmake \
+               --build "${build_dir}" \
+               -- \
+               -j"${job_count}" \
+               'builtins'
+}
+
+task_build () {
+       cmake \
+               --build "${build_dir}" \
+               -- \
+               -j"${job_count}" \
+               "${install_target}"
+}
+
 set -x
 
-"${fetch_submodules_cmd[@]}"
-
-mkdir -pv "${build_dir}"
-cd "${build_dir}"
-
-cmake \
-       -G'Unix Makefiles' \
-       -D'CMAKE_INSTALL_PREFIX'="${install_dir}" \
-       -D'CMAKE_BUILD_TYPE'="${build_type}" \
-       "${cmake_user_opts[@]}" \
-       "${project_source_dir}"
-
-cmake \
-       --build "${build_dir}" \
-       -- \
-       -j"${job_count}" \
-       'builtins'
-
-cmake \
-       --build "${build_dir}" \
-       -- \
-       -j"${job_count}" \
-       "${install_target}"
+task_enter_build_dir
+
+task_configure
+
+task_build_builtins
+
+# Sometime linking fails on macOS with this message:
+#   ld: symbol(s) not found for architecture x86_64
+# and restarting the build process just work.
+task_build || task_build