dev-util/gn: new package
authorMike Gilbert <floppym@gentoo.org>
Sat, 21 Jul 2018 21:09:44 +0000 (17:09 -0400)
committerMike Gilbert <floppym@gentoo.org>
Sat, 21 Jul 2018 21:11:01 +0000 (17:11 -0400)
Package-Manager: Portage-2.3.40_p15, Repoman-2.3.9_p247

dev-util/gn/Manifest [new file with mode: 0644]
dev-util/gn/files/gn-gen-r0.patch [new file with mode: 0644]
dev-util/gn/gn-0.1445.ebuild [new file with mode: 0644]
dev-util/gn/metadata.xml [new file with mode: 0644]

diff --git a/dev-util/gn/Manifest b/dev-util/gn/Manifest
new file mode 100644 (file)
index 0000000..105ea66
--- /dev/null
@@ -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 (file)
index 0000000..d30af3a
--- /dev/null
@@ -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 (file)
index 0000000..206f8a0
--- /dev/null
@@ -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 (file)
index 0000000..02041b2
--- /dev/null
@@ -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>