summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Gilbert <floppym@gentoo.org>2018-07-21 17:09:44 -0400
committerMike Gilbert <floppym@gentoo.org>2018-07-21 17:11:01 -0400
commit246535438e909fe39ffc724c3e3aca26e5cd7841 (patch)
treec2b7c460e7f40cd0f94a75771365499c4e8228a9 /dev-util
parentdev-python/pytest-mock: Add python@ as co-maint (diff)
downloadgentoo-246535438e909fe39ffc724c3e3aca26e5cd7841.tar.gz
gentoo-246535438e909fe39ffc724c3e3aca26e5cd7841.tar.bz2
gentoo-246535438e909fe39ffc724c3e3aca26e5cd7841.zip
dev-util/gn: new package
Package-Manager: Portage-2.3.40_p15, Repoman-2.3.9_p247
Diffstat (limited to 'dev-util')
-rw-r--r--dev-util/gn/Manifest1
-rw-r--r--dev-util/gn/files/gn-gen-r0.patch51
-rw-r--r--dev-util/gn/gn-0.1445.ebuild56
-rw-r--r--dev-util/gn/metadata.xml7
4 files changed, 115 insertions, 0 deletions
diff --git a/dev-util/gn/Manifest b/dev-util/gn/Manifest
new file mode 100644
index 000000000000..105ea6699779
--- /dev/null
+++ b/dev-util/gn/Manifest
@@ -0,0 +1 @@
+DIST gn-0.1445.tar.gz 958901 BLAKE2B f50dfa07c621e37d8a9face19ca91f28ca24e14717052218690e85911e25c91b109e6cede8d2be6c8493c0b7b8a305d530db4393123956c42da51cd4812d0300 SHA512 2ca21303aa8709fc4f23f15e01f2eaa8e77e394c27970a21361a22445d5cb29da150b1d05d77b471702ab2da2be04cea2a0d927eb0eb3a1baf3358c6eae15d06
diff --git a/dev-util/gn/files/gn-gen-r0.patch b/dev-util/gn/files/gn-gen-r0.patch
new file mode 100644
index 000000000000..d30af3ab4ac6
--- /dev/null
+++ b/dev-util/gn/files/gn-gen-r0.patch
@@ -0,0 +1,51 @@
+diff --git a/build/gen.py b/build/gen.py
+index fce8fb18..2927da5f 100755
+--- a/build/gen.py
++++ b/build/gen.py
+@@ -260,17 +260,12 @@ def WriteGNNinja(path, options, linux_sysroot):
+ if options.debug:
+ cflags.extend(['-O0', '-g'])
+ else:
+- cflags.append('-DNDEBUG')
+- cflags.append('-O3')
+- ldflags.append('-O3')
+ # Use -fdata-sections and -ffunction-sections to place each function
+ # or data item into its own section so --gc-sections can eliminate any
+ # unused functions and data items.
+ cflags.extend(['-fdata-sections', '-ffunction-sections'])
+ ldflags.extend(['-fdata-sections', '-ffunction-sections'])
+ ldflags.append('-Wl,-dead_strip' if is_mac else '-Wl,--gc-sections')
+- # Omit all symbol information from the output file.
+- ldflags.append('-Wl,-S' if is_mac else '-Wl,-strip-all')
+ # Enable identical code-folding.
+ if options.use_icf:
+ ldflags.append('-Wl,--icf=all')
+@@ -279,11 +274,11 @@ def WriteGNNinja(path, options, linux_sysroot):
+ '-D_FILE_OFFSET_BITS=64',
+ '-D__STDC_CONSTANT_MACROS', '-D__STDC_FORMAT_MACROS',
+ '-pthread',
+- '-pipe',
+ '-fno-exceptions',
+ '-fno-rtti',
+ ])
+ cflags_cc.extend(['-std=c++14', '-Wno-c++11-narrowing'])
++ ldflags.append('-pthread')
+
+ if is_linux:
+ if linux_sysroot:
+@@ -293,15 +288,6 @@ def WriteGNNinja(path, options, linux_sysroot):
+ # probably resolve this and (re-)add a way to build against libc++.
+ cflags.append('--sysroot=' + linux_sysroot)
+ ldflags.append('--sysroot=' + linux_sysroot)
+- cflags.append('-stdlib=libstdc++')
+- ldflags.extend(['-static-libstdc++',
+- '-stdlib=libstdc++',
+- '-Wl,--as-needed',
+- ])
+- libs.extend([
+- '-lgcc_s',
+- '-lpthread',
+- ])
+ elif is_mac:
+ min_mac_version_flag = '-mmacosx-version-min=10.9'
+ cflags.append(min_mac_version_flag)
diff --git a/dev-util/gn/gn-0.1445.ebuild b/dev-util/gn/gn-0.1445.ebuild
new file mode 100644
index 000000000000..206f8a04e4e7
--- /dev/null
+++ b/dev-util/gn/gn-0.1445.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+inherit ninja-utils python-any-r1 toolchain-funcs
+
+DESCRIPTION="GN is a meta-build system that generates build files for Ninja"
+HOMEPAGE="https://gn.googlesource.com/"
+SRC_URI="https://dev.gentoo.org/~floppym/dist/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+
+BDEPEND="
+ ${PYTHON_DEPS}
+ dev-util/ninja
+"
+
+PATCHES=(
+ "${FILESDIR}"/gn-gen-r0.patch
+)
+
+pkg_setup() {
+ :
+}
+
+src_configure() {
+ python_setup
+ tc-export AR CC CXX
+ set -- ${EPYTHON} build/gen.py --no-sysroot --no-last-commit-position
+ echo "$@"
+ "$@" || die
+ cat >out/last_commit_position.h <<-EOF || die
+ #ifndef OUT_LAST_COMMIT_POSITION_H_
+ #define OUT_LAST_COMMIT_POSITION_H_
+ #define LAST_COMMIT_POSITION "${PV}"
+ #endif // OUT_LAST_COMMIT_POSITION_H_
+ EOF
+}
+
+src_compile() {
+ eninja -C out gn
+}
+
+src_test() {
+ eninja -C out gn_unittests
+ out/gn_unittests || die
+}
+
+src_install() {
+ dobin out/gn
+ einstalldocs
+}
diff --git a/dev-util/gn/metadata.xml b/dev-util/gn/metadata.xml
new file mode 100644
index 000000000000..02041b24510a
--- /dev/null
+++ b/dev-util/gn/metadata.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>chromium@gentoo.org</email>
+ </maintainer>
+</pkgmetadata>