[Cmake] ADD_CUSTOM_COMMAND and PRE_BUILD
Benjamin Rutt
rutt at bmi.osu.edu
Mon, 19 Apr 2004 09:38:18 -0400
I'm using cmake 1.8.3. I read that ADD_CUSTOM_COMMAND can be used in
the following way, quoted from 'cmake --help ADD_CUSTOM_COMMAND':
The second signature adds a custom command to a target such as a
library or executable. This is useful for performing an operation
before or after building the target:
ADD_CUSTOM_COMMAND(TARGET target
PRE_BUILD | PRE_LINK | POST_BUILD
COMMAND command
[ARGS [args...]]
[COMMENT comment])
This defines a new command that will be associated with building the
specified target. When the command will happen is determined by which
of the following is specified:
PRE_BUILD - run before all other dependencies
PRE_LINK - run after other dependencies
POST_BUILD - run after the target has been built
So I'd like to use the PRE_BUILD to get my custom command to run
before any of the dependencies for the named target are built.
Here's my sample project:
::::::::::::::
CMakeLists.txt
::::::::::::::
PROJECT(dummyproj)
ADD_LIBRARY(dummylib SHARED foo.cpp)
ADD_CUSTOM_COMMAND(
TARGET dummylib
PRE_BUILD
COMMAND cp
ARGS -v /etc/hosts ${dummyproj_BINARY_DIR})
::::::::::::::
foo.cpp
::::::::::::::
class Foo
{
int a;
int b;
};
So I'd like the 'cp' command to execute before any dependencies of
dummylib are built. Yet the output shows that the 'cp' command is
happening after foo.o and libdummylib.so are built. I'd like the 'cp'
command to happen before both of them are built. What am I doing
wrong?
$ cmake ../dummyproj
-- Check for working C compiler: gcc
-- Check for working C compiler: gcc -- works
-- Check for working CXX compiler: g++
-- Check for working CXX compiler: g++ -- works
-- Configuring done
-- Generating done
$ make
Building dependencies. cmake.depends...
cmake.depends is up-to-date
Building object file foo.o...
Building shared library libdummylib.so...
`/etc/hosts' -> `/home/rutt/dev/dummyproj/build/hosts'
Thanks,
--
Benjamin