mirror of
https://github.com/flatcar/scripts.git
synced 2025-09-27 16:41:11 +02:00
dev-build/ninja: Sync with Gentoo
It's from Gentoo commit 6941a8d364c83e62b33c173ceb8652f0ae9948df.
This commit is contained in:
parent
6129181844
commit
ea4dbfbab1
@ -1,2 +1,3 @@
|
|||||||
|
DIST gtest-1.14.0.tar.gz 867764 BLAKE2B c457f55ac572b9fb1553eee3df7eeeaf1e7dd2c3d747dd5e90dd279038fa5c71bb7b7d9ba1cf7e6143898b2a1d24d100584bd2a48ded41a426870c4825eec1b2 SHA512 765c326ccc1b87a01027385e69238266e356361cd4ee3e18e3c9d137a5d11fa5d657c164d02dd1be8fe693c8e10f2b580588dbfa57d27f070e2750f50d3e662c
|
||||||
DIST ninja-1.11.1.tar.gz 229479 BLAKE2B c96cf7c319b7abd65f644465688d256f8b3a576c4616d0c63852e25dd0dc5f63c66708d429d8dddb6228502eb147211a86a5dd369b80ec2228902b370d2343e5 SHA512 1bca38877c70ee6613f347ffccef5adc02ba0a3947c62ae004ea97f918442b5a3de92378e4f820ae2a7676bc7609d25fbc7d41f6cfb3a61e5e4b26ec3639e403
|
DIST ninja-1.11.1.tar.gz 229479 BLAKE2B c96cf7c319b7abd65f644465688d256f8b3a576c4616d0c63852e25dd0dc5f63c66708d429d8dddb6228502eb147211a86a5dd369b80ec2228902b370d2343e5 SHA512 1bca38877c70ee6613f347ffccef5adc02ba0a3947c62ae004ea97f918442b5a3de92378e4f820ae2a7676bc7609d25fbc7d41f6cfb3a61e5e4b26ec3639e403
|
||||||
DIST ninja-1.12.1.tar.gz 240483 BLAKE2B 915545888cbd7d9e6e7e4fb0bad42f6c36ecef2de93356966541de0f8f4315e59e47cf20f189de5de11ba2a038488c7964ec709bad8868488cc03524a88483f4 SHA512 d6e6f0e89a4844a69069ff0c7cefc07704a41c7b0c062a57534de87decdde63e27928147b321111b806aa7efa1061f031a1319b074391db61b0cbdccf096954c
|
DIST ninja-1.12.1.tar.gz 240483 BLAKE2B 915545888cbd7d9e6e7e4fb0bad42f6c36ecef2de93356966541de0f8f4315e59e47cf20f189de5de11ba2a038488c7964ec709bad8868488cc03524a88483f4 SHA512 d6e6f0e89a4844a69069ff0c7cefc07704a41c7b0c062a57534de87decdde63e27928147b321111b806aa7efa1061f031a1319b074391db61b0cbdccf096954c
|
||||||
|
@ -0,0 +1,135 @@
|
|||||||
|
https://bugs.gentoo.org/929221
|
||||||
|
https://github.com/ninja-build/ninja/issues/2447
|
||||||
|
https://github.com/ninja-build/ninja/commit/afcd4a146fb82843f6ff695f89504ce4ca65ddfd
|
||||||
|
|
||||||
|
From afcd4a146fb82843f6ff695f89504ce4ca65ddfd Mon Sep 17 00:00:00 2001
|
||||||
|
From: David 'Digit' Turner <digit+github@google.com>
|
||||||
|
Date: Sun, 12 May 2024 23:45:28 +0200
|
||||||
|
Subject: [PATCH] configure.py: Support --gtest-source-dir to build tests.
|
||||||
|
|
||||||
|
Allow the Ninja build plan generated by configure.py to
|
||||||
|
build `ninja_test` by compiling GoogleTest from source if
|
||||||
|
the path to the library if passed through the new option
|
||||||
|
`--gtest-source-dir` or the GTEST_SOURCE_DIR environment
|
||||||
|
variable.
|
||||||
|
|
||||||
|
For simplicity, probing for an installed version of the
|
||||||
|
library, and linking to it, is not supported (use the
|
||||||
|
CMake build for this).
|
||||||
|
|
||||||
|
This also removes the obsolete `--gtest-dir` option.
|
||||||
|
|
||||||
|
Fixes #2447
|
||||||
|
---
|
||||||
|
configure.py | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++-
|
||||||
|
2 files changed, 95 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/configure.py b/configure.py
|
||||||
|
index f9e49f9cdf..2b16618c43 100755
|
||||||
|
--- a/configure.py
|
||||||
|
+++ b/configure.py
|
||||||
|
@@ -223,7 +223,10 @@ def _run_command(self, cmdline: str) -> None:
|
||||||
|
parser.add_option('--profile', metavar='TYPE',
|
||||||
|
choices=profilers,
|
||||||
|
help='enable profiling (' + '/'.join(profilers) + ')',)
|
||||||
|
-parser.add_option('--with-gtest', metavar='PATH', help='ignored')
|
||||||
|
+parser.add_option('--gtest-source-dir', metavar='PATH',
|
||||||
|
+ help='Path to GoogleTest source directory. If not provided ' +
|
||||||
|
+ 'GTEST_SOURCE_DIR will be probed in the environment. ' +
|
||||||
|
+ 'Tests will not be built without a value.')
|
||||||
|
parser.add_option('--with-python', metavar='EXE',
|
||||||
|
help='use EXE as the Python interpreter',
|
||||||
|
default=os.path.basename(sys.executable))
|
||||||
|
@@ -435,6 +438,7 @@ def shell_escape(str: str) -> str:
|
||||||
|
if 'LDFLAGS' in configure_env:
|
||||||
|
ldflags.append(configure_env['LDFLAGS'])
|
||||||
|
n.variable('ldflags', ' '.join(shell_escape(flag) for flag in ldflags))
|
||||||
|
+
|
||||||
|
n.newline()
|
||||||
|
|
||||||
|
if platform.is_msvc():
|
||||||
|
@@ -592,6 +596,83 @@ def has_re2c() -> bool:
|
||||||
|
# build.ninja file.
|
||||||
|
n = ninja_writer
|
||||||
|
|
||||||
|
+# Build the ninja_test executable only if the GTest source directory
|
||||||
|
+# is provided explicitly. Either from the environment with GTEST_SOURCE_DIR
|
||||||
|
+# or with the --gtest-source-dir command-line option.
|
||||||
|
+#
|
||||||
|
+# Do not try to look for an installed binary version, and link against it
|
||||||
|
+# because doing so properly is platform-specific (use the CMake build for
|
||||||
|
+# this).
|
||||||
|
+if options.gtest_source_dir:
|
||||||
|
+ gtest_src_dir = options.gtest_source_dir
|
||||||
|
+else:
|
||||||
|
+ gtest_src_dir = os.environ.get('GTEST_SOURCE_DIR')
|
||||||
|
+
|
||||||
|
+if gtest_src_dir:
|
||||||
|
+ # Verify GoogleTest source directory, and add its include directory
|
||||||
|
+ # to the global include search path (even for non-test sources) to
|
||||||
|
+ # keep the build plan generation simple.
|
||||||
|
+ gtest_all_cc = os.path.join(gtest_src_dir, 'googletest', 'src', 'gtest-all.cc')
|
||||||
|
+ if not os.path.exists(gtest_all_cc):
|
||||||
|
+ print('ERROR: Missing GoogleTest source file: %s' % gtest_all_cc)
|
||||||
|
+ sys.exit(1)
|
||||||
|
+
|
||||||
|
+ n.comment('Tests all build into ninja_test executable.')
|
||||||
|
+
|
||||||
|
+ # Test-specific version of cflags, must include the GoogleTest
|
||||||
|
+ # include directory. Also GoogleTest can only build with a C++14 compiler.
|
||||||
|
+ test_cflags = [f.replace('std=c++11', 'std=c++14') for f in cflags]
|
||||||
|
+ test_cflags.append('-I' + os.path.join(gtest_src_dir, 'googletest', 'include'))
|
||||||
|
+
|
||||||
|
+ test_variables = [('cflags', test_cflags)]
|
||||||
|
+ if platform.is_msvc():
|
||||||
|
+ test_variables += [('pdb', 'ninja_test.pdb')]
|
||||||
|
+
|
||||||
|
+ test_names = [
|
||||||
|
+ 'build_log_test',
|
||||||
|
+ 'build_test',
|
||||||
|
+ 'clean_test',
|
||||||
|
+ 'clparser_test',
|
||||||
|
+ 'depfile_parser_test',
|
||||||
|
+ 'deps_log_test',
|
||||||
|
+ 'disk_interface_test',
|
||||||
|
+ 'dyndep_parser_test',
|
||||||
|
+ 'edit_distance_test',
|
||||||
|
+ 'graph_test',
|
||||||
|
+ 'json_test',
|
||||||
|
+ 'lexer_test',
|
||||||
|
+ 'manifest_parser_test',
|
||||||
|
+ 'ninja_test',
|
||||||
|
+ 'state_test',
|
||||||
|
+ 'string_piece_util_test',
|
||||||
|
+ 'subprocess_test',
|
||||||
|
+ 'test',
|
||||||
|
+ 'util_test',
|
||||||
|
+ ]
|
||||||
|
+ if platform.is_windows():
|
||||||
|
+ test_names += [
|
||||||
|
+ 'includes_normalize_test',
|
||||||
|
+ 'msvc_helper_test',
|
||||||
|
+ ]
|
||||||
|
+
|
||||||
|
+ objs = []
|
||||||
|
+ for name in test_names:
|
||||||
|
+ objs += cxx(name, variables=test_variables)
|
||||||
|
+
|
||||||
|
+ # Build GTest as a monolithic source file.
|
||||||
|
+ # This requires one extra include search path, so replace the
|
||||||
|
+ # value of 'cflags' in our list.
|
||||||
|
+ gtest_all_variables = test_variables[1:] + [
|
||||||
|
+ ('cflags', test_cflags + ['-I' + os.path.join(gtest_src_dir, 'googletest') ]),
|
||||||
|
+ ]
|
||||||
|
+ # Do not use cxx() directly to ensure the object file is under $builddir.
|
||||||
|
+ objs += n.build(built('gtest_all' + objext), 'cxx', gtest_all_cc, variables=gtest_all_variables)
|
||||||
|
+
|
||||||
|
+ ninja_test = n.build(binary('ninja_test'), 'link', objs, implicit=ninja_lib,
|
||||||
|
+ variables=[('libs', libs)])
|
||||||
|
+ n.newline()
|
||||||
|
+ all_targets += ninja_test
|
||||||
|
+
|
||||||
|
n.comment('Ancillary executables.')
|
||||||
|
|
||||||
|
if platform.is_aix() and '-maix64' not in ldflags:
|
||||||
|
|
@ -7,6 +7,9 @@ PYTHON_COMPAT=( python3_{10..13} )
|
|||||||
|
|
||||||
inherit bash-completion-r1 edo python-any-r1 toolchain-funcs
|
inherit bash-completion-r1 edo python-any-r1 toolchain-funcs
|
||||||
|
|
||||||
|
DESCRIPTION="A small build system similar to make"
|
||||||
|
HOMEPAGE="https://ninja-build.org/"
|
||||||
|
|
||||||
if [[ ${PV} == 9999 ]]; then
|
if [[ ${PV} == 9999 ]]; then
|
||||||
EGIT_REPO_URI="https://github.com/ninja-build/ninja.git"
|
EGIT_REPO_URI="https://github.com/ninja-build/ninja.git"
|
||||||
inherit git-r3
|
inherit git-r3
|
||||||
@ -15,12 +18,13 @@ else
|
|||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
DESCRIPTION="A small build system similar to make"
|
GTEST_VER=1.14.0
|
||||||
HOMEPAGE="https://ninja-build.org/"
|
SRC_URI+=" test? ( https://github.com/google/googletest/archive/refs/tags/v${GTEST_VER}.tar.gz -> gtest-${GTEST_VER}.tar.gz )"
|
||||||
|
|
||||||
LICENSE="Apache-2.0"
|
LICENSE="Apache-2.0"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
IUSE="doc"
|
IUSE="doc test"
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
BDEPEND="
|
BDEPEND="
|
||||||
${PYTHON_DEPS}
|
${PYTHON_DEPS}
|
||||||
@ -36,14 +40,20 @@ PDEPEND="
|
|||||||
app-alternatives/ninja
|
app-alternatives/ninja
|
||||||
"
|
"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}"/ninja-cflags.patch
|
||||||
|
"${FILESDIR}"/${P}-restore-tests-bootstrap.patch
|
||||||
|
)
|
||||||
|
|
||||||
pkg_setup() {
|
pkg_setup() {
|
||||||
:
|
:
|
||||||
}
|
}
|
||||||
|
|
||||||
src_prepare() {
|
src_unpack() {
|
||||||
local PATCHES=(
|
if [[ ${PV} == 9999 ]] ; then
|
||||||
"${FILESDIR}"/ninja-cflags.patch
|
git-r3_src_unpack
|
||||||
)
|
fi
|
||||||
|
|
||||||
default
|
default
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -55,7 +65,18 @@ bootstrap() {
|
|||||||
local -x CXXFLAGS="${BUILD_CXXFLAGS} -D_FILE_OFFSET_BITS=64"
|
local -x CXXFLAGS="${BUILD_CXXFLAGS} -D_FILE_OFFSET_BITS=64"
|
||||||
local -x LDFLAGS=${BUILD_LDFLAGS}
|
local -x LDFLAGS=${BUILD_LDFLAGS}
|
||||||
fi
|
fi
|
||||||
edo ${EPYTHON} configure.py --with-python=python --bootstrap --verbose
|
|
||||||
|
local args=(
|
||||||
|
--with-python=python
|
||||||
|
--bootstrap
|
||||||
|
--verbose
|
||||||
|
)
|
||||||
|
|
||||||
|
if use test; then
|
||||||
|
args+=( --gtest-source-dir="${WORKDIR}"/googletest-${GTEST_VER} )
|
||||||
|
fi
|
||||||
|
|
||||||
|
edo ${EPYTHON} configure.py "${args[@]}"
|
||||||
}
|
}
|
||||||
|
|
||||||
src_compile() {
|
src_compile() {
|
||||||
@ -77,6 +98,15 @@ src_compile() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
if ! tc-is-cross-compiler; then
|
||||||
|
# Bug 485772
|
||||||
|
ulimit -n 2048
|
||||||
|
edo ./ninja -v ninja_test
|
||||||
|
edo ./ninja_test
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
src_install() {
|
src_install() {
|
||||||
newbin ninja{,-reference}
|
newbin ninja{,-reference}
|
||||||
|
|
||||||
|
@ -7,6 +7,9 @@ PYTHON_COMPAT=( python3_{10..13} )
|
|||||||
|
|
||||||
inherit bash-completion-r1 edo python-any-r1 toolchain-funcs
|
inherit bash-completion-r1 edo python-any-r1 toolchain-funcs
|
||||||
|
|
||||||
|
DESCRIPTION="A small build system similar to make"
|
||||||
|
HOMEPAGE="https://ninja-build.org/"
|
||||||
|
|
||||||
if [[ ${PV} == 9999 ]]; then
|
if [[ ${PV} == 9999 ]]; then
|
||||||
EGIT_REPO_URI="https://github.com/ninja-build/ninja.git"
|
EGIT_REPO_URI="https://github.com/ninja-build/ninja.git"
|
||||||
inherit git-r3
|
inherit git-r3
|
||||||
@ -15,12 +18,13 @@ else
|
|||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
DESCRIPTION="A small build system similar to make"
|
GTEST_VER=1.14.0
|
||||||
HOMEPAGE="https://ninja-build.org/"
|
SRC_URI+=" test? ( https://github.com/google/googletest/archive/refs/tags/v${GTEST_VER}.tar.gz -> gtest-${GTEST_VER}.tar.gz )"
|
||||||
|
|
||||||
LICENSE="Apache-2.0"
|
LICENSE="Apache-2.0"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
IUSE="doc"
|
IUSE="doc test"
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
BDEPEND="
|
BDEPEND="
|
||||||
${PYTHON_DEPS}
|
${PYTHON_DEPS}
|
||||||
@ -36,14 +40,19 @@ PDEPEND="
|
|||||||
app-alternatives/ninja
|
app-alternatives/ninja
|
||||||
"
|
"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}"/ninja-cflags.patch
|
||||||
|
)
|
||||||
|
|
||||||
pkg_setup() {
|
pkg_setup() {
|
||||||
:
|
:
|
||||||
}
|
}
|
||||||
|
|
||||||
src_prepare() {
|
src_unpack() {
|
||||||
local PATCHES=(
|
if [[ ${PV} == 9999 ]] ; then
|
||||||
"${FILESDIR}"/ninja-cflags.patch
|
git-r3_src_unpack
|
||||||
)
|
fi
|
||||||
|
|
||||||
default
|
default
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -55,7 +64,15 @@ bootstrap() {
|
|||||||
local -x CXXFLAGS="${BUILD_CXXFLAGS} -D_FILE_OFFSET_BITS=64"
|
local -x CXXFLAGS="${BUILD_CXXFLAGS} -D_FILE_OFFSET_BITS=64"
|
||||||
local -x LDFLAGS=${BUILD_LDFLAGS}
|
local -x LDFLAGS=${BUILD_LDFLAGS}
|
||||||
fi
|
fi
|
||||||
edo ${EPYTHON} configure.py --with-python=python --bootstrap --verbose
|
|
||||||
|
local bootstrap_args=(
|
||||||
|
--with-python=python
|
||||||
|
--bootstrap
|
||||||
|
--verbose
|
||||||
|
$(usev test --gtest-source-dir="${WORKDIR}"/googletest-${GTEST_VER})
|
||||||
|
)
|
||||||
|
|
||||||
|
edo ${EPYTHON} configure.py "${bootstrap_args[@]}"
|
||||||
}
|
}
|
||||||
|
|
||||||
src_compile() {
|
src_compile() {
|
||||||
@ -77,6 +94,15 @@ src_compile() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
if ! tc-is-cross-compiler; then
|
||||||
|
# Bug 485772
|
||||||
|
ulimit -n 2048
|
||||||
|
edo ./ninja -v ninja_test
|
||||||
|
edo ./ninja_test
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
src_install() {
|
src_install() {
|
||||||
newbin ninja{,-reference}
|
newbin ninja{,-reference}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user