Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at devShellTools-shell 100 lines 2.9 kB view raw
1# shellcheck shell=bash disable=SC2206 2 3mesonConfigurePhase() { 4 runHook preConfigure 5 6 : ${mesonBuildDir:=build} 7 8 local flagsArray=() 9 10 if [ -z "${dontAddPrefix-}" ]; then 11 flagsArray+=("--prefix=$prefix") 12 fi 13 14 # See multiple-outputs.sh and meson’s coredata.py 15 flagsArray+=( 16 "--libdir=${!outputLib}/lib" 17 "--libexecdir=${!outputLib}/libexec" 18 "--bindir=${!outputBin}/bin" 19 "--sbindir=${!outputBin}/sbin" 20 "--includedir=${!outputInclude}/include" 21 "--mandir=${!outputMan}/share/man" 22 "--infodir=${!outputInfo}/share/info" 23 "--localedir=${!outputLib}/share/locale" 24 "-Dauto_features=${mesonAutoFeatures:-enabled}" 25 "-Dwrap_mode=${mesonWrapMode:-nodownload}" 26 "--buildtype=${mesonBuildType:-plain}" 27 ) 28 29 # --no-undefined is universally a bad idea on freebsd because environ is in the csu 30 if [[ "@hostPlatform@" == *-freebsd ]]; then 31 flagsArray+=("-Db_lundef=false") 32 fi 33 34 concatTo flagsArray mesonFlags mesonFlagsArray 35 36 echoCmd 'mesonConfigurePhase flags' "${flagsArray[@]}" 37 38 meson setup "$mesonBuildDir" "${flagsArray[@]}" 39 cd "$mesonBuildDir" || { echoCmd 'mesonConfigurePhase' "could not cd to $mesonBuildDir"; exit 1; } 40 41 if ! [[ -v enableParallelBuilding ]]; then 42 enableParallelBuilding=1 43 echoCmd 'mesonConfigurePhase' "enabled parallel building" 44 fi 45 46 if [[ ${checkPhase-ninjaCheckPhase} = ninjaCheckPhase && -z $dontUseMesonCheck ]]; then 47 checkPhase=mesonCheckPhase 48 fi 49 if [[ ${installPhase-ninjaInstallPhase} = ninjaInstallPhase && -z $dontUseMesonInstall ]]; then 50 installPhase=mesonInstallPhase 51 fi 52 53 runHook postConfigure 54} 55 56mesonCheckPhase() { 57 runHook preCheck 58 59 local flagsArray=() 60 concatTo flagsArray mesonCheckFlags mesonCheckFlagsArray 61 62 if [ -z "${dontAddTimeoutMultiplier:-}" ]; then 63 flagsArray+=("--timeout-multiplier=0") 64 fi 65 66 # Parallel checking is enabled by default. 67 local buildCores=1 68 if [ "${enableParallelChecking-1}" ]; then 69 buildCores="$NIX_BUILD_CORES" 70 fi 71 72 TERM=dumb ninja -j"$buildCores" $ninjaFlags "${ninjaFlagsArray[@]}" meson-test-prereq 73 74 echoCmd 'mesonCheckPhase flags' "${flagsArray[@]}" 75 meson test --no-rebuild --print-errorlogs "${flagsArray[@]}" 76 77 runHook postCheck 78} 79 80mesonInstallPhase() { 81 runHook preInstall 82 83 local flagsArray=() 84 85 if [[ -n "$mesonInstallTags" ]]; then 86 flagsArray+=("--tags" "$(concatStringsSep "," mesonInstallTags)") 87 fi 88 concatTo flagsArray mesonInstallFlags mesonInstallFlagsArray 89 90 echoCmd 'mesonInstallPhase flags' "${flagsArray[@]}" 91 meson install --no-rebuild "${flagsArray[@]}" 92 93 runHook postInstall 94} 95 96if [ -z "${dontUseMesonConfigure-}" ] && [ -z "${configurePhase-}" ]; then 97 # shellcheck disable=SC2034 98 setOutputFlags= 99 configurePhase=mesonConfigurePhase 100fi