mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-05 05:04:44 +02:00

ctest automatically optimizes the order of (parallel) test execution based on historic test case runtime via the COST property (see [0]), which can have a significant impact on overall test run times. Sadly this feature is broken in CMake < 4.0.0 for test cases that have spaces in their name (see [1]). This commit is a backport of f24178f3 (which itself backports the upstream fix). The patch was adapted slightly to apply cleanly to the older CMake version in scarthgap. As repeated test runs are expected to mainly take place inside the SDK, the patch is only applied to 'nativesdk' builds. [0]: https://cmake.org/cmake/help/latest/prop_test/COST.html [1]: https://gitlab.kitware.com/cmake/cmake/-/issues/26594 Reported-By: John Drouhard <john@drouhard.dev> (From OE-Core rev: cfa97a50e06fb0fcc7cbc0ada54ce7ad5ba29ebe) Signed-off-by: Moritz Haase <Moritz.Haase@bmw.de> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Steve Sakoman <steve@sakoman.com>
68 lines
2.4 KiB
BlitzBasic
68 lines
2.4 KiB
BlitzBasic
require cmake.inc
|
|
inherit native
|
|
|
|
DEPENDS += "bzip2-replacement-native xz-native zlib-native ncurses-native zstd-native openssl-native"
|
|
|
|
SRC_URI += "file://OEToolchainConfig.cmake \
|
|
file://environment.d-cmake.sh \
|
|
file://0005-Disable-use-of-ext2fs-ext2_fs.h-by-cmake-s-internal-.patch \
|
|
file://0001-CMakeLists.txt-disable-USE_NGHTTP2.patch \
|
|
"
|
|
|
|
LICENSE:append = " & BSD-1-Clause & MIT & BSD-2-Clause & curl"
|
|
LIC_FILES_CHKSUM:append = " \
|
|
file://Utilities/cmjsoncpp/LICENSE;md5=5d73c165a0f9e86a1342f32d19ec5926 \
|
|
file://Utilities/cmlibarchive/COPYING;md5=d499814247adaee08d88080841cb5665 \
|
|
file://Utilities/cmexpat/COPYING;md5=9e2ce3b3c4c0f2670883a23bbd7c37a9 \
|
|
file://Utilities/cmlibrhash/COPYING;md5=a8c2a557a5c53b1c12cddbee98c099af \
|
|
file://Utilities/cmlibuv/LICENSE;md5=ad93ca1fffe931537fcf64f6fcce084d \
|
|
file://Utilities/cmcurl/COPYING;md5=db8448a1e43eb2125f7740fc397db1f6 \
|
|
"
|
|
|
|
B = "${WORKDIR}/build"
|
|
do_configure[cleandirs] = "${B}"
|
|
|
|
CMAKE_EXTRACONF = "\
|
|
-DCMAKE_LIBRARY_PATH=${STAGING_LIBDIR_NATIVE} \
|
|
-DBUILD_CursesDialog=1 \
|
|
-DCMAKE_USE_SYSTEM_LIBRARIES=1 \
|
|
-DCMAKE_USE_SYSTEM_LIBRARY_JSONCPP=0 \
|
|
-DCMAKE_USE_SYSTEM_LIBRARY_CPPDAP=0 \
|
|
-DCMAKE_USE_SYSTEM_LIBRARY_LIBARCHIVE=0 \
|
|
-DCMAKE_USE_SYSTEM_LIBRARY_LIBUV=0 \
|
|
-DCMAKE_USE_SYSTEM_LIBRARY_LIBRHASH=0 \
|
|
-DCMAKE_USE_SYSTEM_LIBRARY_EXPAT=0 \
|
|
-DCMAKE_USE_SYSTEM_LIBRARY_CURL=0 \
|
|
-DENABLE_ACL=0 -DHAVE_ACL_LIBACL_H=0 \
|
|
-DHAVE_SYS_ACL_H=0 \
|
|
"
|
|
|
|
do_configure () {
|
|
${S}/bootstrap --verbose --prefix=${prefix} \
|
|
${@oe.utils.parallel_make_argument(d, '--parallel=%d')} \
|
|
${@bb.utils.contains('CCACHE', 'ccache ', '--enable-ccache', '', d)} \
|
|
-- ${CMAKE_EXTRACONF}
|
|
}
|
|
|
|
do_compile() {
|
|
oe_runmake
|
|
}
|
|
|
|
do_install() {
|
|
oe_runmake 'DESTDIR=${D}' install
|
|
|
|
# The following codes are here because eSDK needs to provide compatibility
|
|
# for SDK. That is, eSDK could also be used like traditional SDK.
|
|
mkdir -p ${D}${datadir}/cmake
|
|
install -m 644 ${WORKDIR}/OEToolchainConfig.cmake ${D}${datadir}/cmake/
|
|
mkdir -p ${D}${base_prefix}/environment-setup.d
|
|
install -m 644 ${WORKDIR}/environment.d-cmake.sh ${D}${base_prefix}/environment-setup.d/cmake.sh
|
|
|
|
# Help docs create tons of files in the native sysroot and aren't needed there
|
|
rm -rf ${D}${datadir}/cmake-*/Help
|
|
}
|
|
|
|
do_compile[progress] = "percent"
|
|
|
|
SYSROOT_DIRS_NATIVE += "${datadir}/cmake ${base_prefix}/environment-setup.d"
|