[CMake] ExternalProjects: How do ExternalProject_add and ExternalProject_Add_Step interact?

kent williams nkwmailinglists at gmail.com
Wed May 5 11:25:56 EDT 2010


I tried just listing the single step, and for some reason (probably my
fault) it didn't work.

I did get this working, but I had to add two things to keep tcl and tk
from breaking fixup_bundle -- I had to make the Tcl/Tk SO libraries
writable, and I needed to delete tclsh and wish, because fixup_bundle
didn't like their link dependencies.

set(TCL_DEPEND tcl)
set(proj tcl)
ExternalProject_Add(${proj}
CVS_REPOSITORY ":pserver:anonymous:@tcl.cvs.sourceforge.net:/cvsroot/tcl"
CVS_TAG -r core-8-5-7
CVS_MODULE  "tcl"
CONFIGURE_COMMAND
sh ${CONFIG_WRAPPER}
${BRAINSTracer_BINARY_DIR}/tcl-prefix/src/tcl/unix/configure
--prefix=${BRAINSTracer_BINARY_DIR}
INSTALL_DIR ${BRAINSTracer_BINARY_DIR}
UPDATE_COMMAND ""
)

if(APPLE)
set(SHARED_LIB_EXT .dylib)
else(APPLE)
set(SHARED_LIB_EXT .so)
endif(APPLE)

ExternalProject_Add_Step(${proj} after_install
COMMAND chmod u+w ${BRAINSTracer_BINARY_DIR}/lib/libtcl8.5${SHARED_LIB_EXT}
COMMAND cmake -E remove ${BRAINSTracer_BINARY_DIR}/bin/tclsh8.5
COMMENT "----------------------
${BRAINSTracer_BINARY_DIR}/lib/libtcl8.5 installed read-only!"
DEPENDEES mkdir update patch download configure build install
)


On Tue, Apr 27, 2010 at 10:03 AM, David Cole <david.cole at kitware.com> wrote:
> On Fri, Apr 23, 2010 at 1:11 PM, Luigi Calori <l.calori at cineca.it> wrote:
>>
>> There is some info at
>> http://www.kitware.com/products/archive/kitware_quarterly1009.pdf
>>
>> based on that I thought it was enouth do depend upon just the install in
>> your case...
>
> Luigi is correct: it should be sufficient to list "DEPENDEES install" in
> your case. Kent, why do you think you have to list all the steps as
> DEPENDEES?
>


More information about the CMake mailing list