[CMake] Why is this custom command run twice?

Aaron_Wright at selinc.com Aaron_Wright at selinc.com
Thu Apr 22 16:38:17 EDT 2010


Well, Michael is right, it does work right in Linux. I guess the nature of 
the question changes slightly then to become, what I'm I not doing right 
for Visual Studio 9 2008, but that works in Linux?

-------------------------------------------------------------
Aaron Wright




From:
Michael Wild <themiwi at gmail.com>
To:
Aaron_Wright at selinc.com
Cc:
CMake List <cmake at cmake.org>
Date:
04/22/2010 01:29 PM
Subject:
Re: [CMake] Why is this custom command run twice?



Works fine for me, sorry to say ;-)

Michael

On 22. Apr, 2010, at 17:49 , Aaron_Wright at selinc.com wrote:

> Interesting. I had a little typo in the first example, here's another 
one. 
> You only need a file called "generated.txt.in" next to the 
CMakeLists.txt 
> file.
> 
> 
> CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
> 
> PROJECT(quick_test)
> 
> ADD_CUSTOM_COMMAND(
>  OUTPUT "${PROJECT_BINARY_DIR}/generated.txt"
>  COMMAND ${CMAKE_COMMAND} -E copy 
>     "${PROJECT_SOURCE_DIR}/generated.txt.in" 
>     "${PROJECT_BINARY_DIR}/generated.txt"
>  DEPENDS "${PROJECT_SOURCE_DIR}/generated.txt.in")
> 
> ADD_CUSTOM_COMMAND(
>  OUTPUT "${PROJECT_BINARY_DIR}/generated_used.stamp"
>  COMMAND ${CMAKE_COMMAND} -E touch 
> "${PROJECT_BINARY_DIR}/generated_used.stamp"
>  DEPENDS "${PROJECT_BINARY_DIR}/generated.txt"
>  COMMENT "Using generated.txt")
> 
> ADD_CUSTOM_TARGET(
>  ${PROJECT_NAME}
>  DEPENDS "${PROJECT_BINARY_DIR}/generated_used.stamp")
> 
> 
> This builds ok the first time, but then change the "generated.txt.in" 
and 
> run the build twice and the second time you'll see "Using generated.txt" 

> again, which I don't want to see. I've tried VS 2008 and NMake, using 
> CMake 2.8 and 2.8.1.
> -------------------------------------------------------------
> Aaron Wright
> 
> 
> 
> 
> From:
> Michael Wild <themiwi at gmail.com>
> To:
> Aaron_Wright at selinc.com
> Cc:
> cmake at cmake.org
> Date:
> 04/21/2010 11:41 PM
> Subject:
> Re: [CMake] Why is this custom command run twice?
> Sent by:
> cmake-bounces at cmake.org
> 
> 
> 
> 
> On 22. Apr, 2010, at 5:12 , Aaron_Wright at selinc.com wrote:
> 
>> I'm trying to do something a little weird, and I'm almost there but not 

>> quite. I'm trying to generate a file and then run a command based on 
> that 
>> file. I only want the command to run when the file changes and thus the 

>> generated file changes. Instead the first build I get both custom 
> commands 
>> run, and then on a second build, the second custom command runs again, 
>> which is not what I want. 
>> 
>> This is what I got (just an example):
>> 
>> 
>> ADD_CUSTOM_COMMAND(
>> OUTPUT "${PROJECT_BINARY_DIR}/generated.txt"
>> COMMAND ${CMAKE_COMMAND} -E touch 
> "${PROJECT_BINARY_DIR}/generated.txt"
>> DEPENDS "${PROJECT_SOURCE_DIR}/generated.txt")
>> 
>> ADD_CUSTOM_COMMAND(
>> OUTPUT "${PROJECT_BINARY_DIR}/generated_used.stamp"
>> COMMAND ${CMAKE_COMMAND} -E touch 
>> "${PROJECT_BINARY_DIR}/generated_used.stamp"
>> DEPENDS "${PROJECT_BINARY_DIR}/generated.txt"
>> COMMENT "Using generated.txt")
>> 
>> ADD_CUSTOM_TARGET(
>> ${PROJECT_NAME}
>> DEPENDS "${PROJECT_BINARY_DIR}/generated_used.stamp")
>> 
>> 
>> What I'm I missing? Thanks
> 
> Your example works fine for me (using CMake 2.8.1 and Unix Makefiles 
> generator on Mac OS X 10.6.2).
> 
> Michael
> 
> _______________________________________________
> Powered by www.kitware.com
> 
> Visit other Kitware open-source projects at 
> http://www.kitware.com/opensource/opensource.html
> 
> Please keep messages on-topic and check the CMake FAQ at: 
> http://www.cmake.org/Wiki/CMake_FAQ
> 
> Follow this link to subscribe/unsubscribe:
> http://www.cmake.org/mailman/listinfo/cmake
> 


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20100422/d510e392/attachment.htm>


More information about the CMake mailing list