Lines 106-111
Link Here
|
106 |
# used for optionality) |
106 |
# used for optionality) |
107 |
: ${WANT_CMAKE:=always} |
107 |
: ${WANT_CMAKE:=always} |
108 |
|
108 |
|
|
|
109 |
# @ECLASS-VARIABLE: CMAKE_EXTRA_CACHE_FILE |
110 |
# @DESCRIPTION: |
111 |
# Specifies an extra cache file to pass to cmake. This is the analog of EXTRA_ECONF |
112 |
# for econf and is needed to pass TRY_RUN results when cross-compiling. |
113 |
# Should be set by user in a per-package basis in /etc/portage/package.env. |
109 |
|
114 |
|
110 |
CMAKEDEPEND="" |
115 |
CMAKEDEPEND="" |
111 |
case ${WANT_CMAKE} in |
116 |
case ${WANT_CMAKE} in |
Lines 454-467
Link Here
|
454 |
cat > "${build_rules}" <<- _EOF_ |
459 |
cat > "${build_rules}" <<- _EOF_ |
455 |
SET (CMAKE_AR $(type -P $(tc-getAR)) CACHE FILEPATH "Archive manager" FORCE) |
460 |
SET (CMAKE_AR $(type -P $(tc-getAR)) CACHE FILEPATH "Archive manager" FORCE) |
456 |
SET (CMAKE_ASM_COMPILE_OBJECT "<CMAKE_C_COMPILER> <DEFINES> ${CFLAGS} <FLAGS> -o <OBJECT> -c <SOURCE>" CACHE STRING "ASM compile command" FORCE) |
461 |
SET (CMAKE_ASM_COMPILE_OBJECT "<CMAKE_C_COMPILER> <DEFINES> ${CFLAGS} <FLAGS> -o <OBJECT> -c <SOURCE>" CACHE STRING "ASM compile command" FORCE) |
457 |
SET (CMAKE_C_COMPILER $(type -P $(tc-getCC)) CACHE FILEPATH "C compiler" FORCE) |
|
|
458 |
SET (CMAKE_C_COMPILE_OBJECT "<CMAKE_C_COMPILER> <DEFINES> ${CPPFLAGS} <FLAGS> -o <OBJECT> -c <SOURCE>" CACHE STRING "C compile command" FORCE) |
462 |
SET (CMAKE_C_COMPILE_OBJECT "<CMAKE_C_COMPILER> <DEFINES> ${CPPFLAGS} <FLAGS> -o <OBJECT> -c <SOURCE>" CACHE STRING "C compile command" FORCE) |
459 |
SET (CMAKE_CXX_COMPILER $(type -P $(tc-getCXX)) CACHE FILEPATH "C++ compiler" FORCE) |
|
|
460 |
SET (CMAKE_CXX_COMPILE_OBJECT "<CMAKE_CXX_COMPILER> <DEFINES> ${CPPFLAGS} <FLAGS> -o <OBJECT> -c <SOURCE>" CACHE STRING "C++ compile command" FORCE) |
463 |
SET (CMAKE_CXX_COMPILE_OBJECT "<CMAKE_CXX_COMPILER> <DEFINES> ${CPPFLAGS} <FLAGS> -o <OBJECT> -c <SOURCE>" CACHE STRING "C++ compile command" FORCE) |
461 |
SET (CMAKE_RANLIB $(type -P $(tc-getRANLIB)) CACHE FILEPATH "Archive index generator" FORCE) |
464 |
SET (CMAKE_RANLIB $(type -P $(tc-getRANLIB)) CACHE FILEPATH "Archive index generator" FORCE) |
462 |
SET (PKG_CONFIG_EXECUTABLE $(type -P $(tc-getPKG_CONFIG)) CACHE FILEPATH "pkg-config executable" FORCE) |
465 |
SET (PKG_CONFIG_EXECUTABLE $(type -P $(tc-getPKG_CONFIG)) CACHE FILEPATH "pkg-config executable" FORCE) |
463 |
_EOF_ |
466 |
_EOF_ |
464 |
|
467 |
|
|
|
468 |
local toolchain_file=${BUILD_DIR}/gentoo_toolchain.cmake |
469 |
cat > ${toolchain_file} <<- _EOF_ |
470 |
SET (CMAKE_C_COMPILER $(tc-getCC)) |
471 |
SET (CMAKE_CXX_COMPILER $(tc-getCXX)) |
472 |
_EOF_ |
473 |
|
474 |
if tc-is-cross-compiler; then |
475 |
local sysname |
476 |
case "${KERNEL:-linux}" in |
477 |
Cygwin) sysname="CYGWIN_NT-5.1" ;; |
478 |
HPUX) sysname="HP-UX" ;; |
479 |
linux) sysname="Linux" ;; |
480 |
Winnt) sysname="Windows" ;; |
481 |
*) sysname="${KERNEL}" ;; |
482 |
esac |
483 |
|
484 |
cat >> "${toolchain_file}" <<- _EOF_ |
485 |
SET (CMAKE_SYSTEM_NAME "${sysname}") |
486 |
_EOF_ |
487 |
|
488 |
if [ "${SYSROOT:-/}" != "/" ] ; then |
489 |
# When cross-compiling with a sysroot (e.g. with crossdev's emerge wrappers) |
490 |
# we need to tell cmake to use libs/headers from the sysroot but programs from / only. |
491 |
cat >> "${toolchain_file}" <<- _EOF_ |
492 |
set(CMAKE_FIND_ROOT_PATH "${SYSROOT}") |
493 |
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) |
494 |
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) |
495 |
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) |
496 |
_EOF_ |
497 |
fi |
498 |
fi |
499 |
|
465 |
has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX= |
500 |
has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX= |
466 |
|
501 |
|
467 |
if [[ ${EPREFIX} ]]; then |
502 |
if [[ ${EPREFIX} ]]; then |
Lines 523-531
Link Here
|
523 |
-DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" |
558 |
-DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" |
524 |
-DCMAKE_INSTALL_DO_STRIP=OFF |
559 |
-DCMAKE_INSTALL_DO_STRIP=OFF |
525 |
-DCMAKE_USER_MAKE_RULES_OVERRIDE="${build_rules}" |
560 |
-DCMAKE_USER_MAKE_RULES_OVERRIDE="${build_rules}" |
|
|
561 |
-DCMAKE_TOOLCHAIN_FILE="${toolchain_file}" |
526 |
"${MYCMAKEARGS}" |
562 |
"${MYCMAKEARGS}" |
527 |
) |
563 |
) |
528 |
|
564 |
|
|
|
565 |
if [[ -n "${CMAKE_EXTRA_CACHE_FILE}" ]] ; then |
566 |
cmakeargs+=( -C "${CMAKE_EXTRA_CACHE_FILE}" ) |
567 |
fi |
568 |
|
529 |
pushd "${BUILD_DIR}" > /dev/null |
569 |
pushd "${BUILD_DIR}" > /dev/null |
530 |
debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: mycmakeargs is ${mycmakeargs_local[*]}" |
570 |
debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: mycmakeargs is ${mycmakeargs_local[*]}" |
531 |
echo "${CMAKE_BINARY}" "${cmakeargs[@]}" "${CMAKE_USE_DIR}" |
571 |
echo "${CMAKE_BINARY}" "${cmakeargs[@]}" "${CMAKE_USE_DIR}" |