[OE-core] [PATCH v3 2/2] cmake: Upgrade 2.8.12.2 -> 3.2.2

Moritz Blume moritz.blume at bmw-carit.de
Wed Jun 17 14:47:14 UTC 2015


On 11.06.2015 21:10, Stefan Herbrechtsmeier wrote:
> Am 10.06.2015 um 09:36 schrieb Moritz Blume:
>> Patches "qt4-fail-silent.patch" and "support-oe-qt4-tools-names.patch"
>> were adapted in order to fit to CMake 3.2.2 (refer to the commit
>> message in the respective patch for details).
>> Patch "cmake-2.8.11.2-FindFreetype.patch" was dropped since it was
>> rejected upstream and its functionality otherwise implemented in the
>> meantime.
>>
>> Note that CMake 3 needs to have the full compiler path in the toolchain
>> file (see cmake.bbclass).
> Why is the full path needed?

https://public.kitware.com/Bug/view.php?id=15251

"Having a full path to the compiler is a new requirement starting in 
CMake 3.0. The incompatibility was introduced across a major version 
number bump and is considered acceptable. The project will have to be 
fixed to use a full path."

Without a full path, you get the following error message:

CMake Error at CMakeLists.txt:5 (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.

>
> Have you try to add STAGING_BINDIR_TOOLCHAIN to the CMAKE_FIND_ROOT_PATH?

I don't understand, is this related to the compiler path?

>
> <snip>
>
>> diff --git a/meta/classes/cmake.bbclass b/meta/classes/cmake.bbclass
>> index 1ebb936..c97fd02 100644
>> --- a/meta/classes/cmake.bbclass
>> +++ b/meta/classes/cmake.bbclass
>> @@ -10,9 +10,11 @@ CCACHE = ""
>>   # We want the staging and installing functions from autotools
>>   inherit autotools
>>   -# C/C++ Compiler (without cpu arch/tune arguments)
>> -OECMAKE_C_COMPILER ?= "`echo ${CC} | sed 's/^\([^ ]*\).*/\1/'`"
>> -OECMAKE_CXX_COMPILER ?= "`echo ${CXX} | sed 's/^\([^ ]*\).*/\1/'`"
>> +# Full path to C/C++ Compiler (without cpu arch/tune arguments)
>> +C_COMPILER = "$(echo ${CC} | sed 's/^\([^ ]*\).*/\1/')"
>> +CXX_COMPILER = "$(echo ${CXX} | sed 's/^\([^ ]*\).*/\1/')"
>> +OECMAKE_C_COMPILER ?= "$(which ${C_COMPILER})"
>> +OECMAKE_CXX_COMPILER ?= "$(which ${CXX_COMPILER})"
>>   OECMAKE_AR ?= "${AR}"
> Why you don't use the full path for AR?
>

It is not required to have a full path here...

-- 
BMW Car IT GmbH
Dr. Moritz Blume
Spezialist Entwicklung
Petuelring 116
80809 München

Tel.: ­+49 89 189311-25
Fax:  +49 89 189311-20
Mail: moritz.blume at bmw-carit.de
Web: http://www.bmw-carit.de

-------------------------------------------------------------
BMW Car IT GmbH
Geschäftsführer: Michael Würtenberger und Reinhard Stolle
Sitz und Registergericht: München HRB 134810
------------------------------------------------------------

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20150617/1946ee00/attachment-0002.html>


More information about the Openembedded-core mailing list