aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/cmake
diff options
context:
space:
mode:
authorDavid Kozub <zub@linux.fjfi.cvut.cz>2010-07-29 08:11:36 +0000
committerMartin Jansa <Martin.Jansa@gmail.com>2010-08-19 07:47:44 +0200
commitd0f8c51b166e16aea809cb396ed3b4200266a5e1 (patch)
treec65f315c51f7822ff576fa7fb272e79c5d015dd5 /recipes/cmake
parent585f3201eb97d4c33204efe72847f78e1841f156 (diff)
downloadopenembedded-d0f8c51b166e16aea809cb396ed3b4200266a5e1.tar.gz
cmake-2.8.2: Add recipe for non-native cmake 2.8.2.
Tested on om-gta02: * builds trivial C and C++ executable * "include(FindPkgConfig)" correctly finds the cmake module * pkg_check_modules correctly invokes pkg-config * ccmake works Also tested on babbage by Eduardo Lima (thanks for help). Unfortunately, useful doc is not packaged. The reason is that the doc is produced by running the built binaries. Changing this would probably require a complex patch of the build process. Luckily, the doc is still contained in the original binaries, so it's accessible on target by e.g. cmake --help-full. Signed-off-by: David Kozub <zub@linux.fjfi.cvut.cz> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Diffstat (limited to 'recipes/cmake')
-rw-r--r--recipes/cmake/cmake-2.8.2/dont-run-cross-binaries.patch13
-rw-r--r--recipes/cmake/cmake_2.8.2.bb46
2 files changed, 59 insertions, 0 deletions
diff --git a/recipes/cmake/cmake-2.8.2/dont-run-cross-binaries.patch b/recipes/cmake/cmake-2.8.2/dont-run-cross-binaries.patch
new file mode 100644
index 0000000000..4a006f967c
--- /dev/null
+++ b/recipes/cmake/cmake-2.8.2/dont-run-cross-binaries.patch
@@ -0,0 +1,13 @@
+diff -ru cmake-2.8.2.orig/CMakeLists.txt cmake-2.8.2/CMakeLists.txt
+--- cmake-2.8.2.orig/CMakeLists.txt 2010-07-28 00:48:42.000000000 +0200
++++ cmake-2.8.2/CMakeLists.txt 2010-07-28 01:05:17.000000000 +0200
+@@ -518,7 +518,8 @@
+
+ # build the remaining subdirectories
+ ADD_SUBDIRECTORY(Source)
+-ADD_SUBDIRECTORY(Utilities)
++# Come on! Running the cross-binaries on host is not a good idea.
++#ADD_SUBDIRECTORY(Utilities)
+ ADD_SUBDIRECTORY(Tests)
+
+ # add a test
diff --git a/recipes/cmake/cmake_2.8.2.bb b/recipes/cmake/cmake_2.8.2.bb
new file mode 100644
index 0000000000..41ba8137c6
--- /dev/null
+++ b/recipes/cmake/cmake_2.8.2.bb
@@ -0,0 +1,46 @@
+require cmake.inc
+
+inherit cmake
+
+DEPENDS += "curl expat zlib"
+
+SRC_URI += "file://dont-run-cross-binaries.patch"
+
+# Strip ${prefix} from ${docdir}, set result into docdir_stripped
+python () {
+ prefix=bb.data.getVar("prefix", d, 1)
+ docdir=bb.data.getVar("docdir", d, 1)
+
+ 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:]
+
+ bb.data.setVar("docdir_stripped", docdir_stripped, d)
+}
+
+EXTRA_OECMAKE=" \
+# Override default "doc" (this is relative to ${prefix})
+ -DCMAKE_DOC_DIR=${docdir_stripped}/cmake-2.8 \
+# Using system libs spares us some cmake cross trouble.
+ -DCMAKE_USE_SYSTEM_LIBRARIES=1 \
+# This is compiler & target dependant, but it seems cmake does not in fact use this value.
+ -DKWSYS_CHAR_IS_SIGNED=1 \
+# This disables large file support. Hopefully nobody processes >2G files on the target.
+# If you want to enable this, add -DWKSYS_LFS_WORKS=1
+ -DKWSYS_LFS_DISABLE=1 \
+"
+
+SRC_URI[md5sum] = "8c967d5264657a798f22ee23976ff0d9"
+SRC_URI[sha256sum] = "766ff169af798599d7dd42e41e9f4533d73942a2bb928235115412dce5b81406"
+
+FILES_${PN} += "${datadir}/cmake-2.8"
+
+# The doc is quite... absent. Just the licensing information is there.
+# Real doc was nuked by dont-run-cross-binaries.patch. Fixing the doc
+# generation would be quite complicated, as cmake build process innovatively
+# runs the generated binaries to extract help contained in them.
+# -> Fixing this is probably not worth it.
+FILES_${PN}-doc += "${docdir}/cmake-2.8"