commit f8597c6e6e223fadba458b2d8788b6b23727366e
Author: Elan Ruusamäe <[email protected]>
Date:   Wed Feb 26 21:39:27 2014 +0200

    add support building with ninja (~30m build instead of ~2h!)

 chromium-browser.spec | 42 ++++++++++++++++++++++++++++++------------
 1 file changed, 30 insertions(+), 12 deletions(-)
---
diff --git a/chromium-browser.spec b/chromium-browser.spec
index dec5e5c..00dafd5 100644
--- a/chromium-browser.spec
+++ b/chromium-browser.spec
@@ -8,6 +8,7 @@
 %bcond_with            gps                     # with gps support (linked), if 
enabled must use exactly same gpsd as shm structures may change leading to 
unexpected results (crash)
 %bcond_without libjpegturbo    # use libjpeg-turbo features
 %bcond_with    nacl                    # build Native Client support, 
disabled: http://crbug.com/269560
+%bcond_without ninja                   # use Ninja instead of make to build
 %bcond_without pulseaudio              # with pulseaudio
 %bcond_without sandboxing              # with sandboxing
 %bcond_with            selinux                 # with SELinux (need policy 
first)
@@ -155,6 +156,7 @@ BuildRequires:      libxml2-devel
 BuildRequires: libxslt-devel
 BuildRequires: man-db
 %{?with_system_minizip:BuildRequires:  minizip-devel}
+%{?with_ninja:BuildRequires:   ninja >= 1.3.0}
 BuildRequires: nspr-devel
 BuildRequires: nss-devel >= 1:3.12.3
 %{?with_system_opus:BuildRequires:     opus-devel >= 1.0.2}
@@ -230,6 +232,9 @@ BuildRoot:  %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 %define                target_arch x64
 %endif
 
+%define                buildtype       %{?debug:Debug}%{!?debug:Release}
+%define                builddir        out/%{buildtype}
+
 %if %{without debuginfo}
 %define                _enable_debug_packages  0
 %endif
@@ -365,11 +370,13 @@ fi
 %endif
 
 %if %{without system_ffmpeg}
-# Re-configure bundled ffmpeg
-cd third_party/ffmpeg
-chromium/scripts/build_ffmpeg.sh linux %{target_arch} "$PWD" config-only
-chromium/scripts/copy_config.sh
-cd -
+if [ ! -d third_party/ffmpeg/build.%{target_arch}.linux ]; then
+       # Re-configure bundled ffmpeg
+       cd third_party/ffmpeg
+       chromium/scripts/build_ffmpeg.sh linux %{target_arch} "$PWD" config-only
+       chromium/scripts/copy_config.sh
+       cd -
+fi
 %endif
 
 flags="
@@ -450,8 +457,13 @@ flags="
 
 build/linux/unbundle/replace_gyp_files.py $flags
 
-test %{_specdir}/%{name}.spec -nt Makefile && %{__rm} -f Makefile
-test -e Makefile || \
+%if %{with ninja}
+chkfile=%{builddir}/build.ninja
+%else
+chkfile=Makefile
+%endif
+test %{_specdir}/%{name}.spec -nt $chkfile && %{__rm} -f $chkfile
+test -e $chkfile || \
        CC="%{__cc}" \
        CXX="%{__cxx}" \
        LDFLAGS="%{rpmldflags} -fuse-ld=gold" \
@@ -461,20 +473,26 @@ test -e Makefile || \
        CXX_host="%{__cxx}" \
        LD_host="%{__cxx}" \
 %{__python} build/gyp_chromium \
-       --format=make \
+       --format=%{?with_ninja:ninja}%{!?with_ninja:make} \
        --depth=. \
        build/all.gyp \
        $flags
 
+%if %{with ninja}
+ninja %{?_smp_mflags} %{?with_verbose:-v} -C %{builddir} \
+%else
 # need {CC/CXX/LDFLAGS}.host overrides for v8 build
-%{__make} -r chrome %{?with_sandboxing:chrome_sandbox} \
-       BUILDTYPE=%{!?debug:Release}%{?debug:Debug} \
+%{__make} -r \
+       BUILDTYPE=%{buildtype} \
        %{?with_verbose:V=1} \
        CC.host="%{__cc}" \
        CXX.host="%{__cxx}" \
        LDFLAGS.host="%{rpmldflags} -fuse-ld=gold" \
+%endif
+       chrome %{?with_sandboxing:chrome_sandbox} \
+       %{nil}
 
-cd out/%{!?debug:Release}%{?debug:Debug}
+cd %{builddir}
 MANWIDTH=80 man ./chrome.1 > man.out
 %{__sed} -e '1,/OPTIONS/d; /ENVIRONMENT/,$d' man.out > options.txt
 
@@ -484,7 +502,7 @@ install -d $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins \
        $RPM_BUILD_ROOT%{_datadir}/%{name}/{locales,resources} \
        
$RPM_BUILD_ROOT{%{_bindir},%{_sysconfdir}/%{name},%{_mandir}/man1,%{_desktopdir}}
 
-cd out/%{!?debug:Release}%{?debug:Debug}
+cd %{builddir}
 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/default
 install -p %{SOURCE2} $RPM_BUILD_ROOT%{_bindir}/%{name}
 %{__sed} -i -e '
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/chromium-browser.git/commitdiff/f8597c6e6e223fadba458b2d8788b6b23727366e

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to