commit:     3e744f5adb5c46eb013d3f1228f607b094ac212a
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Mon Aug  1 20:17:14 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Aug  1 20:17:59 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3e744f5a

cmake-utils.eclass: drop last-rited eclass

Use cmake.eclass instead.

Closes: https://bugs.gentoo.org/834110
Signed-off-by: Sam James <sam <AT> gentoo.org>

 eclass/cmake-utils.eclass | 851 ----------------------------------------------
 1 file changed, 851 deletions(-)

diff --git a/eclass/cmake-utils.eclass b/eclass/cmake-utils.eclass
deleted file mode 100644
index a6dd902b5f33..000000000000
--- a/eclass/cmake-utils.eclass
+++ /dev/null
@@ -1,851 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-# @DEAD
-# @ECLASS: cmake-utils.eclass
-# @MAINTAINER:
-# k...@gentoo.org
-# @AUTHOR:
-# Tomáš Chvátal <scarab...@gentoo.org>
-# Maciej Mrozowski <reave...@gentoo.org>
-# (undisclosed contributors)
-# Original author: Zephyrus (zephy...@mirach.it)
-# @SUPPORTED_EAPIS: 5 6 7
-# @PROVIDES: ninja-utils
-# @BLURB: common ebuild functions for cmake-based packages
-# @DEPRECATED: cmake.eclass
-# @DESCRIPTION:
-# DEPRECATED: This no longer receives any changes. Everyone must port to 
cmake.eclass.
-# The cmake-utils eclass makes creating ebuilds for cmake-based packages much 
easier.
-# It provides all inherited features (DOCS, HTML_DOCS, PATCHES) along with 
out-of-source
-# builds (default), in-source builds and an implementation of the well-known 
use_enable
-# and use_with functions for CMake.
-
-if [[ -z ${_CMAKE_UTILS_ECLASS} ]]; then
-_CMAKE_UTILS_ECLASS=1
-
-# @ECLASS_VARIABLE: BUILD_DIR
-# @DESCRIPTION:
-# Build directory where all cmake processed files should be generated.
-# For in-source build it's fixed to ${CMAKE_USE_DIR}.
-# For out-of-source build it can be overridden, by default it uses
-# ${WORKDIR}/${P}_build.
-#
-# This variable has been called CMAKE_BUILD_DIR formerly.
-# It is set under that name for compatibility.
-
-# @ECLASS_VARIABLE: CMAKE_BINARY
-# @DESCRIPTION:
-# Eclass can use different cmake binary than the one provided in by system.
-: ${CMAKE_BINARY:=cmake}
-
-# @ECLASS_VARIABLE: CMAKE_BUILD_TYPE
-# @DESCRIPTION:
-# Set to override default CMAKE_BUILD_TYPE. Only useful for packages
-# known to make use of "if (CMAKE_BUILD_TYPE MATCHES xxx)".
-# If about to be set - needs to be set before invoking 
cmake-utils_src_configure.
-# You usualy do *NOT* want nor need to set it as it pulls CMake default 
build-type
-# specific compiler flags overriding make.conf.
-: ${CMAKE_BUILD_TYPE:=Gentoo}
-
-# @ECLASS_VARIABLE: CMAKE_IN_SOURCE_BUILD
-# @DEFAULT_UNSET
-# @DESCRIPTION:
-# Set to enable in-source build.
-
-# @ECLASS_VARIABLE: CMAKE_MAKEFILE_GENERATOR
-# @DEFAULT_UNSET
-# @DESCRIPTION:
-# Specify a makefile generator to be used by cmake.
-# At this point only "emake" and "ninja" are supported.
-# In EAPI 7 and above, the default is set to "ninja",
-# whereas in EAPIs below 7, it is set to "emake".
-
-# @ECLASS_VARIABLE: CMAKE_MIN_VERSION
-# @DESCRIPTION:
-# Specify the minimum required CMake version.
-: ${CMAKE_MIN_VERSION:=3.9.6}
-
-# @ECLASS_VARIABLE: CMAKE_REMOVE_MODULES
-# @DESCRIPTION:
-# Do we want to remove anything? yes or whatever else for no
-: ${CMAKE_REMOVE_MODULES:=yes}
-
-# @ECLASS_VARIABLE: CMAKE_REMOVE_MODULES_LIST
-# @DESCRIPTION:
-# Space-separated list of CMake modules that will be removed in $S during 
src_prepare,
-# in order to force packages to use the system version.
-: ${CMAKE_REMOVE_MODULES_LIST:=FindBLAS FindLAPACK}
-
-# @ECLASS_VARIABLE: CMAKE_USE_DIR
-# @DESCRIPTION:
-# Sets the directory where we are working with cmake.
-# For example when application uses autotools and only one
-# plugin needs to be done by cmake.
-# By default it uses ${S}.
-
-# @ECLASS_VARIABLE: CMAKE_VERBOSE
-# @DESCRIPTION:
-# Set to OFF to disable verbose messages during compilation
-: ${CMAKE_VERBOSE:=ON}
-
-# @ECLASS_VARIABLE: CMAKE_WARN_UNUSED_CLI
-# @DESCRIPTION:
-# Warn about variables that are declared on the command line
-# but not used. Might give false-positives.
-# "no" to disable (default) or anything else to enable.
-
-# @ECLASS_VARIABLE: CMAKE_EXTRA_CACHE_FILE
-# @USER_VARIABLE
-# @DEFAULT_UNSET
-# @DESCRIPTION:
-# Specifies an extra cache file to pass to cmake. This is the analog of 
EXTRA_ECONF
-# for econf and is needed to pass TRY_RUN results when cross-compiling.
-# Should be set by user in a per-package basis in /etc/portage/package.env.
-
-# @ECLASS_VARIABLE: CMAKE_UTILS_QA_SRC_DIR_READONLY
-# @USER_VARIABLE
-# @DEFAULT_UNSET
-# @DESCRIPTION:
-# After running cmake-utils_src_prepare, sets ${S} to read-only. This is
-# a user flag and should under _no circumstances_ be set in the ebuild.
-# Helps in improving QA of build systems that write to source tree.
-
-case ${EAPI} in
-       5) : ${CMAKE_WARN_UNUSED_CLI:=no} ;;
-       6|7) : ${CMAKE_WARN_UNUSED_CLI:=yes} ;;
-       *) die "EAPI=${EAPI:-0} is not supported" ;;
-esac
-
-inherit toolchain-funcs ninja-utils flag-o-matic multiprocessing xdg-utils
-
-case ${EAPI} in
-       [56])
-               : ${CMAKE_MAKEFILE_GENERATOR:=emake}
-               inherit eutils multilib
-               ;;
-       *)
-               : ${CMAKE_MAKEFILE_GENERATOR:=ninja}
-               ;;
-esac
-
-EXPORT_FUNCTIONS src_prepare src_configure src_compile src_test src_install
-
-if [[ ${WANT_CMAKE} ]]; then
-       if [[ ${EAPI} != [56] ]]; then
-               die "\${WANT_CMAKE} has been removed and is a no-op now"
-       else
-               eqawarn "\${WANT_CMAKE} has been removed and is a no-op now"
-       fi
-fi
-[[ ${PREFIX} ]] && die "\${PREFIX} has been removed and is a no-op now"
-
-case ${CMAKE_MAKEFILE_GENERATOR} in
-       emake)
-               BDEPEND="sys-devel/make"
-               ;;
-       ninja)
-               BDEPEND="dev-util/ninja"
-               ;;
-       *)
-               eerror "Unknown value for \${CMAKE_MAKEFILE_GENERATOR}"
-               die "Value ${CMAKE_MAKEFILE_GENERATOR} is not supported"
-               ;;
-esac
-
-if [[ ${PN} != cmake ]]; then
-       BDEPEND+=" >=dev-util/cmake-${CMAKE_MIN_VERSION}"
-fi
-
-case ${EAPI} in
-       7) ;;
-       *) DEPEND=" ${BDEPEND}" ;;
-esac
-
-# Internal functions used by cmake-utils_use_*
-_cmake_use_me_now() {
-       debug-print-function ${FUNCNAME} "$@"
-
-       local arg=$2
-       [[ ! -z $3 ]] && arg=$3
-
-       [[ ${EAPI} == 5 ]] || die "${FUNCNAME[1]} is banned in EAPI 6 and 
later: use -D$1<related_CMake_variable>=\"\$(usex $2)\" instead"
-
-       local uper capitalised x
-       [[ -z $2 ]] && die "cmake-utils_use-$1 <USE flag> [<flag name>]"
-       if [[ ! -z $3 ]]; then
-               # user specified the use name so use it
-               echo "-D$1$3=$(use $2 && echo ON || echo OFF)"
-       else
-               # use all various most used combinations
-               uper=$(echo ${2} | tr '[:lower:]' '[:upper:]')
-               capitalised=$(echo ${2} | sed 's/\<\(.\)\([^ ]*\)/\u\1\L\2/g')
-               for x in $2 $uper $capitalised; do
-                       echo "-D$1$x=$(use $2 && echo ON || echo OFF) "
-               done
-       fi
-}
-_cmake_use_me_now_inverted() {
-       debug-print-function ${FUNCNAME} "$@"
-
-       local arg=$2
-       [[ ! -z $3 ]] && arg=$3
-
-       if [[ ${EAPI} != 5 && "${FUNCNAME[1]}" != cmake-utils_use_find_package 
]] ; then
-               die "${FUNCNAME[1]} is banned in EAPI 6 and later: use 
-D$1<related_CMake_variable>=\"\$(usex $2)\" instead"
-       fi
-
-       local uper capitalised x
-       [[ -z $2 ]] && die "cmake-utils_use-$1 <USE flag> [<flag name>]"
-       if [[ ! -z $3 ]]; then
-               # user specified the use name so use it
-               echo "-D$1$3=$(use $2 && echo OFF || echo ON)"
-       else
-               # use all various most used combinations
-               uper=$(echo ${2} | tr '[:lower:]' '[:upper:]')
-               capitalised=$(echo ${2} | sed 's/\<\(.\)\([^ ]*\)/\u\1\L\2/g')
-               for x in $2 $uper $capitalised; do
-                       echo "-D$1$x=$(use $2 && echo OFF || echo ON) "
-               done
-       fi
-}
-
-# Determine using IN or OUT source build
-_cmake_check_build_dir() {
-       : ${CMAKE_USE_DIR:=${S}}
-       if [[ -n ${CMAKE_IN_SOURCE_BUILD} ]]; then
-               # we build in source dir
-               BUILD_DIR="${CMAKE_USE_DIR}"
-       else
-               # Respect both the old variable and the new one, depending
-               # on which one was set by the ebuild.
-               if [[ ! ${BUILD_DIR} && ${CMAKE_BUILD_DIR} ]]; then
-                       if [[ ${EAPI} != [56] ]]; then
-                               eerror "The CMAKE_BUILD_DIR variable has been 
renamed to BUILD_DIR."
-                               die "The ebuild must be migrated to BUILD_DIR."
-                       else
-                               eqawarn "The CMAKE_BUILD_DIR variable has been 
renamed to BUILD_DIR."
-                               eqawarn "Please migrate the ebuild to use the 
new one."
-                       fi
-
-                       # In the next call, both variables will be set already
-                       # and we'd have to know which one takes precedence.
-                       _RESPECT_CMAKE_BUILD_DIR=1
-               fi
-
-               if [[ ${_RESPECT_CMAKE_BUILD_DIR} ]]; then
-                       BUILD_DIR=${CMAKE_BUILD_DIR:-${WORKDIR}/${P}_build}
-               else
-                       : ${BUILD_DIR:=${WORKDIR}/${P}_build}
-               fi
-       fi
-
-       # Backwards compatibility for getting the value.
-       [[ ${EAPI} == [56] ]] && CMAKE_BUILD_DIR=${BUILD_DIR}
-
-       mkdir -p "${BUILD_DIR}" || die
-       echo ">>> Working in BUILD_DIR: \"$BUILD_DIR\""
-}
-
-# Determine which generator to use
-_cmake_generator_to_use() {
-       local generator_name
-
-       case ${CMAKE_MAKEFILE_GENERATOR} in
-               ninja)
-                       # if ninja is enabled but not installed, the build 
could fail
-                       # this could happen if ninja is manually enabled (eg. 
make.conf) but not installed
-                       case ${EAPI} in
-                               5|6)
-                                       if ! ROOT=/ has_version dev-util/ninja; 
then
-                                               die "CMAKE_MAKEFILE_GENERATOR 
is set to ninja, but ninja is not installed. Please install dev-util/ninja or 
unset CMAKE_MAKEFILE_GENERATOR."
-                                       fi
-                               ;;
-                               *)
-                                       if ! has_version -b dev-util/ninja; then
-                                               die "CMAKE_MAKEFILE_GENERATOR 
is set to ninja, but ninja is not installed. Please install dev-util/ninja or 
unset CMAKE_MAKEFILE_GENERATOR."
-                                       fi
-                               ;;
-                       esac
-                       generator_name="Ninja"
-                       ;;
-               emake)
-                       generator_name="Unix Makefiles"
-                       ;;
-               *)
-                       eerror "Unknown value for \${CMAKE_MAKEFILE_GENERATOR}"
-                       die "Value ${CMAKE_MAKEFILE_GENERATOR} is not supported"
-                       ;;
-       esac
-
-       echo ${generator_name}
-}
-
-# @FUNCTION: cmake_comment_add_subdirectory
-# @USAGE: <subdirectory>
-# @DESCRIPTION:
-# Comment out one or more add_subdirectory calls in CMakeLists.txt in the 
current directory
-cmake_comment_add_subdirectory() {
-       if [[ -z ${1} ]]; then
-               die "comment_add_subdirectory must be passed at least one 
directory name to comment"
-       fi
-
-       if [[ -e "CMakeLists.txt" ]]; then
-               local d
-               for d in $@; do
-                       sed -e 
"/add_subdirectory[[:space:]]*([[:space:]]*${d//\//\\/}[[:space:]]*)/I 
s/^/#DONOTCOMPILE /" \
-                               -i CMakeLists.txt || die "failed to comment 
add_subdirectory(${d})"
-               done
-       fi
-}
-
-# @FUNCTION: comment_add_subdirectory
-# @USAGE: <subdirectory>
-# @DESCRIPTION:
-# Comment out an add_subdirectory call in CMakeLists.txt in the current 
directory
-# Banned in EAPI 6 and later - use cmake_comment_add_subdirectory instead.
-comment_add_subdirectory() {
-       [[ ${EAPI} == 5 ]] || die "comment_add_subdirectory is banned in EAPI 6 
and later - use cmake_comment_add_subdirectory instead"
-
-       cmake_comment_add_subdirectory "$@"
-}
-
-# @FUNCTION: cmake-utils_use_with
-# @USAGE: <USE flag> [flag name]
-# @DESCRIPTION:
-# Based on use_with. See ebuild(5).
-#
-# `cmake-utils_use_with foo FOO` echoes -DWITH_FOO=ON if foo is enabled
-# and -DWITH_FOO=OFF if it is disabled.
-cmake-utils_use_with() { _cmake_use_me_now WITH_ "$@" ; }
-
-# @FUNCTION: cmake-utils_use_enable
-# @USAGE: <USE flag> [flag name]
-# @DESCRIPTION:
-# Based on use_enable. See ebuild(5).
-#
-# `cmake-utils_use_enable foo FOO` echoes -DENABLE_FOO=ON if foo is enabled
-# and -DENABLE_FOO=OFF if it is disabled.
-cmake-utils_use_enable() { _cmake_use_me_now ENABLE_ "$@" ; }
-
-# @FUNCTION: cmake-utils_use_find_package
-# @USAGE: <USE flag> <package name>
-# @DESCRIPTION:
-# Based on use_enable. See ebuild(5).
-#
-# `cmake-utils_use_find_package foo LibFoo` echoes 
-DCMAKE_DISABLE_FIND_PACKAGE_LibFoo=OFF
-# if foo is enabled and -DCMAKE_DISABLE_FIND_PACKAGE_LibFoo=ON if it is 
disabled.
-# This can be used to make find_package optional.
-cmake-utils_use_find_package() {
-       if [[ ${EAPI} != 5 && "$#" != 2 ]] ; then
-               die "Usage: cmake-utils_use_find_package <USE flag> <package 
name>"
-       fi
-
-       _cmake_use_me_now_inverted CMAKE_DISABLE_FIND_PACKAGE_ "$@" ;
-}
-
-# @FUNCTION: cmake_use_find_package
-# @USAGE: <USE flag> <package name>
-# @DESCRIPTION:
-# Alias for cmake-utils_use_find_package.
-cmake_use_find_package() {
-       if [[ "$#" != 2 ]] ; then
-               die "Usage: cmake_use_find_package <USE flag> <package name>"
-       fi
-
-       cmake-utils_use_find_package "$@" ;
-}
-
-# @FUNCTION: cmake-utils_use_disable
-# @USAGE: <USE flag> [flag name]
-# @DESCRIPTION:
-# Based on inversion of use_enable. See ebuild(5).
-#
-# `cmake-utils_use_enable foo FOO` echoes -DDISABLE_FOO=OFF if foo is enabled
-# and -DDISABLE_FOO=ON if it is disabled.
-cmake-utils_use_disable() { _cmake_use_me_now_inverted DISABLE_ "$@" ; }
-
-# @FUNCTION: cmake-utils_use_no
-# @USAGE: <USE flag> [flag name]
-# @DESCRIPTION:
-# Based on use_disable. See ebuild(5).
-#
-# `cmake-utils_use_no foo FOO` echoes -DNO_FOO=OFF if foo is enabled
-# and -DNO_FOO=ON if it is disabled.
-cmake-utils_use_no() { _cmake_use_me_now_inverted NO_ "$@" ; }
-
-# @FUNCTION: cmake-utils_use_want
-# @USAGE: <USE flag> [flag name]
-# @DESCRIPTION:
-# Based on use_enable. See ebuild(5).
-#
-# `cmake-utils_use_want foo FOO` echoes -DWANT_FOO=ON if foo is enabled
-# and -DWANT_FOO=OFF if it is disabled.
-cmake-utils_use_want() { _cmake_use_me_now WANT_ "$@" ; }
-
-# @FUNCTION: cmake-utils_use_build
-# @USAGE: <USE flag> [flag name]
-# @DESCRIPTION:
-# Based on use_enable. See ebuild(5).
-#
-# `cmake-utils_use_build foo FOO` echoes -DBUILD_FOO=ON if foo is enabled
-# and -DBUILD_FOO=OFF if it is disabled.
-cmake-utils_use_build() { _cmake_use_me_now BUILD_ "$@" ; }
-
-# @FUNCTION: cmake-utils_use_has
-# @USAGE: <USE flag> [flag name]
-# @DESCRIPTION:
-# Based on use_enable. See ebuild(5).
-#
-# `cmake-utils_use_has foo FOO` echoes -DHAVE_FOO=ON if foo is enabled
-# and -DHAVE_FOO=OFF if it is disabled.
-cmake-utils_use_has() { _cmake_use_me_now HAVE_ "$@" ; }
-
-# @FUNCTION: cmake-utils_use_use
-# @USAGE: <USE flag> [flag name]
-# @DESCRIPTION:
-# Based on use_enable. See ebuild(5).
-#
-# `cmake-utils_use_use foo FOO` echoes -DUSE_FOO=ON if foo is enabled
-# and -DUSE_FOO=OFF if it is disabled.
-cmake-utils_use_use() { _cmake_use_me_now USE_ "$@" ; }
-
-# @FUNCTION: cmake-utils_use
-# @USAGE: <USE flag> [flag name]
-# @DESCRIPTION:
-# Based on use_enable. See ebuild(5).
-#
-# `cmake-utils_use foo FOO` echoes -DFOO=ON if foo is enabled
-# and -DFOO=OFF if it is disabled.
-cmake-utils_use() { _cmake_use_me_now "" "$@" ; }
-
-# @FUNCTION: cmake-utils_useno
-# @USAGE: <USE flag> [flag name]
-# @DESCRIPTION:
-# Based on use_enable. See ebuild(5).
-#
-# `cmake-utils_useno foo NOFOO` echoes -DNOFOO=OFF if foo is enabled
-# and -DNOFOO=ON if it is disabled.
-cmake-utils_useno() { _cmake_use_me_now_inverted "" "$@" ; }
-
-# Internal function for modifying hardcoded definitions.
-# Removes dangerous definitions that override Gentoo settings.
-_cmake_modify-cmakelists() {
-       debug-print-function ${FUNCNAME} "$@"
-
-       # Only edit the files once
-       grep -qs "<<< Gentoo configuration >>>" 
"${CMAKE_USE_DIR}"/CMakeLists.txt && return 0
-
-       # Comment out all set (<some_should_be_user_defined_variable> value)
-       find "${CMAKE_USE_DIR}" -name CMakeLists.txt -exec sed \
-               -e 
'/^[[:space:]]*set[[:space:]]*([[:space:]]*CMAKE_BUILD_TYPE\([[:space:]].*)\|)\)/I{s/^/#_cmake_modify_IGNORE
 /g}' \
-               -e 
'/^[[:space:]]*set[[:space:]]*([[:space:]]*CMAKE_COLOR_MAKEFILE[[:space:]].*)/I{s/^/#_cmake_modify_IGNORE
 /g}' \
-               -e 
'/^[[:space:]]*set[[:space:]]*([[:space:]]*CMAKE_INSTALL_PREFIX[[:space:]].*)/I{s/^/#_cmake_modify_IGNORE
 /g}' \
-               -e 
'/^[[:space:]]*set[[:space:]]*([[:space:]]*CMAKE_VERBOSE_MAKEFILE[[:space:]].*)/I{s/^/#_cmake_modify_IGNORE
 /g}' \
-               -i {} + || die "${LINENO}: failed to disable hardcoded settings"
-       local x
-       for x in $(find "${CMAKE_USE_DIR}" -name CMakeLists.txt -exec grep -l 
"^#_cmake_modify_IGNORE" {} +;); do
-               einfo "Hardcoded definition(s) removed in $(echo "${x}" | cut 
-c $((${#CMAKE_USE_DIR}+2))-):"
-               einfo "$(grep -se '^#_cmake_modify_IGNORE' ${x} | cut -c 22-99)"
-       done
-
-       # NOTE Append some useful summary here
-       cat >> "${CMAKE_USE_DIR}"/CMakeLists.txt <<- _EOF_ || die
-
-               MESSAGE(STATUS "<<< Gentoo configuration >>>
-               Build type      \${CMAKE_BUILD_TYPE}
-               Install path    \${CMAKE_INSTALL_PREFIX}
-               Compiler flags:
-               C               \${CMAKE_C_FLAGS}
-               C++             \${CMAKE_CXX_FLAGS}
-               Linker flags:
-               Executable      \${CMAKE_EXE_LINKER_FLAGS}
-               Module          \${CMAKE_MODULE_LINKER_FLAGS}
-               Shared          \${CMAKE_SHARED_LINKER_FLAGS}\n")
-       _EOF_
-}
-
-# temporary function for moving cmake cleanups from from src_configure -> 
src_prepare.
-# bug #378850
-_cmake_cleanup_cmake() {
-       : ${CMAKE_USE_DIR:=${S}}
-
-       if [[ "${CMAKE_REMOVE_MODULES}" == "yes" ]] ; then
-               local name
-               for name in ${CMAKE_REMOVE_MODULES_LIST} ; do
-                       find "${S}" -name ${name}.cmake -exec rm -v {} + || die
-               done
-       fi
-
-       # check if CMakeLists.txt exist and if no then die
-       if [[ ! -e ${CMAKE_USE_DIR}/CMakeLists.txt ]] ; then
-               eerror "Unable to locate CMakeLists.txt under:"
-               eerror "\"${CMAKE_USE_DIR}/CMakeLists.txt\""
-               eerror "Consider not inheriting the cmake eclass."
-               die "FATAL: Unable to find CMakeLists.txt"
-       fi
-
-       # Remove dangerous things.
-       _cmake_modify-cmakelists
-}
-
-# @FUNCTION: cmake-utils_src_prepare
-# @DESCRIPTION:
-# Apply ebuild and user patches.
-cmake-utils_src_prepare() {
-       debug-print-function ${FUNCNAME} "$@"
-
-       pushd "${S}" > /dev/null || die
-
-       if [[ ${EAPI} != 5 ]]; then
-               default_src_prepare
-               _cmake_cleanup_cmake
-       else
-               debug-print "$FUNCNAME: PATCHES=$PATCHES"
-               [[ ${PATCHES[@]} ]] && epatch "${PATCHES[@]}"
-
-               debug-print "$FUNCNAME: applying user patches"
-               epatch_user
-       fi
-
-       popd > /dev/null || die
-
-       # make ${S} read-only in order to detect broken build-systems
-       if [[ ${CMAKE_UTILS_QA_SRC_DIR_READONLY} && ! ${CMAKE_IN_SOURCE_BUILD} 
]]; then
-               chmod -R a-w "${S}"
-       fi
-
-       _CMAKE_UTILS_SRC_PREPARE_HAS_RUN=1
-}
-
-# @VARIABLE: mycmakeargs
-# @DEFAULT_UNSET
-# @DESCRIPTION:
-# Optional cmake defines as a bash array. Should be defined before calling
-# src_configure.
-# @CODE
-# src_configure() {
-#      local mycmakeargs=(
-#              $(cmake-utils_use_with openconnect)
-#      )
-#
-#      cmake-utils_src_configure
-# }
-# @CODE
-
-# @FUNCTION: cmake-utils_src_configure
-# @DESCRIPTION:
-# General function for configuring with cmake. Default behaviour is to start an
-# out-of-source build.
-cmake-utils_src_configure() {
-       debug-print-function ${FUNCNAME} "$@"
-
-       if [[ ! ${_CMAKE_UTILS_SRC_PREPARE_HAS_RUN} ]]; then
-               if [[ ${EAPI} != [56] ]]; then
-                       die "FATAL: cmake-utils_src_prepare has not been run"
-               else
-                       eqawarn "cmake-utils_src_prepare has not been run, 
please open a bug on https://bugs.gentoo.org/";
-               fi
-       fi
-
-       [[ ${EAPI} == 5 ]] && _cmake_cleanup_cmake
-
-       _cmake_check_build_dir
-
-       # Fix xdg collision with sandbox
-       xdg_environment_reset
-
-       # @SEE CMAKE_BUILD_TYPE
-       if [[ ${CMAKE_BUILD_TYPE} = Gentoo ]]; then
-               # Handle release builds
-               if ! has debug ${IUSE//+} || ! use debug; then
-                       local CPPFLAGS=${CPPFLAGS}
-                       append-cppflags -DNDEBUG
-               fi
-       fi
-
-       # Prepare Gentoo override rules (set valid compiler, append CPPFLAGS 
etc.)
-       local build_rules=${BUILD_DIR}/gentoo_rules.cmake
-
-       cat > "${build_rules}" <<- _EOF_ || die
-               SET (CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> <DEFINES> 
<INCLUDES> ${CPPFLAGS} <FLAGS> -o <OBJECT> -c <SOURCE>" CACHE STRING "ASM 
compile command" FORCE)
-               SET (CMAKE_ASM-ATT_COMPILE_OBJECT "<CMAKE_ASM-ATT_COMPILER> 
<DEFINES> <INCLUDES> ${CPPFLAGS} <FLAGS> -o <OBJECT> -c -x assembler <SOURCE>" 
CACHE STRING "ASM-ATT compile command" FORCE)
-               SET (CMAKE_ASM-ATT_LINK_FLAGS "-nostdlib" CACHE STRING "ASM-ATT 
link flags" FORCE)
-               SET (CMAKE_C_COMPILE_OBJECT "<CMAKE_C_COMPILER> <DEFINES> 
<INCLUDES> ${CPPFLAGS} <FLAGS> -o <OBJECT> -c <SOURCE>" CACHE STRING "C compile 
command" FORCE)
-               SET (CMAKE_CXX_COMPILE_OBJECT "<CMAKE_CXX_COMPILER> <DEFINES> 
<INCLUDES> ${CPPFLAGS} <FLAGS> -o <OBJECT> -c <SOURCE>" CACHE STRING "C++ 
compile command" FORCE)
-               SET (CMAKE_Fortran_COMPILE_OBJECT "<CMAKE_Fortran_COMPILER> 
<DEFINES> <INCLUDES> ${FCFLAGS} <FLAGS> -o <OBJECT> -c <SOURCE>" CACHE STRING 
"Fortran compile command" FORCE)
-       _EOF_
-
-       local myCC=$(tc-getCC) myCXX=$(tc-getCXX) myFC=$(tc-getFC)
-
-       # !!! IMPORTANT NOTE !!!
-       # Single slash below is intentional. CMake is weird and wants the
-       # CMAKE_*_VARIABLES split into two elements: the first one with
-       # compiler path, and the second one with all command-line options,
-       # space separated.
-       local toolchain_file=${BUILD_DIR}/gentoo_toolchain.cmake
-       cat > ${toolchain_file} <<- _EOF_ || die
-               SET (CMAKE_ASM_COMPILER "${myCC/ /;}")
-               SET (CMAKE_ASM-ATT_COMPILER "${myCC/ /;}")
-               SET (CMAKE_C_COMPILER "${myCC/ /;}")
-               SET (CMAKE_CXX_COMPILER "${myCXX/ /;}")
-               SET (CMAKE_Fortran_COMPILER "${myFC/ /;}")
-               SET (CMAKE_AR $(type -P $(tc-getAR)) CACHE FILEPATH "Archive 
manager" FORCE)
-               SET (CMAKE_RANLIB $(type -P $(tc-getRANLIB)) CACHE FILEPATH 
"Archive index generator" FORCE)
-               SET (CMAKE_SYSTEM_PROCESSOR "${CHOST%%-*}")
-       _EOF_
-
-       # We are using the C compiler for assembly by default.
-       local -x ASMFLAGS=${CFLAGS}
-       local -x PKG_CONFIG=$(tc-getPKG_CONFIG)
-
-       if tc-is-cross-compiler; then
-               local sysname
-               case "${KERNEL:-linux}" in
-                       Cygwin) sysname="CYGWIN_NT-5.1" ;;
-                       HPUX) sysname="HP-UX" ;;
-                       linux) sysname="Linux" ;;
-                       Winnt)
-                               sysname="Windows"
-                               cat >> "${toolchain_file}" <<- _EOF_ || die
-                                       SET (CMAKE_RC_COMPILER $(tc-getRC))
-                               _EOF_
-                               ;;
-                       *) sysname="${KERNEL}" ;;
-               esac
-
-               cat >> "${toolchain_file}" <<- _EOF_ || die
-                       SET (CMAKE_SYSTEM_NAME "${sysname}")
-               _EOF_
-
-               if [ "${SYSROOT:-/}" != "/" ] ; then
-                       # When cross-compiling 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.
-                       cat >> "${toolchain_file}" <<- _EOF_ || die
-                               SET (CMAKE_FIND_ROOT_PATH "${SYSROOT}")
-                               SET (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
-                               SET (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
-                               SET (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
-                       _EOF_
-               fi
-       fi
-
-       if use prefix-guest; then
-               cat >> "${build_rules}" <<- _EOF_ || die
-                       # in Prefix we need rpath and must ensure cmake gets 
our default linker path
-                       # right ... except for Darwin hosts
-                       IF (NOT APPLE)
-                       SET (CMAKE_SKIP_RPATH OFF CACHE BOOL "" FORCE)
-                       SET (CMAKE_PLATFORM_REQUIRED_RUNTIME_PATH 
"${EPREFIX}/usr/${CHOST}/lib/gcc;${EPREFIX}/usr/${CHOST}/lib;${EPREFIX}/usr/$(get_libdir);${EPREFIX}/$(get_libdir)"
-                       CACHE STRING "" FORCE)
-
-                       ELSE ()
-
-                       SET (CMAKE_PREFIX_PATH "${EPREFIX}/usr" CACHE STRING "" 
FORCE)
-                       SET (CMAKE_MACOSX_RPATH ON CACHE BOOL "" FORCE)
-                       SET (CMAKE_SKIP_BUILD_RPATH OFF CACHE BOOL "" FORCE)
-                       SET (CMAKE_SKIP_RPATH OFF CACHE BOOL "" FORCE)
-                       SET (CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE CACHE BOOL 
"" FORCE)
-
-                       ENDIF (NOT APPLE)
-               _EOF_
-       fi
-
-       # Common configure parameters (invariants)
-       local common_config=${BUILD_DIR}/gentoo_common_config.cmake
-       local libdir=$(get_libdir)
-       cat > "${common_config}" <<- _EOF_ || die
-               SET (CMAKE_GENTOO_BUILD ON CACHE BOOL "Indicate Gentoo package 
build")
-               SET (LIB_SUFFIX ${libdir/lib} CACHE STRING "library path 
suffix" FORCE)
-               SET (CMAKE_INSTALL_LIBDIR ${libdir} CACHE PATH "Output 
directory for libraries")
-               SET (CMAKE_INSTALL_INFODIR "${EPREFIX}/usr/share/info" CACHE 
PATH "")
-               SET (CMAKE_INSTALL_MANDIR "${EPREFIX}/usr/share/man" CACHE PATH 
"")
-               SET (CMAKE_USER_MAKE_RULES_OVERRIDE "${build_rules}" CACHE 
FILEPATH "Gentoo override rules")
-       _EOF_
-
-       # See bug 689410
-       if [[ "${ARCH}" == riscv ]]; then
-               echo 'SET (CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX 
'"${libdir#lib}"' CACHE STRING "library search suffix" FORCE)' >> 
"${common_config}" || die
-       fi
-
-       [[ "${NOCOLOR}" = true || "${NOCOLOR}" = yes ]] && echo 'SET 
(CMAKE_COLOR_MAKEFILE OFF CACHE BOOL "pretty colors during make" FORCE)' >> 
"${common_config}"
-
-       if [[ ${EAPI} != [56] ]]; then
-               cat >> "${common_config}" <<- _EOF_ || die
-                       SET (CMAKE_INSTALL_DOCDIR 
"${EPREFIX}/usr/share/doc/${PF}" CACHE PATH "")
-                       SET (BUILD_SHARED_LIBS ON CACHE BOOL "")
-               _EOF_
-       fi
-
-       # Wipe the default optimization flags out of CMake
-       if [[ ${CMAKE_BUILD_TYPE} != Gentoo && ${EAPI} != 5 ]]; then
-               cat >> ${common_config} <<- _EOF_ || die
-                       SET (CMAKE_ASM_FLAGS_${CMAKE_BUILD_TYPE^^} "" CACHE 
STRING "")
-                       SET (CMAKE_ASM-ATT_FLAGS_${CMAKE_BUILD_TYPE^^} "" CACHE 
STRING "")
-                       SET (CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE^^} "" CACHE 
STRING "")
-                       SET (CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE^^} "" CACHE 
STRING "")
-                       SET (CMAKE_Fortran_FLAGS_${CMAKE_BUILD_TYPE^^} "" CACHE 
STRING "")
-                       SET (CMAKE_EXE_LINKER_FLAGS_${CMAKE_BUILD_TYPE^^} "" 
CACHE STRING "")
-                       SET (CMAKE_MODULE_LINKER_FLAGS_${CMAKE_BUILD_TYPE^^} "" 
CACHE STRING "")
-                       SET (CMAKE_SHARED_LINKER_FLAGS_${CMAKE_BUILD_TYPE^^} "" 
CACHE STRING "")
-                       SET (CMAKE_STATIC_LINKER_FLAGS_${CMAKE_BUILD_TYPE^^} "" 
CACHE STRING "")
-               _EOF_
-       fi
-
-       # Convert mycmakeargs to an array, for backwards compatibility
-       # Make the array a local variable since <=portage-2.1.6.x does not
-       # support global arrays (see bug #297255).
-       local mycmakeargstype=$(declare -p mycmakeargs 2>&-)
-       if [[ "${mycmakeargstype}" != "declare -a mycmakeargs="* ]]; then
-               if [[ -n "${mycmakeargstype}" ]] ; then
-                       if [[ ${EAPI} == 5 ]]; then
-                               eqawarn "Declaring mycmakeargs as a variable is 
deprecated. Please use an array instead."
-                       else
-                               die "Declaring mycmakeargs as a variable is 
banned in EAPI=${EAPI}. Please use an array instead."
-                       fi
-               fi
-               local mycmakeargs_local=(${mycmakeargs})
-       else
-               local mycmakeargs_local=("${mycmakeargs[@]}")
-       fi
-
-       if [[ ${CMAKE_WARN_UNUSED_CLI} == no ]] ; then
-               local warn_unused_cli="--no-warn-unused-cli"
-       else
-               local warn_unused_cli=""
-       fi
-
-       # Common configure parameters (overridable)
-       # NOTE CMAKE_BUILD_TYPE can be only overridden via CMAKE_BUILD_TYPE 
eclass variable
-       # No -DCMAKE_BUILD_TYPE=xxx definitions will be in effect.
-       local cmakeargs=(
-               ${warn_unused_cli}
-               -C "${common_config}"
-               -G "$(_cmake_generator_to_use)"
-               -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr"
-               "${mycmakeargs_local[@]}"
-               -DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}"
-               $([[ ${EAPI} == 5 ]] && echo -DCMAKE_INSTALL_DO_STRIP=OFF)
-               -DCMAKE_TOOLCHAIN_FILE="${toolchain_file}"
-               "${MYCMAKEARGS}"
-       )
-
-       if [[ -n "${CMAKE_EXTRA_CACHE_FILE}" ]] ; then
-               cmakeargs+=( -C "${CMAKE_EXTRA_CACHE_FILE}" )
-       fi
-
-       pushd "${BUILD_DIR}" > /dev/null || die
-       debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: mycmakeargs is 
${mycmakeargs_local[*]}"
-       echo "${CMAKE_BINARY}" "${cmakeargs[@]}" "${CMAKE_USE_DIR}"
-       "${CMAKE_BINARY}" "${cmakeargs[@]}" "${CMAKE_USE_DIR}" || die "cmake 
failed"
-       popd > /dev/null || die
-}
-
-# @FUNCTION: cmake-utils_src_compile
-# @DESCRIPTION:
-# General function for compiling with cmake.
-# Automatically detects the build type. All arguments are passed to emake.
-cmake-utils_src_compile() {
-       debug-print-function ${FUNCNAME} "$@"
-
-       cmake-utils_src_make "$@"
-}
-
-# @FUNCTION: _cmake_ninja_src_make
-# @INTERNAL
-# @DESCRIPTION:
-# Build the package using ninja generator
-_cmake_ninja_src_make() {
-       debug-print-function ${FUNCNAME} "$@"
-
-       [[ -e build.ninja ]] || die "build.ninja not found. Error during 
configure stage."
-
-       eninja "$@"
-}
-
-# @FUNCTION: _cmake_emake_src_make
-# @INTERNAL
-# @DESCRIPTION:
-# Build the package using make generator
-_cmake_emake_src_make() {
-       debug-print-function ${FUNCNAME} "$@"
-
-       [[ -e Makefile ]] || die "Makefile not found. Error during configure 
stage."
-
-       if [[ "${CMAKE_VERBOSE}" != "OFF" ]]; then
-               emake VERBOSE=1 "$@" || die
-       else
-               emake "$@" || die
-       fi
-
-}
-
-# @FUNCTION: cmake-utils_src_make
-# @DESCRIPTION:
-# Function for building the package. Automatically detects the build type.
-# All arguments are passed to emake.
-cmake-utils_src_make() {
-       debug-print-function ${FUNCNAME} "$@"
-
-       _cmake_check_build_dir
-       pushd "${BUILD_DIR}" > /dev/null || die
-
-       _cmake_${CMAKE_MAKEFILE_GENERATOR}_src_make "$@"
-
-       popd > /dev/null || die
-}
-
-# @FUNCTION: cmake-utils_src_test
-# @DESCRIPTION:
-# Function for testing the package. Automatically detects the build type.
-cmake-utils_src_test() {
-       debug-print-function ${FUNCNAME} "$@"
-
-       _cmake_check_build_dir
-       pushd "${BUILD_DIR}" > /dev/null || die
-       [[ -e CTestTestfile.cmake ]] || { echo "No tests found. Skipping."; 
return 0 ; }
-
-       [[ -n ${TEST_VERBOSE} ]] && myctestargs+=( --extra-verbose 
--output-on-failure )
-
-       set -- ctest -j "$(makeopts_jobs "${MAKEOPTS}" 999)" \
-               --test-load "$(makeopts_loadavg)" "${myctestargs[@]}" "$@"
-       echo "$@" >&2
-       if "$@" ; then
-               einfo "Tests succeeded."
-               popd > /dev/null || die
-               return 0
-       else
-               if [[ -n "${CMAKE_YES_I_WANT_TO_SEE_THE_TEST_LOG}" ]] ; then
-                       # on request from Diego
-                       eerror "Tests failed. Test log 
${BUILD_DIR}/Testing/Temporary/LastTest.log follows:"
-                       eerror "--START TEST 
LOG--------------------------------------------------------------"
-                       cat "${BUILD_DIR}/Testing/Temporary/LastTest.log"
-                       eerror "--END TEST 
LOG----------------------------------------------------------------"
-                       die "Tests failed."
-               else
-                       die "Tests failed. When you file a bug, please attach 
the following file: \n\t${BUILD_DIR}/Testing/Temporary/LastTest.log"
-               fi
-
-               # die might not die due to nonfatal
-               popd > /dev/null || die
-               return 1
-       fi
-}
-
-# @FUNCTION: cmake-utils_src_install
-# @DESCRIPTION:
-# Function for installing the package. Automatically detects the build type.
-cmake-utils_src_install() {
-       debug-print-function ${FUNCNAME} "$@"
-
-       _cmake_check_build_dir
-       pushd "${BUILD_DIR}" > /dev/null || die
-       DESTDIR="${D}" ${CMAKE_MAKEFILE_GENERATOR} install "$@" || die "died 
running ${CMAKE_MAKEFILE_GENERATOR} install"
-       popd > /dev/null || die
-
-       pushd "${S}" > /dev/null || die
-       einstalldocs
-       popd > /dev/null || die
-}
-
-fi

Reply via email to