From 52148affc56ebcda3b7c7d7ad130d516c1789530 Mon Sep 17 00:00:00 2001 From: Ricardo Salveti de Araujo Date: Mon, 9 Nov 2009 13:48:55 -0300 Subject: [PATCH 034/118] cmake-2.6.0: adding recipe Signed-off-by: Ricardo Salveti de Araujo --- recipes/cmake/cmake-2.6.0/adding_arm_cputype.patch | 19 +++ recipes/cmake/cmake-2.6.0/cross-compile.patch | 124 +++++++++++++++ .../cmake-2.6.0/define_posix_strerror_r.patch | 12 ++ .../cmake/cmake-2.6.0/remove_documentation.patch | 165 ++++++++++++++++++++ recipes/cmake/cmake.inc | 11 ++- recipes/cmake/cmake_2.6.0.bb | 17 ++ 6 files changed, 347 insertions(+), 1 deletions(-) create mode 100644 recipes/cmake/cmake-2.6.0/adding_arm_cputype.patch create mode 100644 recipes/cmake/cmake-2.6.0/cross-compile.patch create mode 100644 recipes/cmake/cmake-2.6.0/define_posix_strerror_r.patch create mode 100644 recipes/cmake/cmake-2.6.0/remove_documentation.patch create mode 100644 recipes/cmake/cmake_2.6.0.bb diff --git a/recipes/cmake/cmake-2.6.0/adding_arm_cputype.patch b/recipes/cmake/cmake-2.6.0/adding_arm_cputype.patch new file mode 100644 index 0000000..a304413 --- /dev/null +++ b/recipes/cmake/cmake-2.6.0/adding_arm_cputype.patch @@ -0,0 +1,19 @@ +Index: cmake-2.6.0/Source/kwsys/CPU.h.in +=================================================================== +--- cmake-2.6.0.orig/Source/kwsys/CPU.h.in ++++ cmake-2.6.0/Source/kwsys/CPU.h.in +@@ -28,6 +28,14 @@ + #elif defined(__BIG_ENDIAN__) + # define @KWSYS_NAMESPACE@_CPU_ENDIAN_ID @KWSYS_NAMESPACE@_CPU_ENDIAN_ID_BIG + ++/* Arm */ ++#elif defined(__arm__) ++# if !defined(__ARMEB__) ++# define @KWSYS_NAMESPACE@_CPU_ENDIAN_ID @KWSYS_NAMESPACE@_CPU_ENDIAN_ID_LITTLE ++# else ++# define @KWSYS_NAMESPACE@_CPU_ENDIAN_ID @KWSYS_NAMESPACE@_CPU_ENDIAN_ID_BIG ++# endif ++ + /* Alpha */ + #elif defined(__alpha) || defined(__alpha__) || defined(_M_ALPHA) + # define @KWSYS_NAMESPACE@_CPU_ENDIAN_ID @KWSYS_NAMESPACE@_CPU_ENDIAN_ID_LITTLE diff --git a/recipes/cmake/cmake-2.6.0/cross-compile.patch b/recipes/cmake/cmake-2.6.0/cross-compile.patch new file mode 100644 index 0000000..37eb4e3 --- /dev/null +++ b/recipes/cmake/cmake-2.6.0/cross-compile.patch @@ -0,0 +1,124 @@ +Index: cmake-2.6.0/bootstrap +=================================================================== +--- cmake-2.6.0.orig/bootstrap ++++ cmake-2.6.0/bootstrap +@@ -419,7 +419,7 @@ cmake_try_run () + echo "---------- file -----------------------" + cat "${TESTFILE}" + echo "------------------------------------------" +- "${COMPILER}" ${FLAGS} "${TESTFILE}" -o "${TMPFILE}" ++ ${COMPILER} ${FLAGS} "${TESTFILE}" -o "${TMPFILE}" + RES=$? + if [ "${RES}" -ne "0" ]; then + echo "Test failed to compile" +@@ -429,13 +429,13 @@ cmake_try_run () + echo "Test failed to produce executable" + return 2 + fi +- ./${TMPFILE} +- RES=$? ++# ./${TMPFILE} ++# RES=$? + rm -f "${TMPFILE}" +- if [ "${RES}" -ne "0" ]; then +- echo "Test produced non-zero return code" +- return 3 +- fi ++# if [ "${RES}" -ne "0" ]; then ++# echo "Test produced non-zero return code" ++# return 3 ++# fi + echo "Test succeded" + return 0 + } +@@ -456,13 +456,13 @@ cmake_try_make () + echo "${COMPILER} does not produce output" + return 2 + fi +- ./test +- RES=$? ++# ./test ++# RES=$? + rm -f "test" +- if [ "${RES}" -ne "0" ]; then +- echo "${MAKE_PROC} produces strange executable" +- return 3 +- fi ++# if [ "${RES}" -ne "0" ]; then ++# echo "${MAKE_PROC} produces strange executable" ++# return 3 ++# fi + echo "${MAKE_PROC} works" + return 0 + } +@@ -634,12 +634,19 @@ int main(int argc, char* argv[]) + return argc-1; + } + EOF +-for a in ${cmake_c_compilers}; do +- if [ -z "${cmake_c_compiler}" ] && \ +- cmake_try_run "${a}" "${cmake_c_flags}" "${TMPFILE}.c" >> cmake_bootstrap.log 2>&1; then +- cmake_c_compiler="${a}" ++if [ -z "${CC}" ]; then ++ for a in ${cmake_c_compilers}; do ++ if [ -z "${cmake_c_compiler}" ] && \ ++ cmake_try_run "${a}" "${cmake_c_flags}" "${TMPFILE}.c" >> cmake_bootstrap.log 2>&1; then ++ cmake_c_compiler="${a}" ++ fi ++ done ++else ++ if cmake_try_run "${CC}" "${cmake_c_flags}" "${TMPFILE}.c" >> cmake_bootstrap.log 2>&1; then ++ cmake_c_compiler="${CC}" + fi +-done ++fi ++ + rm -f "${TMPFILE}.c" + + if [ -z "${cmake_c_compiler}" ]; then +@@ -690,14 +697,20 @@ int main() + return 0; + } + EOF +-for a in ${cmake_cxx_compilers}; do +- for b in 1 2 3; do +- if [ -z "${cmake_cxx_compiler}" ] && \ +- cmake_try_run "${a}" "${cmake_cxx_flags} -DTEST${b}" "${TMPFILE}.cxx" >> cmake_bootstrap.log 2>&1; then +- cmake_cxx_compiler="${a}" +- fi ++if [ -z "${CXX}" ]; then ++ for a in ${cmake_cxx_compilers}; do ++ for b in 1 2 3; do ++ if [ -z "${cmake_cxx_compiler}" ] && \ ++ cmake_try_run "${a}" "${cmake_cxx_flags} -DTEST${b}" "${TMPFILE}.cxx" >> cmake_bootstrap.log 2>&1; then ++ cmake_cxx_compiler="${a}" ++ fi ++ done + done +-done ++else ++ if cmake_try_run "${CXX}" "${cmake_cxx_flags} -DTEST${b}" "${TMPFILE}.cxx" >> cmake_bootstrap.log 2>&1; then ++ cmake_cxx_compiler="${CXX}" ++ fi ++fi + rm -f "${TMPFILE}.cxx" + + if [ -z "${cmake_cxx_compiler}" ]; then +@@ -725,7 +738,7 @@ mkdir "${cmake_bootstrap_dir}/${TMPFILE} + cd "${cmake_bootstrap_dir}/${TMPFILE}" + cat>"Makefile"<"test.c"< +@@ -1371,7 +1384,7 @@ export CXX + export MAKE + + # Run bootstrap CMake to configure real CMake +-"${cmake_bootstrap_dir}/cmake" "${cmake_source_dir}" "-C${cmake_bootstrap_dir}/InitialCacheFlags.cmake" "-G${cmake_bootstrap_generator}" ${cmake_bootstrap_system_libs} ++cmake "${cmake_source_dir}" "-C${cmake_bootstrap_dir}/InitialCacheFlags.cmake" "-G${cmake_bootstrap_generator}" ${cmake_bootstrap_system_libs} + RES=$? + if [ "${RES}" -ne "0" ]; then + cmake_error 11 "Problem while running initial CMake" diff --git a/recipes/cmake/cmake-2.6.0/define_posix_strerror_r.patch b/recipes/cmake/cmake-2.6.0/define_posix_strerror_r.patch new file mode 100644 index 0000000..5ed549a --- /dev/null +++ b/recipes/cmake/cmake-2.6.0/define_posix_strerror_r.patch @@ -0,0 +1,12 @@ +Index: cmake-2.6.0/Utilities/cmcurl/strerror.c +=================================================================== +--- cmake-2.6.0.orig/Utilities/cmcurl/strerror.c ++++ cmake-2.6.0/Utilities/cmcurl/strerror.c +@@ -24,6 +24,7 @@ + #include "setup.h" + + #ifdef HAVE_STRERROR_R ++#define HAVE_POSIX_STRERROR_R + #if !defined(HAVE_POSIX_STRERROR_R) && !defined(HAVE_GLIBC_STRERROR_R) + #error "you MUST have either POSIX or glibc strerror_r if strerror_r is found" + #endif /* !POSIX && !glibc */ diff --git a/recipes/cmake/cmake-2.6.0/remove_documentation.patch b/recipes/cmake/cmake-2.6.0/remove_documentation.patch new file mode 100644 index 0000000..4ba75b4 --- /dev/null +++ b/recipes/cmake/cmake-2.6.0/remove_documentation.patch @@ -0,0 +1,165 @@ +Index: cmake-2.6.0/Utilities/CMakeLists.txt +=================================================================== +--- cmake-2.6.0.orig/Utilities/CMakeLists.txt ++++ cmake-2.6.0/Utilities/CMakeLists.txt +@@ -5,85 +5,85 @@ MAKE_DIRECTORY(${CMake_BINARY_DIR}/Docs) + # Add a documentation target. + SET(DOC_FILES "") + +-MACRO(ADD_DOCS target dependency) +- # Generate documentation for "ctest" executable. +- GET_TARGET_PROPERTY(CMD ${target} LOCATION) +- # only generate the documentation if the target is actually built +- IF(CMD) +- ADD_CUSTOM_COMMAND( +- OUTPUT ${CMake_BINARY_DIR}/Docs/${target}.txt +- COMMAND ${CMD} +- ARGS --help-full ${CMake_BINARY_DIR}/Docs/${target}.txt +- --help-full ${CMake_BINARY_DIR}/Docs/${target}.html +- --help-full ${CMake_BINARY_DIR}/Docs/${target}.1 +- DEPENDS ${target} +- MAIN_DEPENDENCY ${dependency} +- ) +- INSTALL_FILES(${CMAKE_MAN_DIR}/man1 FILES ${CMake_BINARY_DIR}/Docs/${target}.1) +- INSTALL_FILES(${CMAKE_DOC_DIR} FILES +- ${CMake_BINARY_DIR}/Docs/${target}.txt +- ${CMake_BINARY_DIR}/Docs/${target}.html +- ) +- SET(DOC_FILES ${DOC_FILES} ${CMake_BINARY_DIR}/Docs/${target}.txt) +- ENDIF(CMD) +-ENDMACRO(ADD_DOCS target dependency) ++#MACRO(ADD_DOCS target dependency) ++# # Generate documentation for "ctest" executable. ++# GET_TARGET_PROPERTY(CMD ${target} LOCATION) ++# # only generate the documentation if the target is actually built ++# IF(CMD) ++# ADD_CUSTOM_COMMAND( ++# OUTPUT ${CMake_BINARY_DIR}/Docs/${target}.txt ++# COMMAND ${CMD} ++# ARGS --help-full ${CMake_BINARY_DIR}/Docs/${target}.txt ++# --help-full ${CMake_BINARY_DIR}/Docs/${target}.html ++# --help-full ${CMake_BINARY_DIR}/Docs/${target}.1 ++# DEPENDS ${target} ++# MAIN_DEPENDENCY ${dependency} ++# ) ++# INSTALL_FILES(${CMAKE_MAN_DIR}/man1 FILES ${CMake_BINARY_DIR}/Docs/${target}.1) ++# INSTALL_FILES(${CMAKE_DOC_DIR} FILES ++# ${CMake_BINARY_DIR}/Docs/${target}.txt ++# ${CMake_BINARY_DIR}/Docs/${target}.html ++# ) ++# SET(DOC_FILES ${DOC_FILES} ${CMake_BINARY_DIR}/Docs/${target}.txt) ++# ENDIF(CMD) ++#ENDMACRO(ADD_DOCS target dependency) + + # add the docs for the executables +-ADD_DOCS(ctest ${CMake_SOURCE_DIR}/Utilities/Doxygen/authors.txt) +-ADD_DOCS(cpack ${CMake_SOURCE_DIR}/Utilities/Doxygen/authors.txt) +-ADD_DOCS(ccmake ${CMake_SOURCE_DIR}/Utilities/Doxygen/authors.txt) +-ADD_DOCS(CMakeSetup ${CMake_SOURCE_DIR}/Utilities/Doxygen/doxyfile.in) ++#ADD_DOCS(ctest ${CMake_SOURCE_DIR}/Utilities/Doxygen/authors.txt) ++#ADD_DOCS(cpack ${CMake_SOURCE_DIR}/Utilities/Doxygen/authors.txt) ++#ADD_DOCS(ccmake ${CMake_SOURCE_DIR}/Utilities/Doxygen/authors.txt) ++#ADD_DOCS(CMakeSetup ${CMake_SOURCE_DIR}/Utilities/Doxygen/doxyfile.in) + + # add the documentation for cmake itself + +-GET_TARGET_PROPERTY(CMD cmake LOCATION) +-ADD_CUSTOM_COMMAND( +- OUTPUT ${CMake_BINARY_DIR}/Docs/cmake.txt +- COMMAND ${CMD} +- ARGS --copyright ${CMake_BINARY_DIR}/Docs/Copyright.txt +- --help-full ${CMake_BINARY_DIR}/Docs/cmake.txt +- --help-full ${CMake_BINARY_DIR}/Docs/cmake.html +- --help-full ${CMake_BINARY_DIR}/Docs/cmake.1 +- --help-properties ${CMake_BINARY_DIR}/Docs/cmake-properties.txt +- --help-properties ${CMake_BINARY_DIR}/Docs/cmake-properties.html +- --help-properties ${CMake_BINARY_DIR}/Docs/cmakeprops.1 +- --help-variables ${CMake_BINARY_DIR}/Docs/cmake-variables.txt +- --help-variables ${CMake_BINARY_DIR}/Docs/cmake-variables.html +- --help-variables ${CMake_BINARY_DIR}/Docs/cmakevars.1 +- --help-modules ${CMake_BINARY_DIR}/Docs/cmake-modules.txt +- --help-modules ${CMake_BINARY_DIR}/Docs/cmake-modules.html +- --help-modules ${CMake_BINARY_DIR}/Docs/cmakemodules.1 +- --help-commands ${CMake_BINARY_DIR}/Docs/cmake-commands.txt +- --help-commands ${CMake_BINARY_DIR}/Docs/cmake-commands.html +- --help-commands ${CMake_BINARY_DIR}/Docs/cmakecommands.1 +- --help-compatcommands ${CMake_BINARY_DIR}/Docs/cmake-compatcommands.txt +- --help-compatcommands ${CMake_BINARY_DIR}/Docs/cmake-compatcommands.html +- --help-compatcommands ${CMake_BINARY_DIR}/Docs/cmakecompat.1 +- DEPENDS cmake +- MAIN_DEPENDENCY ${CMake_SOURCE_DIR}/Utilities/Doxygen/authors.txt +- ) +- +-INSTALL_FILES(${CMAKE_MAN_DIR}/man1 FILES +- ${CMake_BINARY_DIR}/Docs/cmake.1 +- ${CMake_BINARY_DIR}/Docs/cmakecommands.1 +- ${CMake_BINARY_DIR}/Docs/cmakecompat.1 +- ${CMake_BINARY_DIR}/Docs/cmakeprops.1 +- ${CMake_BINARY_DIR}/Docs/cmakevars.1 +- ${CMake_BINARY_DIR}/Docs/cmakemodules.1) +- +-INSTALL_FILES(${CMAKE_DOC_DIR} FILES +- ${CMake_BINARY_DIR}/Docs/cmake.txt +- ${CMake_BINARY_DIR}/Docs/cmake.html +- ${CMake_BINARY_DIR}/Docs/cmake-properties.txt +- ${CMake_BINARY_DIR}/Docs/cmake-properties.html +- ${CMake_BINARY_DIR}/Docs/cmake-variables.txt +- ${CMake_BINARY_DIR}/Docs/cmake-variables.html +- ${CMake_BINARY_DIR}/Docs/cmake-modules.txt +- ${CMake_BINARY_DIR}/Docs/cmake-modules.html +- ${CMake_BINARY_DIR}/Docs/cmake-commands.txt +- ${CMake_BINARY_DIR}/Docs/cmake-commands.html +- ${CMake_BINARY_DIR}/Docs/cmake-compatcommands.txt +- ${CMake_BINARY_DIR}/Docs/cmake-compatcommands.html ) ++#GET_TARGET_PROPERTY(CMD cmake LOCATION) ++#ADD_CUSTOM_COMMAND( ++# OUTPUT ${CMake_BINARY_DIR}/Docs/cmake.txt ++# COMMAND ${CMD} ++# ARGS --copyright ${CMake_BINARY_DIR}/Docs/Copyright.txt ++# --help-full ${CMake_BINARY_DIR}/Docs/cmake.txt ++# --help-full ${CMake_BINARY_DIR}/Docs/cmake.html ++# --help-full ${CMake_BINARY_DIR}/Docs/cmake.1 ++# --help-properties ${CMake_BINARY_DIR}/Docs/cmake-properties.txt ++# --help-properties ${CMake_BINARY_DIR}/Docs/cmake-properties.html ++# --help-properties ${CMake_BINARY_DIR}/Docs/cmakeprops.1 ++# --help-variables ${CMake_BINARY_DIR}/Docs/cmake-variables.txt ++# --help-variables ${CMake_BINARY_DIR}/Docs/cmake-variables.html ++# --help-variables ${CMake_BINARY_DIR}/Docs/cmakevars.1 ++# --help-modules ${CMake_BINARY_DIR}/Docs/cmake-modules.txt ++# --help-modules ${CMake_BINARY_DIR}/Docs/cmake-modules.html ++# --help-modules ${CMake_BINARY_DIR}/Docs/cmakemodules.1 ++# --help-commands ${CMake_BINARY_DIR}/Docs/cmake-commands.txt ++# --help-commands ${CMake_BINARY_DIR}/Docs/cmake-commands.html ++# --help-commands ${CMake_BINARY_DIR}/Docs/cmakecommands.1 ++# --help-compatcommands ${CMake_BINARY_DIR}/Docs/cmake-compatcommands.txt ++# --help-compatcommands ${CMake_BINARY_DIR}/Docs/cmake-compatcommands.html ++# --help-compatcommands ${CMake_BINARY_DIR}/Docs/cmakecompat.1 ++# DEPENDS cmake ++# MAIN_DEPENDENCY ${CMake_SOURCE_DIR}/Utilities/Doxygen/authors.txt ++# ) ++ ++#INSTALL_FILES(${CMAKE_MAN_DIR}/man1 FILES ++# ${CMake_BINARY_DIR}/Docs/cmake.1 ++# ${CMake_BINARY_DIR}/Docs/cmakecommands.1 ++# ${CMake_BINARY_DIR}/Docs/cmakecompat.1 ++# ${CMake_BINARY_DIR}/Docs/cmakeprops.1 ++# ${CMake_BINARY_DIR}/Docs/cmakevars.1 ++# ${CMake_BINARY_DIR}/Docs/cmakemodules.1) ++ ++#INSTALL_FILES(${CMAKE_DOC_DIR} FILES ++# ${CMake_BINARY_DIR}/Docs/cmake.txt ++# ${CMake_BINARY_DIR}/Docs/cmake.html ++# ${CMake_BINARY_DIR}/Docs/cmake-properties.txt ++# ${CMake_BINARY_DIR}/Docs/cmake-properties.html ++# ${CMake_BINARY_DIR}/Docs/cmake-variables.txt ++# ${CMake_BINARY_DIR}/Docs/cmake-variables.html ++# ${CMake_BINARY_DIR}/Docs/cmake-modules.txt ++# ${CMake_BINARY_DIR}/Docs/cmake-modules.html ++# ${CMake_BINARY_DIR}/Docs/cmake-commands.txt ++# ${CMake_BINARY_DIR}/Docs/cmake-commands.html ++# ${CMake_BINARY_DIR}/Docs/cmake-compatcommands.txt ++# ${CMake_BINARY_DIR}/Docs/cmake-compatcommands.html ) + + # Drive documentation generation. +-ADD_CUSTOM_TARGET(documentation ALL DEPENDS ${DOC_FILES} ${CMake_BINARY_DIR}/Docs/cmake.txt ) ++#ADD_CUSTOM_TARGET(documentation ALL DEPENDS ${DOC_FILES} ${CMake_BINARY_DIR}/Docs/cmake.txt ) diff --git a/recipes/cmake/cmake.inc b/recipes/cmake/cmake.inc index ef6f5aa..91b3b4f 100644 --- a/recipes/cmake/cmake.inc +++ b/recipes/cmake/cmake.inc @@ -5,7 +5,7 @@ DESCRIPTION = "A cross-platform, open-source make system" HOMEPAGE = "http://www.cmake.org/" LICENSE = "Berkeley-style license" SECTION = "console/utils" -PR = "r2" +PR = "r3" CMAKE_MAJOR_VERSION = "${@bb.data.getVar('PV',d,1).split('.')[0]}.${@bb.data.getVar('PV',d,1).split('.')[1]}" SRC_URI = "http://www.cmake.org/files/v${CMAKE_MAJOR_VERSION}/cmake-${PV}.tar.gz" @@ -17,3 +17,12 @@ S = "${WORKDIR}/cmake-${PV}" do_configure () { ./configure --prefix=${prefix} || die "./bootstrap failed" } + +do_compile_prepend () { + # Yes, I know this is a ugly hack. The reason for that: cmake compilation breaks + # when it try to use libs from native staging instead of target one. + # Well I know the best option would fix the configure but cmake is magic. I couldn't + # find from where the hell it gets the lib directory, so nothing better than a magic + # sed to fix a magic configuration... + sed -i -e 's|'${STAGING_LIBDIR_NATIVE}'|'${STAGING_LIBDIR}'|g' ${S}/CMakeCache.txt +} diff --git a/recipes/cmake/cmake_2.6.0.bb b/recipes/cmake/cmake_2.6.0.bb new file mode 100644 index 0000000..ef09dfb --- /dev/null +++ b/recipes/cmake/cmake_2.6.0.bb @@ -0,0 +1,17 @@ +require cmake.inc + +PR = "r0" + +DEPENDS += "cmake-native-${PV}" + +SRC_URI += "file://cross-compile.patch;patch=1 \ + file://define_posix_strerror_r.patch;patch=1 \ + file://adding_arm_cputype.patch;patch=1 \ + file://remove_documentation.patch;patch=1" + +FILES_${PN} += "${datadir}/*" + +do_install() { + sed -i -e "s/\tbin\/cmake/\tcmake/g" Makefile + autotools_do_install +} -- 1.6.3.3