[CMake] Run custom command only when dependency changes

Lloyd lloydkl.tech at gmail.com
Tue Apr 1 02:47:28 EDT 2014


Hi,

I am using visual studio. We are using "visual studio message compiler"
which compiles a ".mc" file and generate ".rc and .h" files as output. Our
project has a dependency on this ".h" file. What we want is to invoke
"message compiler" whenever the ".mc" file changes.

To achieve this I have used "add_custom_command" as given below

SET (MY_SRC Event_log.h other.cpp other1.cpp)

ADD_EXECUTABLE(MyExe ${MY_SRC }

add_custom_command(OUTPUT Event_log.h COMMAND mc Event_log.mc
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DEPENDS Event_log.mc)

Whenever I run the build command, this causes the "mc" to rerun each time
(even if the .mc file is not changed), and in effect recompiling a major
portion of my project.

May I know what am I doing wrong here?

Thanks,
  Lloyd
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20140401/b1b17e39/attachment.html>


More information about the CMake mailing list