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

List:       openembedded-core
Subject:    [OE-core] [oe]  cmake update broke mariadb
From:       koen () dominion ! thruhere ! net (Koen Kooi)
Date:       2015-06-30 12:53:29
Message-ID: 00D88AEB-7B18-4906-8FD3-11B46A01BC11 () dominion ! thruhere ! net
[Download RAW message or body]


> Op 30 jun. 2015, om 12:32 heeft Stefan Herbrechtsmeier <stefan at \
> herbrechtsmeier.net> het volgende geschreven: 
> Am 30.06.2015 um 11:59 schrieb Koen Kooi:
> > Burton, Ross schreef op 30-06-15 om 11:44:
> > > On 30 June 2015 at 01:39, akuster808 <akuster808 at gmail.com> wrote:
> > > 
> > > > eo-core commit f8661aa "cmake: Upgrade 2.8.12.2 -> 3.2.2" broke mariadb
> > > > in meta-oe.
> > > > 
> > > > DOes  the person who updated cmake need to fix this or the person who
> > > > is feeling the pain will be fixing it ?
> > > > 
> > > Depends on what the breakage is really.  Can you provide build logs?
> > ERROR: Function failed: do_configure (log file is located at
> > /build/linaro/build/build/tmp-glibc/work/x86_64-linux/mariadb-native/5.5.44-r0/temp/log.do_configure.25603)
> >                 
> > ERROR: Logfile of failure stored in:
> > /build/linaro/build/build/tmp-glibc/work/x86_64-linux/mariadb-native/5.5.44-r0/temp/log.do_configure.25603
> >  Log data follows:
> > > DEBUG: Executing python function sysroot_cleansstate
> > > DEBUG: Python function sysroot_cleansstate finished
> > > DEBUG: Executing shell function autotools_preconfigure
> > > DEBUG: Shell function autotools_preconfigure finished
> > > DEBUG: Executing python function autotools_copy_aclocals
> > > DEBUG: Python function autotools_copy_aclocals finished
> > > DEBUG: Executing shell function do_configure
> > > -- Running cmake version 3.2.2
> > > -- The C compiler identification is GNU 4.8.3
> > > -- The CXX compiler identification is GNU 4.8.3
> > > CMake Error at CMakeLists.txt:86 (PROJECT):
> > > The CMAKE_C_COMPILER:
> > > 
> > > gcc
> > > 
> > > is not a full path and was not found in the PATH.
> > > 
> > > Tell CMake where to find the compiler by setting either the environment
> > > variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to
> > > the compiler, or to the compiler name if it is in the PATH.
> > > 
> > > 
> > > CMake Error at CMakeLists.txt:86 (PROJECT):
> > > The CMAKE_CXX_COMPILER:
> > > 
> > > g++
> > > 
> > > is not a full path and was not found in the PATH.
> > > 
> > > Tell CMake where to find the compiler by setting either the environment
> > > variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
> > > to the compiler, or to the compiler name if it is in the PATH.
> > > 
> > > 
> > > -- Configuring incomplete, errors occurred!
> The problem should be the usage of cmake for a native package.
> 
> The cmake.bbclass disables the host path and thereby CMake could not find the gcc \
> binary. 
> I think the cmake.bbclass need to distinguish between cross and native build and \
> set the following for native build: set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH )
> set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH )
> set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH )
> 
> This allows CMake to search the binaries, libraries and includes first in the \
> CMAKE_FIND_ROOT_PATH, then in the CMAKE_SYSROOT and then in the non-rooted \
> directories.

THanks for the hint, I?m going to test something like this:

[koen at thinkpad classes]$ git diff
diff --git a/meta/classes/cmake.bbclass b/meta/classes/cmake.bbclass
index b0a3972..ead4a26 100644
--- a/meta/classes/cmake.bbclass
+++ b/meta/classes/cmake.bbclass
@@ -27,6 +27,13 @@ OECMAKE_RPATH ?= ""
 OECMAKE_PERLNATIVE_DIR ??= ""
 OECMAKE_EXTRA_ROOT_PATH ?= ""
 
+OECMAKE_PATHS ?= ""
+OECMAKE_PATHS_class-native = " \
+set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH ) \
+set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH ) \
+set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH ) \
+"
+
 cmake_do_generate_toolchain_file() {
        cat > ${WORKDIR}/toolchain.cmake <<EOF
 # CMake system name must be something like "Linux".
@@ -67,7 +74,10 @@ list(APPEND CMAKE_MODULE_PATH "${STAGING_DATADIR}/cmake/Modules/")
 # add for non /usr/lib libdir, e.g. /usr/lib64
 set( CMAKE_LIBRARY_PATH ${libdir} ${base_libdir})
 
+${OECMAKE_PATHS}
+
 EOF
+
 }
 
 addtask generate_toolchain_file after do_patch before do_configure


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

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