X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=easy-builder;h=0f266902b90715ee0a8ad3c03cbabe1c57bd0b6b;hb=5ebff88302017e024f6c8cc0d1b8d518d6c2070a;hp=39857382c5ddad6fd2fe1c07cb0ab99f11cbff55;hpb=fd8bfb3bf10cb0bd8d190380ce0a16c4e5444344;p=xonotic%2Fnetradiant.git diff --git a/easy-builder b/easy-builder index 39857382..0f266902 100755 --- a/easy-builder +++ b/easy-builder @@ -14,6 +14,11 @@ install_dir="${project_source_dir}/install${SUBDIR:+/${SUBDIR}}" install_target='install/strip' build_type='Release' +if [ "$(uname -s)" = 'FreeBSD' ] +then + install_target='install' +fi + _job_count=4 _nproc () { @@ -25,9 +30,13 @@ _nproc () { 'Linux') egrep "^processor" /proc/cpuinfo | wc -l ;; - 'FreeBSD'|'Darwin') + 'FreeBSD') sysctl -n hw.ncpu ;; + 'Darwin') + sysctl -n hw.logicalcpu \ + || sysctl -n hw.ncpu + ;; 'MSYS_NT-'*|'CYGWIN_NT-'*|'MINGW'*'_NT-'*) if command -v 'wmic' >/dev/null then @@ -77,21 +86,57 @@ do fi done +case "$(uname -s)" in + 'Darwin') + cmake_user_opts[${#cmake_user_opts[@]}]='-DBUILTIN_GTKGLEXT=ON -DBUILTIN_GTKTHEME_MOJAVE=ON' + ;; +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[@]}" - -cmake \ - -G'Unix Makefiles' \ - -S"${project_source_dir}" \ - -B"${build_dir}" \ - -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}" \ - "${install_target}" +task_enter_build_dir + +task_fetch_submodules + +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