eclass/cmake: Sync with Gentoo

It's from Gentoo commit b6e2235a3982cad4d74bb7eb49e858835344c3ba.
This commit is contained in:
Flatcar Buildbot 2023-07-03 07:15:25 +00:00 committed by Krzesimir Nowak
parent f02722d477
commit 3759d2bc46

View File

@ -293,6 +293,15 @@ _cmake_check_build_dir() {
BUILD_DIR="${CMAKE_USE_DIR}" BUILD_DIR="${CMAKE_USE_DIR}"
else else
: "${BUILD_DIR:=${CMAKE_USE_DIR}_build}" : "${BUILD_DIR:=${CMAKE_USE_DIR}_build}"
# Avoid creating ${WORKDIR}_build (which is above WORKDIR).
# TODO: For EAPI > 8, we should ban S=WORKDIR for CMake.
# See bug #889420.
if [[ ${S} == "${WORKDIR}" && ${BUILD_DIR} == "${WORKDIR}_build" ]] ; then
eqawarn "QA notice: S=WORKDIR is deprecated for cmake.eclass."
eqawarn "Please relocate the sources in src_unpack."
BUILD_DIR="${WORKDIR}"/${P}_build
fi
fi fi
einfo "Source directory (CMAKE_USE_DIR): \"${CMAKE_USE_DIR}\"" einfo "Source directory (CMAKE_USE_DIR): \"${CMAKE_USE_DIR}\""
@ -484,17 +493,17 @@ cmake_src_configure() {
cat >> "${toolchain_file}" <<- _EOF_ || die cat >> "${toolchain_file}" <<- _EOF_ || die
set(CMAKE_SYSTEM_NAME "${sysname}") set(CMAKE_SYSTEM_NAME "${sysname}")
_EOF_ _EOF_
fi
if [ "${SYSROOT:-/}" != "/" ] ; then if [[ ${SYSROOT:-/} != / ]] ; then
# When cross-compiling with a sysroot (e.g. with crossdev's emerge wrappers) # When building with a sysroot (e.g. with crossdev's emerge wrappers)
# we need to tell cmake to use libs/headers from the sysroot but programs from / only. # we need to tell cmake to use libs/headers from the sysroot but programs from / only.
cat >> "${toolchain_file}" <<- _EOF_ || die cat >> "${toolchain_file}" <<- _EOF_ || die
set(CMAKE_SYSROOT "${ESYSROOT}") set(CMAKE_SYSROOT "${ESYSROOT}")
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
_EOF_ _EOF_
fi
fi fi
if use prefix-guest; then if use prefix-guest; then