[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gentoo-dev
Subject:    Re: [gentoo-dev] [PATCH 1/2] cmake-utils.eclass: CMake argument passing rework - clean build_rules a
From:       Michał Górny <mgorny () gentoo ! org>
Date:       2016-11-03 6:31:10
Message-ID: 20161103073110.6093f557.mgorny () gentoo ! org
[Download RAW message or body]


On Thu,  3 Nov 2016 00:52:16 +0100
Maciej Mrozowski <reavertm@gmail.com> wrote:

> From: Maciej Mrozowski <reavertm@gentoo.org>
> 
> ---
> eclass/cmake-utils.eclass | 54 ++++++++++++++++++-----------------------------
> 1 file changed, 21 insertions(+), 33 deletions(-)
> 
> diff --git a/eclass/cmake-utils.eclass b/eclass/cmake-utils.eclass
> index 393ee28..88d2163 100644
> --- a/eclass/cmake-utils.eclass
> +++ b/eclass/cmake-utils.eclass
> @@ -517,13 +517,10 @@ enable_cmake-utils_src_configure() {
> 		includes="<INCLUDES>"
> 	fi
> 	cat > "${build_rules}" <<- _EOF_ || die
> -		SET (CMAKE_AR $(type -P $(tc-getAR)) CACHE FILEPATH "Archive manager" FORCE)
> 		SET (CMAKE_ASM_COMPILE_OBJECT "<CMAKE_C_COMPILER> <DEFINES> ${includes} ${CFLAGS} \
> <FLAGS> -o <OBJECT> -c <SOURCE>" CACHE STRING "ASM compile command" 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)
> -		SET (CMAKE_RANLIB $(type -P $(tc-getRANLIB)) CACHE FILEPATH "Archive index \
>                 generator" FORCE)
> -		SET (PKG_CONFIG_EXECUTABLE $(type -P $(tc-getPKG_CONFIG)) CACHE FILEPATH \
> "pkg-config executable" FORCE)  _EOF_
> 
> 	local toolchain_file=${BUILD_DIR}/gentoo_toolchain.cmake
> @@ -531,6 +528,8 @@ enable_cmake-utils_src_configure() {
> 		SET (CMAKE_C_COMPILER $(tc-getCC))
> 		SET (CMAKE_CXX_COMPILER $(tc-getCXX))
> 		SET (CMAKE_Fortran_COMPILER $(tc-getFC))
> +		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)  _EOF_
> 
> 	if tc-is-cross-compiler; then
> @@ -571,32 +570,29 @@ enable_cmake-utils_src_configure() {
> 			# 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)
> -
> +				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}${PREFIX}" CACHE STRING "" FORCE)
> -			SET(CMAKE_SKIP_BUILD_RPATH OFF CACHE BOOL "" FORCE)
> -			SET(CMAKE_SKIP_RPATH OFF CACHE BOOL "" FORCE)
> -			SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE CACHE BOOL "")
> -			SET(CMAKE_INSTALL_RPATH \
> "${EPREFIX}${PREFIX}/lib;${EPREFIX}/usr/${CHOST}/lib/gcc;${EPREFIX}/usr/${CHOST}/lib;${EPREFIX}/usr/$(get_libdir);${EPREFIX}/$(get_libdir)" \
>                 CACHE STRING "" FORCE)
> -			SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE CACHE BOOL "" FORCE)
> -			SET(CMAKE_INSTALL_NAME_DIR "${EPREFIX}${PREFIX}/lib" CACHE STRING "" FORCE)
> -
> +				SET(CMAKE_PREFIX_PATH "${EPREFIX}${PREFIX}" CACHE STRING "" FORCE)
> +				SET(CMAKE_SKIP_BUILD_RPATH OFF CACHE BOOL "" FORCE)
> +				SET(CMAKE_SKIP_RPATH OFF CACHE BOOL "" FORCE)
> +				SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE CACHE BOOL "")
> +				SET(CMAKE_INSTALL_RPATH \
> "${EPREFIX}${PREFIX}/lib;${EPREFIX}/usr/${CHOST}/lib/gcc;${EPREFIX}/usr/${CHOST}/lib;${EPREFIX}/usr/$(get_libdir);${EPREFIX}/$(get_libdir)" \
> CACHE STRING "" FORCE) +				SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE CACHE BOOL \
> "" FORCE) +				SET(CMAKE_INSTALL_NAME_DIR "${EPREFIX}${PREFIX}/lib" CACHE STRING "" \
> 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 (LIB_SUFFIX ${libdir/lib} CACHE STRING "library path suffix" FORCE)
> -		SET (CMAKE_INSTALL_LIBDIR ${libdir} CACHE PATH "Output directory for libraries")
> -	_EOF_
> -	[[ "${NOCOLOR}" = true || "${NOCOLOR}" = yes ]] && echo 'SET \
> (CMAKE_COLOR_MAKEFILE OFF CACHE BOOL "pretty colors during make" FORCE)' >> \
> "${common_config}" +	local cmakeargs=(
> +		-DLIB_SUFFIX="${libdir/lib}"
> +		-DCMAKE_INSTALL_LIBDIR="${libdir}"
> +		-DPKG_CONFIG_EXECUTABLE="$(type -P $(tc-getPKG_CONFIG))"
> +		-DCMAKE_USER_MAKE_RULES_OVERRIDE="${build_rules}"
> +		-DCMAKE_TOOLCHAIN_FILE="${toolchain_file}"
> +	)

Wasn't the point of using a config file to avoid warnings when the
variables aren't used?

> 
> 	# Convert mycmakeargs to an array, for backwards compatibility
> 	# Make the array a local variable since <=portage-2.1.6.x does not
> @@ -615,25 +611,17 @@ enable_cmake-utils_src_configure() {
> 		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 overriden via CMAKE_BUILD_TYPE eclass variable
> 	# No -DCMAKE_BUILD_TYPE=xxx definitions will be in effect.
> -	local cmakeargs=(
> -		${warn_unused_cli}
> -		-C "${common_config}"
> +	cmakeargs+=(
> +		$([[ ${CMAKE_WARN_UNUSED_CLI} == no ]] && echo --no-warn-unused-cli)
> +		$([[ "${NOCOLOR}" = true || "${NOCOLOR}" = yes ]] && echo \
>                 -DCMAKE_COLOR_MAKEFILE=OFF)
> 		-G "$(_cmake_generator_to_use)"
> 		-DCMAKE_INSTALL_PREFIX="${EPREFIX}${PREFIX}"
> 		"${mycmakeargs_local[@]}"
> 		-DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}"
> 		$([[ ${EAPI} == [2345] ]] && echo -DCMAKE_INSTALL_DO_STRIP=OFF)
> -		-DCMAKE_USER_MAKE_RULES_OVERRIDE="${build_rules}"
> -		-DCMAKE_TOOLCHAIN_FILE="${toolchain_file}"
> 		"${MYCMAKEARGS}"
> 	)
> 



-- 
Best regards,
Michał Górny
<http://dev.gentoo.org/~mgorny/>


[Attachment #3 (application/pgp-signature)]

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic