Well of course you're not doomed. If you were doomed, cmake would print out "you are doomed" in the console output......<br><br>Since you are doing a cvs repository checkout of a specific (presumably static and immutable) tag using the -r argument, you can specify:<br>
UPDATE_COMMAND ""<br>for the tcl and tk external projects...<br><br>The problem is that repository based checkouts assume they have to be updated to be "current", when in fact, in this case, you do not need the cvs update step. (Since you are using a tag that should always retrieve the same content from the repo.)<br>
<br>Using UPDATE_COMMAND "" should prevent the tcl and tk builds from rebuilding all the time, which in turn, should prevent VTK from rebuilding unless there is an actual change before it to trigger a rebuild....<br>
<br><br>HTH,<br>David<br><br><br><br><div class="gmail_quote">On Tue, Apr 13, 2010 at 2:04 PM, kent williams <span dir="ltr"><<a href="mailto:nkwmailinglists@gmail.com">nkwmailinglists@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">So if I use large libraries as ExternalProject builds, am I doomed to<br>
have everything rebuild every time I run Make? Every time I type make<br>
at the top level of my tree, it does every step of every external<br>
project build.<br>
<br>
This wouldn't be so terrible, but if Tcl and Tk get re-installed, then<br>
VTK will recompile everything including a Tcl or Tk header.<br>
<br>
Below I have my CMakeLists.txt that I'm currently working with.<br>
========================CMakeLists.txt==============================================<br>
project(TclTkVtk)<br>
cmake_minimum_required(VERSION 2.8)<br>
cmake_policy(VERSION 2.8)<br>
set(CMAKE_VERBOSE_MAKEFILE on)<br>
enable_testing()<br>
include(Dart)<br>
include(CPack)<br>
include(ExternalProject)<br>
<br>
find_package( Qt4 REQUIRED )<br>
if(QT_USE_FILE)<br>
include(${QT_USE_FILE})<br>
set(QT_USE_QTXML 1)<br>
else(QT_USE_FILE)<br>
set( QT_LIBRARIES ${QT_QT_LIBRARY})<br>
endif(QT_USE_FILE)<br>
<br>
SET(QT_CMAKE_FLAGS<br>
-DVTK_USE_QT:BOOL=ON<br>
-DVTK_USE_QVTK:BOOL=ON<br>
-DVTK_USE_GUISUPPORT:BOOL=ON<br>
-DDESIRED_QT_VERSION:STRING=4<br>
-DVTK_USE_QVTK_QTOPENGL:BOOL=ON<br>
)<br>
<br>
if(APPLE)<br>
set(QT_CMAKE_FLAGS ${QT_CMAKE_FLAGS}<br>
-DVTK_USE_CARBON:BOOL=OFF<br>
-DVTK_USE_COCOA:BOOL=ON<br>
-DVTK_USE_X:BOOL=OFF<br>
)<br>
set(LIB_EXT dylib)<br>
set(EXTRA_TK_FLAGS<br>
--enable-aqua<br>
--enable-corefoundation<br>
)<br>
else(APPLE)<br>
set(QT_CMAKE_FLAGS ${QT_CMAKE_FLAGS}<br>
-DVTK_USE_CARBON:BOOL=OFF<br>
-DVTK_USE_COCOA:BOOL=OFF<br>
-DVTK_USE_X:BOOL=ON<br>
)<br>
set(LIB_EXT .so)<br>
endif(APPLE)<br>
<br>
SET(LOCAL_CMAKE_BUILD_OPTIONS<br>
-DMAKECOMMAND:STRING=${MAKECOMMAND}<br>
-DCMAKE_SKIP_RPATH:BOOL=ON<br>
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}<br>
-DCMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE}<br>
-DCMAKE_CXX_FLAGS_DEBUG:STRING=${CMAKE_CXX_FLAGS_DEBUG}<br>
-DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS}<br>
-DCMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE}<br>
-DCMAKE_C_FLAGS_DEBUG:STRING=${CMAKE_C_FLAGS_DEBUG}<br>
-DCMAKE_C_FLAGS:STRING=${CMAKE_C_FLAGS}<br>
-DBUILD_EXAMPLES:BOOL=OFF<br>
-DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}<br>
-DBUILD_TESTING:BOOL=OFF<br>
-DCMAKE_GENERATOR:STRING=${CMAKE_GENERATOR}<br>
-DCMAKE_EXTRA_GENERATOR:STRING=${CMAKE_EXTRA_GENERATOR}<br>
-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX}<br>
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY:PATH=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}<br>
-DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH=${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}<br>
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY:PATH=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}<br>
-DCMAKE_BUNDLE_OUTPUT_DIRECTORY:PATH=${CMAKE_BUNDLE_OUTPUT_DIRECTORY}<br>
-DDART_TESTING_TIMEOUT:STRING=${DART_TESTING_TIMEOUT}<br>
-DMEMORYCHECK_COMMAND_OPTIONS:STRING=${MEMORYCHECK_COMMAND_OPTIONS}<br>
-DMEMORYCHECK_COMMAND:PATH=${MEMORYCHECK_COMMAND}<br>
-DCMAKE_SHARED_LINKER_FLAGS:STRING=${CMAKE_SHARED_LINKER_FLAGS}<br>
-DCMAKE_EXE_LINKER_FLAGS:STRING=${CMAKE_EXE_LINKER_FLAGS}<br>
-DCMAKE_MODULE_LINKER_FLAGS:STRING=${CMAKE_MODULE_LINKER_FLAGS}<br>
-DSITE:STRING=${SITE}<br>
-DBUILDNAME:STRING=${BUILDNAME}<br>
${QT_CMAKE_FLAGS}<br>
)<br>
<br>
set(TCL_DEPEND TCL)<br>
set(proj TCL)<br>
ExternalProject_Add(${proj}<br>
CVS_REPOSITORY ":pserver:anonymous:@tcl.cvs.sourceforge.net:/cvsroot/tcl"<br>
CVS_TAG -r core-8-5-7<br>
CVS_MODULE "tcl"<br>
CONFIGURE_COMMAND CMAKE_C_COMPILER="${CMAKE_C_COMPILER}"<br>
CMAKE_CXX_COMPILER="${CMAKE_CXX_COMPILER}"<br>
${CMAKE_CURRENT_BINARY_DIR}/TCL-prefix/src/TCL/unix/configure<br>
--prefix=${CMAKE_CURRENT_BINARY_DIR}<br>
)<br>
<br>
set(TK_DEPEND TK)<br>
set(proj TK)<br>
ExternalProject_Add(${proj}<br>
CVS_REPOSITORY ":pserver:anonymous:@tcl.cvs.sourceforge.net:/cvsroot/tktoolkit"<br>
CVS_TAG -r core-8-5-7<br>
CVS_MODULE "tk"<br>
CONFIGURE_COMMAND CMAKE_C_COMPILER="${CMAKE_C_COMPILER}"<br>
CMAKE_CXX_COMPILER="${CMAKE_CXX_COMPILER}"<br>
${CMAKE_CURRENT_BINARY_DIR}/TK-prefix/src/TK/unix/configure<br>
--prefix=${CMAKE_CURRENT_BINARY_DIR}<br>
--with-tcl=${CMAKE_CURRENT_BINARY_DIR}/lib ${EXTRA_TK_FLAGS}<br>
DEPENDS ${TCL_DEPEND}<br>
)<br>
<br>
<br>
#<br>
# build VTK<br>
# -DVTK_USE_TK:BOOL=yes<br>
set(VTK_DEPEND VTK)<br>
set(proj VTK)<br>
<br>
ExternalProject_Add(${proj}<br>
CVS_REPOSITORY ":pserver:anonymous@public.kitware.com:/cvsroot/VTK"<br>
CVS_TAG -r VTK-5-4-2<br>
CVS_MODULE "VTK"<br>
CMAKE_ARGS ${LOCAL_CMAKE_BUILD_OPTIONS} -DVTK_WRAP_TCL:BOOL=ON<br>
-DTCL_INCLUDE_PATH:PATH=${CMAKE_CURRENT_BINARY_DIR}/include<br>
-DTK_INCLUDE_PATH:PATH=${CMAKE_CURRENT_BINARY_DIR}/include<br>
-DTCL_LIBRARY:FILEPATH=${CMAKE_CURRENT_BINARY_DIR}/lib/libtk8.5.${LIB_EXT}<br>
-DTK_LIBRARY:FILEPATH=${CMAKE_CURRENT_BINARY_DIR}/lib/libtcl8.5.${LIB_EXT}<br>
-DTCL_TCLSH:FILEPATH=${CMAKE_CURRENT_BINARY_DIR}/bin/tclsh8.5<br>
INSTALL_DIR ${CMAKE_INSTALL_PREFIX}<br>
DEPENDS ${TCL_DEPEND} ${TK_DEPEND}<br>
)<br>
_______________________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the CMake FAQ at: <a href="http://www.cmake.org/Wiki/CMake_FAQ" target="_blank">http://www.cmake.org/Wiki/CMake_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.cmake.org/mailman/listinfo/cmake" target="_blank">http://www.cmake.org/mailman/listinfo/cmake</a><br>
</blockquote></div><br>