From 4b8f90917d79741dd148b393a06d93bed25d242e Mon Sep 17 00:00:00 2001 From: Tom Prince Date: Thu, 19 Oct 2017 13:56:13 -0600 Subject: [PATCH] Bug 1410475: Add support for detecting whether c-c is topdir in mozconfigs; r=mshal MozReview-Commit-ID: DYveJX8J3lr --HG-- extra : rebase_source : d98a7be704dae5058c0e06490e077c81d6b8a781 --- build/mozconfig.comm-support | 49 ++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 build/mozconfig.comm-support diff --git a/build/mozconfig.comm-support b/build/mozconfig.comm-support new file mode 100644 index 000000000000..b681a2724d06 --- /dev/null +++ b/build/mozconfig.comm-support @@ -0,0 +1,49 @@ +# This file exists to support comm-central from building with mozilla-central +# as a subdirectory to building as a subdirectory of mozilla-central. + +# In order to have mozconfig files that support building in either +# configuration during the transition, without duplicating the logic +# in every mozconfig file, there needs to exist a file that exists at the +# same path in mozilla-central and comm-central. + +# This file gets included under two circumstances. +# 1. comm-central is being built as a subdirectory of mozilla-central. +# 2. comm-central is being built as a parent directory of mozilla-central, +# but `mach` was invoked from the objdir and thinks that $topsrcdir is +# the mozilla-central directory. If we detect this is the case, we fix +# $topsrcdir before proceeding. +# In either case, we then invoke the identically named file that lives in +# comm-central, which sets some variables that can be used by the rest of the +# mozconfig. + + +# Note that the top-level mozconfig file is in $2. + +if [ "$(dirname "$2")" = "$topsrcdir" ]; then + # No weirdness + if [ -d "$topsrcdir/mail" ]; then + # Building with comm-central as top-level directory. + echo "ERROR: Should not include mozilla/build/mozconfig.comm when building" + echo " with comm-central as top-level directory." + exit 1 + elif [ -d "$topsrcdir/comm/mail" ]; then + # Building with mozila-central as top-level directory. + . "$topsrcdir/comm/build/mozconfig.comm-support" + else + echo "ERROR: Unknown build directory layout." + exit 1 + fi +elif [ "$(dirname "$2")" = "$(dirname "$topsrcdir")" ]; then + if [ -d "$topsrcdir/../mail" ]; then + # Building with comm-central as top-level directory; + # but invoked with $topsrcdir as "mozilla/". + topsrcdir=$(dirname "$topsrcdir") + . "$topsrcdir/build/mozconfig.comm-support" + else + echo "ERROR: Unknown build directory layout." + exit 1 + fi +else + echo "ERROR: Unknown build directory layout." + exit 1 +fi