svn commit: r448293 - in head: devel devel/chromium-gn www/chromium www/chromium/files
Mahdi Mokhtari
mmokhi at FreeBSD.org
Sat Aug 19 09:51:24 UTC 2017
Author: mmokhi
Date: Sat Aug 19 09:51:22 2017
New Revision: 448293
URL: https://svnweb.freebsd.org/changeset/ports/448293
Log:
devel/chromium-gn: Add port to the tree
GN is a meta-build system that generates NinjaBuild.
It helps to build chromium with Ninja.
Also enables us for one step forward to build Electron.io for FreeBSD.
Reported by: Luca Pizzamiglio <luca.pizzamiglio at gmail.com>
Reviewed by: mat (mentor), mmokhi, cpm (chromium)
Approved by: mat (mentor), mmokhi, cpm (chromium)
Differential Revision: https://reviews.freebsd.org/D11554
Added:
head/devel/chromium-gn/
head/devel/chromium-gn/Makefile (contents, props changed)
head/devel/chromium-gn/pkg-descr (contents, props changed)
Modified:
head/devel/Makefile
head/www/chromium/Makefile
head/www/chromium/files/patch-third__party_ffmpeg_ffmpeg__generated.gni
Modified: head/devel/Makefile
==============================================================================
--- head/devel/Makefile Sat Aug 19 09:25:30 2017 (r448292)
+++ head/devel/Makefile Sat Aug 19 09:51:22 2017 (r448293)
@@ -276,6 +276,7 @@
SUBDIR += checkheaders
SUBDIR += cheritrace-devel
SUBDIR += cherivis-devel
+ SUBDIR += chromium-gn
SUBDIR += chrpath
SUBDIR += chruby
SUBDIR += cil
Added: head/devel/chromium-gn/Makefile
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/devel/chromium-gn/Makefile Sat Aug 19 09:51:22 2017 (r448293)
@@ -0,0 +1,24 @@
+# $FreeBSD$
+
+CATEGORIES= devel www
+PKGNAMESUFFIX= -gn
+
+MAINTAINER= luca.pizzamiglio at gmail.com
+COMMENT= Gn meta build framework
+
+MASTERDIR= ${.CURDIR}/../../www/chromium
+
+BUILDTYPE= Release
+NO_BUILD= yes
+
+PLIST= ${.CURDIR}/pkg-plist
+PKGMESSAGE= ${.CURDIR}/pkg-message
+DESCR= ${.CURDIR}/pkg-descr
+PLIST_FILES= bin/gn
+
+GN_ONLY= yes
+
+do-install:
+ ${INSTALL_PROGRAM} ${WRKSRC}/out/${BUILDTYPE}/gn ${STAGEDIR}${PREFIX}/bin
+
+.include "${MASTERDIR}/Makefile"
Added: head/devel/chromium-gn/pkg-descr
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/devel/chromium-gn/pkg-descr Sat Aug 19 09:51:22 2017 (r448293)
@@ -0,0 +1,4 @@
+GN is a meta-build system that generates NinjaBuild files so that you can build
+Chromium with Ninja.
+
+WWW: https://chromium.googlesource.com/chromium/src/tools/gn/
Modified: head/www/chromium/Makefile
==============================================================================
--- head/www/chromium/Makefile Sat Aug 19 09:25:30 2017 (r448292)
+++ head/www/chromium/Makefile Sat Aug 19 09:51:22 2017 (r448293)
@@ -4,32 +4,36 @@
PORTNAME= chromium
PORTVERSION= 59.0.3071.115
PORTREVISION= 2
-CATEGORIES= www
+CATEGORIES?= www
MASTER_SITES= https://commondatastorage.googleapis.com/chromium-browser-official/:source1 \
LOCAL/cpm:source2
DISTFILES= ${DISTNAME}${EXTRACT_SUFX}:source1 \
${PORTNAME}-freetype2${EXTRACT_SUFX}:source2
-MAINTAINER= chromium at FreeBSD.org
-COMMENT= Google web browser based on WebKit
+MAINTAINER?= chromium at FreeBSD.org
+COMMENT?= Google web browser based on WebKit
LICENSE= BSD3CLAUSE LGPL21 MPL
LICENSE_COMB= multi
-BUILD_DEPENDS= gperf:devel/gperf \
+BUILD_DEPENDS= python:lang/python \
+ bash:shells/bash \
+ ${PYTHON_PKGNAMEPREFIX}Jinja2>0:devel/py-Jinja2 \
+ ${PYTHON_PKGNAMEPREFIX}ply>0:devel/py-ply \
+
+.if !defined(GN_ONLY)
+BUILD_DEPENDS+= gperf:devel/gperf \
clang40:devel/llvm40 \
yasm:devel/yasm \
- python:lang/python \
ffmpeg>=3.2.2,1:multimedia/ffmpeg \
- bash:shells/bash \
flock:sysutils/flock \
node:www/node \
${LOCALBASE}/include/linux/videodev2.h:multimedia/v4l_compat \
${LOCALBASE}/share/usbids/usb.ids:misc/usbids \
- ${PYTHON_PKGNAMEPREFIX}Jinja2>0:devel/py-Jinja2 \
- ${PYTHON_PKGNAMEPREFIX}ply>0:devel/py-ply \
${PYTHON_PKGNAMEPREFIX}html5lib>0:www/py-html5lib
+.endif
+.if !defined(GN_ONLY)
LIB_DEPENDS= libspeechd.so:accessibility/speech-dispatcher \
libsnappy.so:archivers/snappy \
libFLAC.so:audio/flac \
@@ -62,9 +66,17 @@ RUN_DEPENDS= xdg-open:devel/xdg-utils \
droid-fonts-ttf>0:x11-fonts/droid-fonts-ttf
ONLY_FOR_ARCHS= amd64 i386
-USES= bison cpe desktop-file-utils execinfo jpeg ninja perl5 \
+.endif
+
+.if defined(GN_ONLY)
+USES= compiler:c++11-lib ninja pkgconfig python:2,build shebangfix tar:xz
+.else
+USES= bison cpe desktop-file-utils execinfo jpeg ninja perl5 \
pkgconfig python:2,build shebangfix tar:xz
+.endif
+MAKE_ARGS= -C out/${BUILDTYPE}
+.if !defined(GN_ONLY)
CPE_VENDOR= google
CPE_PRODUCT= chrome
USE_LDCONFIG= ${DATADIR}
@@ -72,13 +84,14 @@ USE_PERL5= build
USE_XORG= scrnsaverproto x11 xcb xcomposite xcursor xext xdamage xfixes xi \
xproto xrandr xrender xscrnsaver xtst
USE_GNOME= atk dconf glib20 gtk20 gtk30 libxml2 libxslt
-MAKE_ARGS= -C out/${BUILDTYPE}
SHEBANG_FILES= chrome/tools/build/linux/chrome-wrapper
ALL_TARGET= chrome
INSTALLS_ICONS= yes
CC= clang40
CXX= clang++40
+.endif
+
EXTRA_PATCHES+= ${FILESDIR}/extra-patch-clang
# TODO bz@ : install libwidevinecdm.so (see third_party/widevine/cdm/BUILD.gn)
@@ -118,6 +131,7 @@ GN_ARGS+= google_api_key="AIzaSyBsp9n41JLW8jCokwn7vhoa
google_default_client_id="996322985003.apps.googleusercontent.com" \
google_default_client_secret="IR1za9-1VK0zZ0f_O8MVFicn"
+.if !defined(GN_ONLY)
SUB_FILES= chromium-browser.desktop chrome
SUB_LIST+= COMMENT="${COMMENT}"
@@ -176,6 +190,8 @@ SNDIO_LIB_DEPENDS= libsndio.so:audio/sndio
SNDIO_VARS= GN_ARGS+=use_sndio=true
SNDIO_VARS_OFF= GN_ARGS+=use_sndio=false
+.endif
+
.include "Makefile.tests"
TEST_ALL_TARGET= ${TEST_TARGETS}
TEST_DISTFILES= ${PORTNAME}-${DISTVERSION}-testdata${EXTRACT_SUFX}:source1
@@ -192,6 +208,7 @@ MAKE_ENV+= C_INCLUDE_PATH=${LOCALBASE}/include \
GN_ARGS+= extra_cxxflags="-D_LIBCPP_TRIVIAL_PAIR_COPY_CTOR=1"
.endif
+.if !defined(GN_ONLY)
pre-everything::
@${ECHO_MSG}
@${ECHO_MSG} "To build Chromium, you should have around 2GB of memory"
@@ -215,18 +232,21 @@ pre-configure:
cd ${WRKSRC} && ${PYTHON_CMD} \
./build/linux/unbundle/replace_gn_files.py --system-libraries \
ffmpeg flac harfbuzz-ng libwebp libxml libxslt snappy yasm || ${FALSE}
+.endif
do-configure:
# GN generator bootstrapping and generating ninja files
cd ${WRKSRC} && ${SETENV} CC=${CC} CXX=${CXX} LD=${CXX} \
READELF=${READELF} AR=${AR} NM=${NM} ${PYTHON_CMD} \
./tools/gn/bootstrap/bootstrap.py ${GN_BOOTSTRAP_FLAGS}
+.if !defined(GN_ONLY)
cd ${WRKSRC} && ${SETENV} ./out/${BUILDTYPE}/gn \
gen --args='${GN_ARGS}' out/${BUILDTYPE}
# Setup nodejs dependency
@${MKDIR} ${WRKSRC}/third_party/node/linux/node-linux-x64/bin
${LN} -sf ${LOCALBASE}/bin/node ${WRKSRC}/third_party/node/linux/node-linux-x64/bin/node
+.endif
do-test-TEST-on:
.for t in ${TEST_TARGETS}
@@ -234,6 +254,7 @@ do-test-TEST-on:
./${t} --gtest_filter=-${EXCLUDE_${t}:ts:} || ${TRUE}
.endfor
+.if !defined(GN_ONLY)
do-install:
@${MKDIR} ${STAGEDIR}${DATADIR}
${INSTALL_MAN} ${WRKSRC}/out/${BUILDTYPE}/chrome.1 ${STAGEDIR}${MANPREFIX}/man/man1
@@ -277,5 +298,5 @@ post-install-DEBUG-on:
post-install-DRIVER-on:
${INSTALL_PROGRAM} ${WRKSRC}/out/${BUILDTYPE}/chromedriver \
${STAGEDIR}${PREFIX}/bin
-
+.endif
.include <bsd.port.mk>
Modified: head/www/chromium/files/patch-third__party_ffmpeg_ffmpeg__generated.gni
==============================================================================
--- head/www/chromium/files/patch-third__party_ffmpeg_ffmpeg__generated.gni Sat Aug 19 09:25:30 2017 (r448292)
+++ head/www/chromium/files/patch-third__party_ffmpeg_ffmpeg__generated.gni Sat Aug 19 09:51:22 2017 (r448293)
@@ -23,7 +23,7 @@
}
-if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu =
= "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_win && ffmpeg_branding == "Chrome")) {
-+if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || ((is_linux || is_bsd) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || ((is_linux || is_bsd) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || ((is_linux || is_bsd) && current_cpu == "arm" && ffmpeg_branding == "Chrome") || ((is_linux || is_bsd) && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || ((is_linux || is_bsd) && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || ((is_linux || is_bsd) && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || ((is_linux || is_bsd) && c
urrent_cpu == "mipsel" && ffmpeg_branding == "Chrome") || ((is_linux || is_bsd) && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || ((is_linux || is_bsd) && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || ((is_linux | is_bsd) && current_cpu == "x86" && ffmpeg_branding == "Chrome") || ((is_linux || is_bsd) && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_win && ffmpeg_branding == "Chrome")) {
++if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || ((is_linux || is_bsd) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || ((is_linux || is_bsd) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || ((is_linux || is_bsd) && current_cpu == "arm" && ffmpeg_branding == "Chrome") || ((is_linux || is_bsd) && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || ((is_linux || is_bsd) && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || ((is_linux || is_bsd) && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || ((is_linux || is_bsd) && c
urrent_cpu == "mipsel" && ffmpeg_branding == "Chrome") || ((is_linux || is_bsd) && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || ((is_linux || is_bsd) && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || ((is_linux || is_bsd) && current_cpu == "x86" && ffmpeg_branding == "Chrome") || ((is_linux || is_bsd) && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_win && ffmpeg_branding == "Chrome")) {
ffmpeg_c_sources += [
"libavcodec/aac_ac3_parser.c",
"libavcodec/aac_parser.c",
More information about the svn-ports-all
mailing list