I am using cmake 2.8.1. <br>But you are right, Visual studio 2010 is not relased yet. So I guess I can not except everything to works well. I will wait  till Visual Studio 2010 is released and maybe some more time after that :) <br>
<br><div class="gmail_quote">On Wed, Mar 31, 2010 at 2:40 PM, Michael Wild <span dir="ltr">&lt;<a href="mailto:themiwi@gmail.com">themiwi@gmail.com</a>&gt;</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;">
Well, VS-2010 isn&#39;t even released so far... Which exact version of CMake are you using by the way? 2.8 or 2.8.1? If I remember correctly, there were some improvements in 2.8.1 w.r.t. VS-2010.<br>
<font color="#888888"><br>
Michael<br>
</font><div><div></div><div class="h5"><br>
<br>
On 31. Mar, 2010, at 14:28 , elizabeta petreska wrote:<br>
<br>
&gt; If I use Visual Studio 2005 generator everything works well.<br>
&gt;<br>
&gt; But, it seems that Visual Studio 2005 does not require the input file ( in<br>
&gt; this case foo.txt.rule ) to Custom Build Step to exist on disk. So the<br>
&gt; Visual Studio 2005 generator never makes foo.txt.rule to the disk, but the<br>
&gt; whole thing still works.<br>
&gt;<br>
&gt; While in Visual Studio 2010 it seems that the input file to custom build<br>
&gt; step must exist on disk.<br>
&gt;<br>
&gt; I tested this with defining Custom Build Steps directly through The Visual<br>
&gt; Studio 2005 and Visual studio 2010 IDE.<br>
&gt;<br>
&gt; So , someone can say is this a bug in the Visual Studio 2010 generator?<br>
&gt;<br>
&gt; thank you<br>
&gt;<br>
&gt;<br>
&gt; On Wed, Mar 31, 2010 at 2:09 PM, Michael Wild &lt;<a href="mailto:themiwi@gmail.com">themiwi@gmail.com</a>&gt; wrote:<br>
&gt;<br>
&gt;&gt; CC-ing back to the mailing list...<br>
&gt;&gt;<br>
&gt;&gt; Sorry, I don&#39;t know why this fails and I don&#39;t have VS-2010 around. What<br>
&gt;&gt; happens if you use a different generator?<br>
&gt;&gt;<br>
&gt;&gt; Michael<br>
&gt;&gt;<br>
&gt;&gt; On 31. Mar, 2010, at 14:05 , elizabeta petreska wrote:<br>
&gt;&gt;<br>
&gt;&gt;&gt; Hello<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Thank you for the reply.<br>
&gt;&gt;&gt; I test your suggestion.<br>
&gt;&gt;&gt; It still generates foo.txt every time I build the solution.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I think that this behavior is because foo.txt.rule file is not generated<br>
&gt;&gt; i.e<br>
&gt;&gt;&gt; doesnot exist on disk. Here is the relevant part in the generated<br>
&gt;&gt; .vcxproj<br>
&gt;&gt;&gt; project file :<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; &lt;CustomBuild Include=&quot;$(Configuration)\Foo.txt.rule&quot;&gt; // Foo.txt.rule<br>
&gt;&gt;&gt; doesnot exist<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;     &lt;Message<br>
&gt;&gt;&gt; Condition=&quot;&#39;$(Configuration)|$(Platform)&#39;==&#39;Debug|Win32&#39;&quot;&gt;Generating<br>
&gt;&gt;&gt; $(Configuration)/Foo.txt&lt;/Message&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;    &lt;Command<br>
&gt;&gt; Condition=&quot;&#39;$(Configuration)|$(Platform)&#39;==&#39;Debug|Win32&#39;&quot;&gt;echo<br>
&gt;&gt;&gt; Foo &amp;gt; C:/project2/build_cmake_vs10/$(Configuration)/Foo.txt&lt;/Command&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;     &lt;AdditionalInputs<br>
&gt;&gt;&gt;<br>
&gt;&gt; Condition=&quot;&#39;$(Configuration)|$(Platform)&#39;==&#39;Debug|Win32&#39;&quot;&gt;C:project2/build_cmake_vs10/$(Configuration)/Foo.txt.rule;C:project2\myfile.txt;%(AdditionalInputs)&lt;/AdditionalInputs&gt;<br>

&gt;&gt;&gt;<br>
&gt;&gt;&gt;     &lt;Outputs<br>
&gt;&gt;&gt;<br>
&gt;&gt; Condition=&quot;&#39;$(Configuration)|$(Platform)&#39;==&#39;Debug|Win32&#39;&quot;&gt;C:\project2\build_cmake_vs10\$(Configuration)\Foo.txt;%(Outputs)&lt;/Outputs&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; If I change the add_custom_command to the following then foo.txt.rule is<br>
&gt;&gt;&gt; made by cmake, and  it works :<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; set(outfile &quot;Foo.txt&quot;)<br>
&gt;&gt;&gt; add_custom_command(OUTPUT &quot;${outfile}&quot;<br>
&gt;&gt;&gt; COMMAND echo Foo &gt; &quot;${outfile}&quot;<br>
&gt;&gt;&gt; DEPENDS &quot;${CMAKE_CURRENT_SOURCE_DIR}/myfile.txt&quot;<br>
&gt;&gt;&gt; )<br>
&gt;&gt;&gt; add_custom_target(Foo DEPENDS &quot;${outfile}&quot;)<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; In this case it works because foo.txt.rule is made by cmake on disk in<br>
&gt;&gt; the<br>
&gt;&gt;&gt; folder ${CMAKE_CURRENT_BINARY_DIR} i.e C:\project2\build_cmake_vs10<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Someone can say what is the difference if I use CMAKE_CFG_INTDIR  in the<br>
&gt;&gt;&gt; outputs of add_custom_command.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Thanks<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Wed, Mar 31, 2010 at 1:27 PM, Michael Wild &lt;<a href="mailto:themiwi@gmail.com">themiwi@gmail.com</a>&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; On 31. Mar, 2010, at 12:07 , elizabeta petreska wrote:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; Hello<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; I am using cmake 2.8 to generate Visual Studio 2010 solution files.<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; I have the following cmakelists.txt :<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; set(PROJECT_NAME Test2)<br>
&gt;&gt;&gt;&gt;&gt; PROJECT(${PROJECT_NAME})<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; FILE(GLOB Test_SRCS<br>
&gt;&gt;&gt;&gt;&gt; main.cpp<br>
&gt;&gt;&gt;&gt;&gt; )<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; ADD_EXECUTABLE(${PROJECT_NAME}<br>
&gt;&gt;&gt;&gt;&gt; ${Test_SRCS}<br>
&gt;&gt;&gt;&gt;&gt; )<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; ADD_CUSTOM_COMMAND (OUTPUT &quot;$(ConfigurationName)/Foo.txt&quot;<br>
&gt;&gt;&gt;&gt;&gt;     COMMAND echo Foo &gt;  &quot;$(ConfigurationName)/Foo.txt&quot;<br>
&gt;&gt;&gt;&gt;&gt;     DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/myfile.txt<br>
&gt;&gt;&gt;&gt;&gt; )<br>
&gt;&gt;&gt;&gt;&gt; ADD_CUSTOM_TARGET (Foo DEPENDS &quot;$(ConfigurationName)/Foo.txt&quot;)<br>
&gt;&gt;&gt;&gt;&gt; ADD_DEPENDENCIES(${PROJECT_NAME} Foo)<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; The problem is that Foo.txt is generated on every build on the solution<br>
&gt;&gt;&gt;&gt;&gt; although myfile.txt is not changed.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Use absolute paths in the OUTPUT and DEPENDS options. And you should<br>
&gt;&gt; also<br>
&gt;&gt;&gt;&gt; use the CMAKE_CFG_INTDIR variable instead of $(ConfigurationName)...<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; set(outfile &quot;${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/Foo.txt&quot;)<br>
&gt;&gt;&gt;&gt; add_custom_command(OUTPUT &quot;${outfile}&quot;<br>
&gt;&gt;&gt;&gt; COMMAND echo Foo &gt; &quot;${outfile}&quot;<br>
&gt;&gt;&gt;&gt; DEPENDS &quot;${CMAKE_CURRENT_SOURCE_DIR}/myfile.txt&quot;<br>
&gt;&gt;&gt;&gt; )<br>
&gt;&gt;&gt;&gt; add_custom_target(Foo DEPENDS &quot;${outfile}&quot;)<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; HTH<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Michael<br>
&gt;&gt;<br>
&gt;&gt;<br>
<br>
</div></div></blockquote></div><br>