[prev in list] [next in list] [prev in thread] [next in thread]
List: gentoo-dev
Subject: [gentoo-dev] [PATCH 1/2] cmake-utils.eclass: CMake argument passing rework - clean build_rules and t
From: Maciej Mrozowski <reavertm () gmail ! com>
Date: 2016-11-02 23:52:16
Message-ID: 1478130737-9780-2-git-send-email-reavertm () gmail ! com
[Download RAW message or body]
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}"
+ )
# 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}"
)
--
2.7.3
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic