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

Moritz Blume moritz.blume at bmw-carit.de
Wed Jun 3 13:57:33 UTC 2015


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.

The "Ugly hack" in cmake.inc is removed since these things belong
to QT related recipes, not CMake.

Note that CMake 3 needs to have the full compiler path in the toolchain
file (see cmake.bbclass).

Signed-off-by: Moritz Blume <moritz.blume at bmw-carit.de>
---
 meta/classes/cmake.bbclass                         |  8 ++-
 .../cmake/cmake-native_2.8.12.2.bb                 | 19 ------
 meta/recipes-devtools/cmake/cmake-native_3.2.2.bb  | 19 ++++++
 meta/recipes-devtools/cmake/cmake.inc              | 25 +-------
 .../cmake/cmake/cmake-2.8.11.2-FindFreetype.patch  | 47 ---------------
 .../cmake/cmake/qt4-fail-silent.patch              | 30 ++++++++--
 .../cmake/cmake/support-oe-qt4-tools-names.patch   | 70 ++++++++++------------
 meta/recipes-devtools/cmake/cmake_2.8.12.2.bb      | 52 ----------------
 meta/recipes-devtools/cmake/cmake_3.2.2.bb         | 56 +++++++++++++++++
 9 files changed, 140 insertions(+), 186 deletions(-)
 delete mode 100644 meta/recipes-devtools/cmake/cmake-native_2.8.12.2.bb
 create mode 100644 meta/recipes-devtools/cmake/cmake-native_3.2.2.bb
 delete mode 100644 meta/recipes-devtools/cmake/cmake/cmake-2.8.11.2-FindFreetype.patch
 delete mode 100644 meta/recipes-devtools/cmake/cmake_2.8.12.2.bb
 create mode 100644 meta/recipes-devtools/cmake/cmake_3.2.2.bb

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}"
 
 # Compiler flags
diff --git a/meta/recipes-devtools/cmake/cmake-native_2.8.12.2.bb b/meta/recipes-devtools/cmake/cmake-native_2.8.12.2.bb
deleted file mode 100644
index e40dfdd..0000000
--- a/meta/recipes-devtools/cmake/cmake-native_2.8.12.2.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-require cmake.inc
-inherit native
-
-# Using cmake's internal libarchive, so some dependencies are needed
-DEPENDS += "bzip2-native zlib-native"
-
-SRC_URI += "\
-    file://cmlibarchive-disable-ext2fs.patch \
-"
-
-SRC_URI[md5sum] = "17c6513483d23590cbce6957ec6d1e66"
-SRC_URI[sha256sum] = "8c6574e9afabcb9fc66f463bb1f2f051958d86c85c37fccf067eb1a44a120e5e"
-
-# Disable ccmake since we don't depend on ncurses
-CMAKE_EXTRACONF = "\
-    -DBUILD_CursesDialog=0 \
-    -DENABLE_ACL=0 -DHAVE_ACL_LIBACL_H=0 \
-    -DHAVE_SYS_ACL_H=0 \
-"
diff --git a/meta/recipes-devtools/cmake/cmake-native_3.2.2.bb b/meta/recipes-devtools/cmake/cmake-native_3.2.2.bb
new file mode 100644
index 0000000..17e9e2c
--- /dev/null
+++ b/meta/recipes-devtools/cmake/cmake-native_3.2.2.bb
@@ -0,0 +1,19 @@
+require cmake.inc
+inherit native
+
+# Using cmake's internal libarchive, so some dependencies are needed
+DEPENDS += "bzip2-native zlib-native"
+
+SRC_URI += "\
+    file://cmlibarchive-disable-ext2fs.patch \
+"
+
+SRC_URI[md5sum] = "2da57308071ea98b10253a87d2419281"
+SRC_URI[sha256sum] = "ade94e6e36038774565f2aed8866415443444fb7a362eb0ea5096e40d5407c78"
+
+# Disable ccmake since we don't depend on ncurses
+CMAKE_EXTRACONF = "\
+    -DBUILD_CursesDialog=0 \
+    -DENABLE_ACL=0 -DHAVE_ACL_LIBACL_H=0 \
+    -DHAVE_SYS_ACL_H=0 \
+"
diff --git a/meta/recipes-devtools/cmake/cmake.inc b/meta/recipes-devtools/cmake/cmake.inc
index 28b7f2d..226b12f 100644
--- a/meta/recipes-devtools/cmake/cmake.inc
+++ b/meta/recipes-devtools/cmake/cmake.inc
@@ -6,7 +6,7 @@ HOMEPAGE = "http://www.cmake.org/"
 BUGTRACKER = "http://public.kitware.com/Bug/my_view_page.php"
 SECTION = "console/utils"
 LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://Copyright.txt;md5=bb2fa3a08736b842556f6171bb9e8ae1 \
+LIC_FILES_CHKSUM = "file://Copyright.txt;md5=3ba5a6c34481652ce573e5c4e1d707e4 \
                     file://Source/cmake.h;beginline=1;endline=10;md5=341736dae83c9e344b53eeb1bc7d7bc2"
 
 CMAKE_MAJOR_VERSION = "${@'.'.join(d.getVar('PV',1).split('.')[0:2])}"
@@ -14,35 +14,12 @@ CMAKE_MAJOR_VERSION = "${@'.'.join(d.getVar('PV',1).split('.')[0:2])}"
 SRC_URI = "http://www.cmake.org/files/v${CMAKE_MAJOR_VERSION}/cmake-${PV}.tar.gz \
            file://support-oe-qt4-tools-names.patch \
            file://qt4-fail-silent.patch \
-           file://cmake-2.8.11.2-FindFreetype.patch \
            "
 
 PR = "r1"
 
 inherit autotools
 
-# Ugly hack to work around undefined OE_QMAKE_PATH_EXTERNAL_HOST_BINS variable
-# and possibly missing qmake binary (qtbase-native can be removed from sysroot
-# e.g. in order to upgrade it, even when there is target qtbase)
-
-# Fixes errors like this in cmake(-native).do_configure:
-#| -- Performing Test run_pic_test - Success
-#| CMake Error at tmp-eglibc/sysroots/qemuarm/usr/lib/cmake/Qt5Core/Qt5CoreConfig.cmake:27 (message):
-#|   The imported target "Qt5::Core" references the file
-#|
-#|      "/qmake"
-#|
-#|   but this file does not exist.  Possible reasons include:
-
-do_configure_prepend() {
-	sed -i 's/^find_package(Qt5Core QUIET)$/#find_package(Qt5Core QUIET)/g' ${S}/Tests/RunCMake/CMakeLists.txt
-	sed -i 's/^find_package(Qt5Core REQUIRED)/#find_package(Qt5Core REQUIRED)/g' ${S}/Tests/RunCMake/IncompatibleQt/IncompatibleQt.cmake
-	sed -i 's/^  find_package(Qt5Widgets REQUIRED)/#  find_package(Qt5Widgets REQUIRED)/g' ${S}/Tests/QtAutomoc/CMakeLists.txt
-	sed -i 's/^find_package(Qt5Core REQUIRED)/#find_package(Qt5Core REQUIRED)/g' ${S}/Tests/Qt4And5Automoc/CMakeLists.txt
-	sed -i 's/^  find_package(Qt5Widgets QUIET NO_MODULE)/#  find_package(Qt5Widgets QUIET NO_MODULE)/g' ${S}/Tests/CMakeLists.txt
-	sed -i 's/^find_package(Qt5Widgets QUIET)/#find_package(Qt5Widgets QUIET)/g' ${S}/Source/QtDialog/CMakeLists.txt
-}
-
 # Extra flags to pass to cmake invoked by bootstrap
 CMAKE_EXTRACONF = ""
 
diff --git a/meta/recipes-devtools/cmake/cmake/cmake-2.8.11.2-FindFreetype.patch b/meta/recipes-devtools/cmake/cmake/cmake-2.8.11.2-FindFreetype.patch
deleted file mode 100644
index 1b523c0..0000000
--- a/meta/recipes-devtools/cmake/cmake/cmake-2.8.11.2-FindFreetype.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From: Julian Ospald <hasufell at gentoo.org>
-Date: Sun Dec  8 13:38:06 UTC 2013
-Subject: fix check for freetype-2.5.1
-
-Upstream-Status: Submitted http://www.cmake.org/Bug/view.php?id=14601
-
-Signed-off-by: Martin Jansa <Martin.Jansa at gmail.com>
-
---- old/Modules/FindFreetype.cmake
-+++ new/Modules/FindFreetype.cmake
-@@ -64,6 +64,19 @@
-   PATH_SUFFIXES include/freetype2 include
- )
- 
-+if(NOT FREETYPE_INCLUDE_DIR_freetype2)
-+  find_path(FREETYPE_INCLUDE_DIR_freetype2 config/ftheader.h
-+    HINTS
-+      ENV FREETYPE_DIR
-+    PATHS
-+      /usr/X11R6
-+      /usr/local/X11R6
-+      /usr/local/X11
-+      /usr/freeware
-+    PATH_SUFFIXES include/freetype2 include
-+  )
-+endif()
-+
- find_library(FREETYPE_LIBRARY
-   NAMES freetype libfreetype freetype219
-   HINTS
-@@ -82,8 +95,14 @@
- endif()
- set(FREETYPE_LIBRARIES "${FREETYPE_LIBRARY}")
- 
--if(FREETYPE_INCLUDE_DIR_freetype2 AND EXISTS "${FREETYPE_INCLUDE_DIR_freetype2}/freetype/freetype.h")
--    file(STRINGS "${FREETYPE_INCLUDE_DIR_freetype2}/freetype/freetype.h" freetype_version_str
-+if(EXISTS "${FREETYPE_INCLUDE_DIR_freetype2}/freetype/freetype.h")
-+  set(FREETYPE_H "${FREETYPE_INCLUDE_DIR_freetype2}/freetype/freetype.h")
-+elseif(EXISTS "${FREETYPE_INCLUDE_DIR_freetype2}/freetype.h")
-+  set(FREETYPE_H "${FREETYPE_INCLUDE_DIR_freetype2}/freetype.h")
-+endif()
-+
-+if(FREETYPE_INCLUDE_DIR_freetype2 AND FREETYPE_H)
-+    file(STRINGS "${FREETYPE_H}" freetype_version_str
-          REGEX "^#[\t ]*define[\t ]+FREETYPE_(MAJOR|MINOR|PATCH)[\t ]+[0-9]+$")
- 
-     unset(FREETYPE_VERSION_STRING)
diff --git a/meta/recipes-devtools/cmake/cmake/qt4-fail-silent.patch b/meta/recipes-devtools/cmake/cmake/qt4-fail-silent.patch
index fd39f3f..80fc277 100644
--- a/meta/recipes-devtools/cmake/cmake/qt4-fail-silent.patch
+++ b/meta/recipes-devtools/cmake/cmake/qt4-fail-silent.patch
@@ -13,10 +13,21 @@ Upstream-Status: Pending
 
 Signed-off-by: Paul Eggleton <paul.eggleton at linux.intel.com>
 
---- cmake-2.8.11/Modules/FindQt4.cmake	2013-07-04 10:20:42.092848274 +0100
-+++ cmake-2.8.11/Modules/FindQt4.cmake	2013-07-04 10:52:15.693380555 +0100
-@@ -1025,21 +1025,22 @@
-     set(_configs)
+The patch was slightly adapted in order to match cmake 3.2.2:
+Another set_property was introduced which had to be included
+within the if(QT_QTCORE_FOUND) statement.
+
+Signed-off-by: Moritz Blume <moritz.blume at bmw-carit.de>
+---
+ Modules/FindQt4.cmake | 39 ++++++++++++++++++++-------------------
+ 1 file changed, 20 insertions(+), 19 deletions(-)
+
+diff --git a/Modules/FindQt4.cmake b/Modules/FindQt4.cmake
+index 6704769..9048e35 100644
+--- a/Modules/FindQt4.cmake
++++ b/Modules/FindQt4.cmake
+@@ -1000,25 +1000,26 @@ if (QT_QMAKE_EXECUTABLE AND
+     endif()
    endmacro()
  
 -
@@ -28,6 +39,10 @@ Signed-off-by: Paul Eggleton <paul.eggleton at linux.intel.com>
 -      "${QT_MKSPECS_DIR}/default"
 -      ${QT_INCLUDE_DIR}
 -  )
+-  set_property(TARGET Qt4::QtCore APPEND PROPERTY
+-    INTERFACE_COMPILE_DEFINITIONS
+-      $<$<NOT:$<CONFIG:Debug>>:QT_NO_DEBUG>
+-  )
 -  set_property(TARGET Qt4::QtCore PROPERTY
 -    INTERFACE_QT_MAJOR_VERSION 4
 -  )
@@ -43,6 +58,10 @@ Signed-off-by: Paul Eggleton <paul.eggleton at linux.intel.com>
 +        "${QT_MKSPECS_DIR}/default"
 +        ${QT_INCLUDE_DIR}
 +    )
++    set_property(TARGET Qt4::QtCore APPEND PROPERTY
++      INTERFACE_COMPILE_DEFINITIONS
++        $<$<NOT:$<CONFIG:Debug>>:QT_NO_DEBUG>
++    )
 +    set_property(TARGET Qt4::QtCore PROPERTY
 +      INTERFACE_QT_MAJOR_VERSION 4
 +    )
@@ -53,3 +72,6 @@ Signed-off-by: Paul Eggleton <paul.eggleton at linux.intel.com>
  
    foreach(QT_MODULE ${QT_MODULES})
      _QT4_ADJUST_LIB_VARS(${QT_MODULE})
+-- 
+1.9.1
+
diff --git a/meta/recipes-devtools/cmake/cmake/support-oe-qt4-tools-names.patch b/meta/recipes-devtools/cmake/cmake/support-oe-qt4-tools-names.patch
index 0e311f7..15cbca8 100644
--- a/meta/recipes-devtools/cmake/cmake/support-oe-qt4-tools-names.patch
+++ b/meta/recipes-devtools/cmake/cmake/support-oe-qt4-tools-names.patch
@@ -11,11 +11,19 @@ Upstream-Status: Inappropriate [embedded specific]
 
 Signed-off-by: Otavio Salvador <otavio at ossystems.com.br>
 
-Index: cmake-2.8.11/Modules/FindQt4.cmake
-===================================================================
---- cmake-2.8.11.orig/Modules/FindQt4.cmake
-+++ cmake-2.8.11/Modules/FindQt4.cmake
-@@ -569,7 +569,7 @@ endfunction()
+The patch was slightly adapted in order to match cmake 3.2.2:
+Instead of find_program, _find_qt4_program is now used.
+
+Signed-off-by: Moritz Blume <moritz.blume at bmw-carit.de>
+---
+ Modules/FindQt4.cmake | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/Modules/FindQt4.cmake b/Modules/FindQt4.cmake
+index 11091b5..6704769 100644
+--- a/Modules/FindQt4.cmake
++++ b/Modules/FindQt4.cmake
+@@ -522,7 +522,7 @@ endfunction()
  
  set(QT4_INSTALLED_VERSION_TOO_OLD FALSE)
  
@@ -23,36 +31,24 @@ Index: cmake-2.8.11/Modules/FindQt4.cmake
 +set(_QT4_QMAKE_NAMES qmake qmake2 qmake4 qmake-qt4 qmake-mac)
  _qt4_find_qmake("${_QT4_QMAKE_NAMES}" QT_QMAKE_EXECUTABLE QTVERSION)
  
- if (QT_QMAKE_EXECUTABLE AND QTVERSION)
-@@ -1157,19 +1157,19 @@ if (QT_QMAKE_EXECUTABLE AND QTVERSION)
-     )
- 
-   find_program(QT_RCC_EXECUTABLE
--    NAMES rcc
-+    NAMES rcc4 rcc
-     PATHS ${QT_BINARY_DIR}
-     NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH
-     )
+ if (QT_QMAKE_EXECUTABLE AND
+@@ -1148,12 +1148,12 @@ if (QT_QMAKE_EXECUTABLE AND
+   _find_qt4_program(QT_MOC_EXECUTABLE Qt4::moc moc-qt4 moc4 moc)
+   _find_qt4_program(QT_UIC_EXECUTABLE Qt4::uic uic-qt4 uic4 uic)
+   _find_qt4_program(QT_UIC3_EXECUTABLE Qt4::uic3 uic3)
+-  _find_qt4_program(QT_RCC_EXECUTABLE Qt4::rcc rcc)
+-  _find_qt4_program(QT_DBUSCPP2XML_EXECUTABLE Qt4::qdbuscpp2xml qdbuscpp2xml)
+-  _find_qt4_program(QT_DBUSXML2CPP_EXECUTABLE Qt4::qdbusxml2cpp qdbusxml2cpp)
++  _find_qt4_program(QT_RCC_EXECUTABLE Qt4::rcc rcc4 rcc)
++  _find_qt4_program(QT_DBUSCPP2XML_EXECUTABLE Qt4::qdbuscpp2xml qdbuscpp2xml4 qdbuscpp2xml)
++  _find_qt4_program(QT_DBUSXML2CPP_EXECUTABLE Qt4::qdbusxml2cpp qdbusxml2cpp4 qdbusxml2cpp)
+   _find_qt4_program(QT_LUPDATE_EXECUTABLE Qt4::lupdate lupdate-qt4 lupdate4 lupdate)
+   _find_qt4_program(QT_LRELEASE_EXECUTABLE Qt4::lrelease lrelease-qt4 lrelease4 lrelease)
+-  _find_qt4_program(QT_QCOLLECTIONGENERATOR_EXECUTABLE Qt4::qcollectiongenerator qcollectiongenerator-qt4 qcollectiongenerator)
++  _find_qt4_program(QT_QCOLLECTIONGENERATOR_EXECUTABLE Qt4::qcollectiongenerator qcollectiongenerator-qt4 qcollectiongenerator qcollectiongenerator4)
+   _find_qt4_program(QT_DESIGNER_EXECUTABLE Qt4::designer designer-qt4 designer4 designer)
+   _find_qt4_program(QT_LINGUIST_EXECUTABLE Qt4::linguist linguist-qt4 linguist4 linguist)
  
-   find_program(QT_DBUSCPP2XML_EXECUTABLE
--    NAMES qdbuscpp2xml
-+    NAMES qdbuscpp2xml4 qdbuscpp2xml
-     PATHS ${QT_BINARY_DIR}
-     NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH
-     )
- 
-   find_program(QT_DBUSXML2CPP_EXECUTABLE
--    NAMES qdbusxml2cpp
-+    NAMES qdbusxml2cp4 qdbusxml2cpp
-     PATHS ${QT_BINARY_DIR}
-     NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH
-     )
-@@ -1187,7 +1187,7 @@ if (QT_QMAKE_EXECUTABLE AND QTVERSION)
-     )
- 
-   find_program(QT_QCOLLECTIONGENERATOR_EXECUTABLE
--    NAMES qcollectiongenerator-qt4 qcollectiongenerator
-+    NAMES qcollectiongenerator-qt4 qcollectiongenerator qcollectiongenerator4
-     PATHS ${QT_BINARY_DIR}
-     NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH
-     )
+-- 
+1.9.1
+
diff --git a/meta/recipes-devtools/cmake/cmake_2.8.12.2.bb b/meta/recipes-devtools/cmake/cmake_2.8.12.2.bb
deleted file mode 100644
index 66a6af6..0000000
--- a/meta/recipes-devtools/cmake/cmake_2.8.12.2.bb
+++ /dev/null
@@ -1,52 +0,0 @@
-require cmake.inc
-
-inherit cmake
-
-DEPENDS += "curl expat zlib libarchive"
-
-SRC_URI += "file://dont-run-cross-binaries.patch"
-
-SRC_URI_append_class-nativesdk = " \
-    file://OEToolchainConfig.cmake \
-    file://environment.d-cmake.sh"
-
-SRC_URI[md5sum] = "17c6513483d23590cbce6957ec6d1e66"
-SRC_URI[sha256sum] = "8c6574e9afabcb9fc66f463bb1f2f051958d86c85c37fccf067eb1a44a120e5e"
-
-# Strip ${prefix} from ${docdir}, set result into docdir_stripped
-python () {
-    prefix=d.getVar("prefix", True)
-    docdir=d.getVar("docdir", True)
-
-    if not docdir.startswith(prefix):
-        raise bb.build.FuncFailed('docdir must contain prefix as its prefix')
-
-    docdir_stripped = docdir[len(prefix):]
-    if len(docdir_stripped) > 0 and docdir_stripped[0] == '/':
-        docdir_stripped = docdir_stripped[1:]
-
-    d.setVar("docdir_stripped", docdir_stripped)
-}
-
-EXTRA_OECMAKE=" \
-    -DCMAKE_DOC_DIR=${docdir_stripped}/cmake-${CMAKE_MAJOR_VERSION} \
-    -DCMAKE_USE_SYSTEM_LIBRARIES=1 \
-    -DKWSYS_CHAR_IS_SIGNED=1 \
-    -DBUILD_CursesDialog=0 \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'largefile', '-DKWSYS_LFS_WORKS=1', '-DKWSYS_LFS_DISABLE=1', d)} \
-"
-
-do_install_append_class-nativesdk() {
-    mkdir -p ${D}${datadir}/cmake
-    install -m 644 ${WORKDIR}/OEToolchainConfig.cmake ${D}${datadir}/cmake/
-
-    mkdir -p ${D}${SDKPATHNATIVE}/environment-setup.d
-    install -m 644 ${WORKDIR}/environment.d-cmake.sh ${D}${SDKPATHNATIVE}/environment-setup.d/cmake.sh
-}
-
-FILES_${PN}_append_class-nativesdk = " ${SDKPATHNATIVE}"
-
-FILES_${PN} += "${datadir}/cmake-${CMAKE_MAJOR_VERSION}"
-FILES_${PN}-doc += "${docdir}/cmake-${CMAKE_MAJOR_VERSION}"
-
-BBCLASSEXTEND = "nativesdk"
diff --git a/meta/recipes-devtools/cmake/cmake_3.2.2.bb b/meta/recipes-devtools/cmake/cmake_3.2.2.bb
new file mode 100644
index 0000000..4765f6c
--- /dev/null
+++ b/meta/recipes-devtools/cmake/cmake_3.2.2.bb
@@ -0,0 +1,56 @@
+require cmake.inc
+
+inherit cmake
+
+DEPENDS += "curl expat zlib libarchive xz ncurses bzip2"
+
+SRC_URI_append_class-nativesdk = " \
+    file://OEToolchainConfig.cmake \
+    file://environment.d-cmake.sh"
+
+SRC_URI[md5sum] = "2da57308071ea98b10253a87d2419281"
+SRC_URI[sha256sum] = "ade94e6e36038774565f2aed8866415443444fb7a362eb0ea5096e40d5407c78"
+
+# Strip ${prefix} from ${docdir}, set result into docdir_stripped
+python () {
+    prefix=d.getVar("prefix", True)
+    docdir=d.getVar("docdir", True)
+
+    if not docdir.startswith(prefix):
+        raise bb.build.FuncFailed('docdir must contain prefix as its prefix')
+
+    docdir_stripped = docdir[len(prefix):]
+    if len(docdir_stripped) > 0 and docdir_stripped[0] == '/':
+        docdir_stripped = docdir_stripped[1:]
+
+    d.setVar("docdir_stripped", docdir_stripped)
+}
+
+EXTRA_OECMAKE=" \
+    -DCMAKE_DOC_DIR=${docdir_stripped}/cmake-${CMAKE_MAJOR_VERSION} \
+    -DCMAKE_USE_SYSTEM_LIBRARY_BZIP2=1 \
+    -DCMAKE_USE_SYSTEM_LIBRARY_CURL=1 \
+    -DCMAKE_USE_SYSTEM_LIBRARY_EXPAT=1 \
+    -DCMAKE_USE_SYSTEM_LIBRARY_FORM=1 \
+    -DCMAKE_USE_SYSTEM_LIBRARY_LIBARCHIVE=1 \
+    -DCMAKE_USE_SYSTEM_LIBRARY_LIBLZMA=1 \
+    -DCMAKE_USE_SYSTEM_LIBRARY_ZLIB=1 \
+    -DKWSYS_CHAR_IS_SIGNED=1 \
+    -DBUILD_CursesDialog=0 \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'largefile', '-DKWSYS_LFS_WORKS=1', '-DKWSYS_LFS_DISABLE=1', d)} \
+"
+
+do_install_append_class-nativesdk() {
+    mkdir -p ${D}${datadir}/cmake
+    install -m 644 ${WORKDIR}/OEToolchainConfig.cmake ${D}${datadir}/cmake/
+
+    mkdir -p ${D}${SDKPATHNATIVE}/environment-setup.d
+    install -m 644 ${WORKDIR}/environment.d-cmake.sh ${D}${SDKPATHNATIVE}/environment-setup.d/cmake.sh
+}
+
+FILES_${PN}_append_class-nativesdk = " ${SDKPATHNATIVE}"
+
+FILES_${PN} += "${datadir}/cmake-${CMAKE_MAJOR_VERSION}"
+FILES_${PN}-doc += "${docdir}/cmake-${CMAKE_MAJOR_VERSION}"
+
+BBCLASSEXTEND = "nativesdk"
-- 
1.9.1




More information about the Openembedded-core mailing list