From af3f9004ef486f9eed14eb65ee3c95d1e9a22917 Mon Sep 17 00:00:00 2001 From: Dave Parks Date: Tue, 31 Aug 2010 21:54:25 -0500 Subject: Add build.sh from oz/viewer-experimental --- build.sh | 296 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 296 insertions(+) create mode 100644 build.sh (limited to 'build.sh') diff --git a/build.sh b/build.sh new file mode 100644 index 0000000000..a36d8bf1e2 --- /dev/null +++ b/build.sh @@ -0,0 +1,296 @@ +#!/bin/sh + +# This is a the master build script - it is intended to be run by parabuild +# It is called by a wrapper script in the shared repository which sets up +# the environment from the various BuildParams files and does all the build +# result post-processing. +# +# PLEASE NOTE: +# +# * This script is interpreted on three platforms, including windows and cygwin +# Cygwin can be tricky.... +# * The special style in which python is invoked is intentional to permit +# use of a native python install on windows - which requires paths in DOS form +# * This script relies heavily on parameters defined in BuildParams +# * The basic convention is that the build name can be mapped onto a mercurial URL, +# which is also used as the "branch" name. + +build_dir_Darwin() +{ + echo build-darwin-i386 +} + +build_dir_Linux() +{ + echo viewer-linux-i686-$(echo $1 | tr A-Z a-z) +} + +build_dir_CYGWIN() +{ + echo build-vc80 +} + +installer_Darwin() +{ + ls -1td "$(build_dir_Darwin Release)/newview/"*.dmg 2>/dev/null | sed 1q +} + +installer_Linux() +{ + ls -1td "$(build_dir_Linux Release)/newview/"*.tar.bz2 2>/dev/null | sed 1q +} + +installer_CYGWIN() +{ + d=$(build_dir_CYGWIN Release) + p=$(sed 's:.*=::' "$d/newview/Release/touched.bat") + echo "$d/newview/Release/$p" +} + +pre_build() +{ + local variant="$1" + local build_dir="$2" + begin_section "Pre$variant" + #export PATH="/cygdrive/c/Program Files/Microsoft Visual Studio 8/Common7/IDE/:$PATH" + python develop.py \ + --incredibuild \ + --unattended \ + -t $variant \ + -G "$cmake_generator" \ + configure \ + -DVIEWER_CHANNEL:STRING="$viewer_channel" \ + -DVIEWER_LOGIN_CHANNEL:STRING="$login_channel" \ + -DINSTALL_PROPRIETARY:BOOL=ON \ + -DLOCALIZESETUP:BOOL=ON \ + -DPACKAGE:BOOL=ON + end_section "Pre$variant" +} + +build() +{ + local variant="$1" + local build_dir="$2" + if $build_viewer + then + begin_section "Viewer$variant" + if python develop.py \ + --incredibuild \ + --unattended \ + -t $variant \ + -G "$cmake_generator" \ + build package +# && \ +# python develop.py \ +# --incredibuild \ +# --unattended \ +# -t $variant \ +# -G "$cmake_generator" \ +# build package + then + echo true >"$build_dir"/build_ok + else + echo false >"$build_dir"/build_ok + fi + end_section "Viewer$variant" + fi +} + +# This is called from the branch independent script upon completion of all platform builds. +build_docs() +{ + begin_section Docs + # Stub code to generate docs + echo Hello world > documentation.txt + upload_item docs documentation.txt text/plain + end_section Docs +} + +# Check to see if we were invoked from the wrapper, if not, re-exec ourselves from there +if [ "x$arch" = x ] +then + top=`hg root` + if [ -x "$top/../buildscripts/hg/bin/build.sh" ] + then + exec "$top/../buildscripts/hg/bin/build.sh" "$top" + else + cat <> "$build_log" 2>&1 + then + if $build_link_parallel + then + begin_section BuildParallel + ( build "$variant" "$build_dir" > "$build_dir/build.log" 2>&1 ) & + build_processes="$build_processes $!" + end_section BuildParallel + elif $build_coverity + then + mkdir -p "$build_dir/cvbuild" + coverity_config=`cygpath --windows "$coverity_dir/config/coverity_config.xml"` + coverity_tmpdir=`cygpath --windows "$build_dir/cvbuild"` + coverity_root=`cygpath --windows "$top/latest"` + case "$variant" in + Release) + begin_section Coverity + begin_section CovBuild + "$coverity_dir"/bin/cov-build\ + --verbose 4 \ + --config "$coverity_config"\ + --dir "$coverity_tmpdir"\ + python develop.py -t $variant -G "$cmake_generator" build "$coverity_product"\ + >> "$build_log" 2>&1\ + &&\ + end_section CovBuild\ + &&\ + begin_section CovAnalyze\ + &&\ + "$coverity_dir"/bin/cov-analyze\ + --cxx\ + --security\ + --concurrency\ + --dir "$coverity_tmpdir"\ + >> "$build_log" 2>&1\ + &&\ + end_section CovAnalyze\ + &&\ + begin_section CovCommit\ + &&\ + "$coverity_dir"/bin/cov-commit-defects\ + --product "$coverity_product"\ + --dir "$coverity_tmpdir"\ + --remote "$coverity_server"\ + --strip-path "$coverity_root"\ + --target "$branch/$arch"\ + --version "$revision"\ + --description "$repo: $variant $revision"\ + --user admin --password admin\ + >> "$build_log" 2>&1\ + || record_failure "Coverity Build Failed" + # since any step could have failed, rely on the enclosing block to close any pending sub-blocks + end_section Coverity + ;; + esac + if test -r "$build_dir"/cvbuild/build-log.txt + then + upload_item log "$build_dir"/cvbuild/build-log.txt text/plain + fi + else + begin_section "Build$variant" + build "$variant" "$build_dir" >> "$build_log" 2>&1 + if `cat "$build_dir/build_ok"` + then + echo so far so good. + else + record_failure "Build of \"$variant\" failed." + fi + end_section "Build$variant" + fi + else + record_failure "Build Prep for \"$variant\" failed." + fi + end_section "Do$variant" +done + +# If we are building variants in parallel, wait, then collect results. +# This requires that the build dirs are variant specific +if $build_link_parallel && [ x"$build_processes" != x ] +then + begin_section WaitParallel + wait $build_processes + for variant in $variants + do + eval '$build_'"$variant" || continue + eval '$build_'"$arch"_"$variant" || continue + + begin_section "Build$variant" + build_dir=`build_dir_$arch $variant` + build_dir_stubs="$build_dir/win_setup/$variant" + cat "$build_dir/build.log" >> "$build_log" + if `cat "$build_dir/build_ok"` + then + echo so far so good. + else + record_failure "Parallel build of \"$variant\" failed." + fi + end_section "Build$variant" + done + end_section WaitParallel +fi + +# check status and upload results to S3 +if $succeeded +then + if $build_viewer + then + begin_section Upload + # Upload installer - note that ONLY THE FIRST ITEM uploaded as "installer" + # will appear in the version manager. + package=$(installer_$arch) + if [ x"$package" = x ] || test -d "$package" + then + # Coverity doesn't package, so it's ok, anything else is fail + succeeded=$build_coverity + else + upload_item installer "$package" binary/octet-stream + + # Upload crash reporter files. + for symbolfile in $symbolfiles + do + upload_item symbolfile "$build_dir/$symbolfile" binary/octet-stream + done + + # Upload stub installers + upload_stub_installers "$build_dir_stubs" + fi + end_section Upload + else + echo skipping viewer + fi +else + echo skipping upload of build results due to failed build. +fi + +# The branch independent build.sh script invoking this script will finish processing +$succeeded || exit 1 -- cgit v1.2.3 From 7a02a6ff9986798d5cbcbdb769a28648f68417b2 Mon Sep 17 00:00:00 2001 From: Dave Parks Date: Wed, 1 Sep 2010 17:10:27 -0500 Subject: Add viewer_grid to configure params as per cg's instructions. --- build.sh | 1 + 1 file changed, 1 insertion(+) (limited to 'build.sh') diff --git a/build.sh b/build.sh index a36d8bf1e2..4b5dec6682 100644 --- a/build.sh +++ b/build.sh @@ -59,6 +59,7 @@ pre_build() -t $variant \ -G "$cmake_generator" \ configure \ + -DGRID:STRING="$viewer_grid"\ -DVIEWER_CHANNEL:STRING="$viewer_channel" \ -DVIEWER_LOGIN_CHANNEL:STRING="$login_channel" \ -DINSTALL_PROPRIETARY:BOOL=ON \ -- cgit v1.2.3 From 90e3d83a5cb35e98a02a3017dd79ebc272bbfe85 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Tue, 21 Sep 2010 13:26:52 -0400 Subject: Fix for build failures - disabling tcmalloc for now --- build.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 build.sh (limited to 'build.sh') diff --git a/build.sh b/build.sh old mode 100644 new mode 100755 -- cgit v1.2.3 From 9c1d9665f7aee1faad6eaf4d23407688cc7ba3b7 Mon Sep 17 00:00:00 2001 From: "Christian Goetze (CG)" Date: Thu, 28 Oct 2010 12:46:16 -0700 Subject: Append logs of multivariant builds correctly. --- build.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'build.sh') diff --git a/build.sh b/build.sh index b118474498..c180fe12c4 100644 --- a/build.sh +++ b/build.sh @@ -59,7 +59,7 @@ pre_build() -t $variant \ -G "$cmake_generator" \ configure \ - -DGRID:STRING="$viewer_grid" \ + -DGRID:STRING="$viewer_grid" \ -DVIEWER_CHANNEL:STRING="$viewer_channel" \ -DVIEWER_LOGIN_CHANNEL:STRING="$login_channel" \ -DINSTALL_PROPRIETARY:BOOL=ON \ @@ -228,7 +228,7 @@ do fi else begin_section "Build$variant" - build "$variant" "$build_dir" > "$build_log" 2>&1 + build "$variant" "$build_dir" >> "$build_log" 2>&1 begin_section Tests grep --line-buffered "^##teamcity" "$build_log" end_section Tests -- cgit v1.2.3 From 79459bc9ba8cefa67091e65dd676f50c9ddc612d Mon Sep 17 00:00:00 2001 From: CG Linden Date: Tue, 17 May 2011 11:06:33 -0400 Subject: Restore reference to $last_built_variant when computing path to the Windows Installer --- build.sh | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'build.sh') diff --git a/build.sh b/build.sh index b322d30daf..4268c76e78 100755 --- a/build.sh +++ b/build.sh @@ -32,19 +32,23 @@ build_dir_CYGWIN() installer_Darwin() { - ls -1td "$(build_dir_Darwin Release)/newview/"*.dmg 2>/dev/null | sed 1q + ls -1td "$(build_dir_Darwin ${last_built_variant:-Release})/newview/"*.dmg 2>/dev/null | sed 1q } installer_Linux() { - ls -1td "$(build_dir_Linux Release)/newview/"*.tar.bz2 2>/dev/null | sed 1q + ls -1td "$(build_dir_Linux ${last_built_variant:-Release})/newview/"*.tar.bz2 2>/dev/null | sed 1q } installer_CYGWIN() { - d=$(build_dir_CYGWIN Release) - p=$(sed 's:.*=::' "$d/newview/Release/touched.bat") - echo "$d/newview/Release/$p" + v=${last_built_variant:-Release} + d=$(build_dir_CYGWIN $v) + if [ -r "$d/newview/$v/touched.bat" ] + then + p=$(sed 's:.*=::' "$d/newview/$v/touched.bat") + echo "$d/newview/$v/$p" + fi } pre_build() -- cgit v1.2.3