aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuboš Luňák <l.lunak@kde.org>2010-02-03 10:41:19 +0000
committerLuboš Luňák <l.lunak@kde.org>2010-02-03 10:41:19 +0000
commit6a003caaa6910f59abc239971bd8dbf95bb9adcf (patch)
tree7bff45e329e934d663e478be43fc2789d3e8c725
parentee9bd12e141953230b55ea5cac01567eaa421432 (diff)
downloadextra-cmake-modules-6a003caaa6910f59abc239971bd8dbf95bb9adcf.tar.gz
extra-cmake-modules-6a003caaa6910f59abc239971bd8dbf95bb9adcf.tar.bz2
KDE4_SERIALIZE_TOOL - set to icerun (with icecream 0.9.5+) to
serialize meinproc4 runs when doing large parallel builds. svn path=/trunk/KDE/kdelibs/; revision=1084602
-rw-r--r--modules/FindKDE4Internal.cmake8
1 files changed, 8 insertions, 0 deletions
diff --git a/modules/FindKDE4Internal.cmake b/modules/FindKDE4Internal.cmake
index 1ce3a7cb..94bb3775 100644
--- a/modules/FindKDE4Internal.cmake
+++ b/modules/FindKDE4Internal.cmake
@@ -123,6 +123,8 @@
# KDE4_USE_COMMON_CMAKE_PACKAGE_CONFIG_DIR - only present for CMake >= 2.6.3, defaults to TRUE
# If enabled, the package should install its <package>Config.cmake file to
# lib/cmake/<package>/ instead to lib/<package>/cmake
+# KDE4_SERIALIZE_TOOL - wrapper to serialize potentially resource-intensive commands during
+# parallel builds (set to 'icecc' when using icecream)
#
# It also adds the following macros and functions (from KDE4Macros.cmake)
# KDE4_ADD_UI_FILES (SRCS_VAR file1.ui ... fileN.ui)
@@ -626,6 +628,7 @@ endif(NOT PHONON_FOUND)
option(KDE4_ENABLE_FINAL "Enable final all-in-one compilation")
option(KDE4_BUILD_TESTS "Build the tests")
option(KDE4_ENABLE_HTMLHANDBOOK "Create targets htmlhandbook for creating the html versions of the docbook docs")
+set(KDE4_SERIALIZE_TOOL "" CACHE STRING "Tool to serialize resource-intensive commands in parallel builds")
# if CMake 2.6.3 or above is used, provide an option which should be used by other KDE packages
# whether to install a CMake FooConfig.cmake into lib/foo/cmake/ or /lib/cmake/foo/
@@ -665,6 +668,11 @@ if( KDE4_ENABLE_FINAL)
add_definitions(-DKDE_USE_FINAL)
endif(KDE4_ENABLE_FINAL)
+if(KDE4_SERIALIZE_TOOL)
+ # parallel build with many meinproc invocations can consume a huge amount of memory
+ set(KDE4_MEINPROC_EXECUTABLE ${KDE4_SERIALIZE_TOOL} ${KDE4_MEINPROC_EXECUTABLE})
+endif(KDE4_SERIALIZE_TOOL)
+
# If we are building ! kdelibs, check where kdelibs are installed.
# If they are installed in a directory which contains "lib64", we default to "64" for LIB_SUFFIX,
# so the current project will by default also go into lib64.