Sorry, typo. In the case of add_custom_target(), the files would be listed as DEPENDS.<br><br>Petr<br><br>On Tue, Sep 11, 2012 at 9:13 AM, Petr Kmoch &lt;<a href="mailto:petr.kmoch@gmail.com">petr.kmoch@gmail.com</a>&gt; wrote:<br>
&gt; Hi Robert.<br>&gt;<br>&gt; What you&#39;re after is pretty standard cmake. You&#39;ll need<br>&gt;<br>&gt; add_custom_command(<br>&gt;   OUTPUT path_to/generated_header.h path_to/generated_source.cpp<br>&gt;   COMMAND midl.exe arguments to midl<br>
&gt;   other options of add_custom_command as necessary<br>&gt; )<br>&gt; # as many times as necessary (probably once per IDL source file)<br>&gt;<br>&gt; Then, you can use the generated sources in add_library/add_executable<br>
&gt; calls as normal, e.g.<br>&gt; add_executable(UsesIDL path_to/some_source.cpp<br>&gt; path_to/generated_header.h path_to/generated_source.cpp)<br>&gt;<br>&gt; cmake knows internally when a source file is generated by a custom<br>
&gt; command and does not require the file to be present at generation time<br>&gt; in such case.<br>&gt;<br>&gt; The above assumes all files generated from IDL are used in subsequent<br>&gt; library/executable targets (or if they are not, they don&#39;t need to be<br>
&gt; generated). If you need to run MIDL to generate files which are not<br>&gt; used anywhere else in the build, you will need to add_custom_target()<br>&gt; which uses these files as <span style="color:rgb(204,0,0)">DEPENDS</span>.<br>
&gt;<br>&gt; Hope this helps.<br>&gt;<br>&gt; Petr<br>&gt;<br>&gt; On Tue, Sep 11, 2012 at 1:38 AM, Robert Dailey &lt;<a href="mailto:rcdailey.lists@gmail.com">rcdailey.lists@gmail.com</a>&gt; wrote:<br>&gt;&gt; I&#39;m creating a shared library target that needs to compile and include<br>
&gt;&gt; source generated by an IDL. I want CMake to create a custom target<br>&gt;&gt; that will invoke MIDL.EXE (comes with Windows SDK) against the IDL<br>&gt;&gt; file to generate the header / source files needed. These header/source<br>
&gt;&gt; files will then be built by the shared library target. I saw a similar<br>&gt;&gt; post on this here:<br>&gt;&gt;<br>&gt;&gt; <a href="http://www.cmake.org/pipermail/cmake/2011-July/045617.html">http://www.cmake.org/pipermail/cmake/2011-July/045617.html</a><br>
&gt;&gt;<br>&gt;&gt; This seems complicated and I&#39;m not sure it even works, since from my<br>&gt;&gt; tests, if source files don&#39;t exist by the time add_library,<br>&gt;&gt; add_executable, etc is called, generation will fail. I also don&#39;t want<br>
&gt;&gt; CMake to invoke MIDL for me since that would require us to run CMake<br>&gt;&gt; again every time the IDL file changes (this shouldn&#39;t be the case, we<br>&gt;&gt; should just have to rebuild the target again using Visual Studio or<br>
&gt;&gt; NMake).<br>&gt;&gt;<br>&gt;&gt; Any ideas on a simple solution to this?<br>&gt;&gt;<br>&gt;&gt; Thanks in advance.<br>&gt;&gt; --<br>&gt;&gt;<br>&gt;&gt; Powered by <a href="http://www.kitware.com">www.kitware.com</a><br>
&gt;&gt;<br>&gt;&gt; Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html">http://www.kitware.com/opensource/opensource.html</a><br>&gt;&gt;<br>&gt;&gt; Please keep messages on-topic and check the CMake FAQ at: <a href="http://www.cmake.org/Wiki/CMake_FAQ">http://www.cmake.org/Wiki/CMake_FAQ</a><br>
&gt;&gt;<br>&gt;&gt; Follow this link to subscribe/unsubscribe:<br>&gt;&gt; <a href="http://www.cmake.org/mailman/listinfo/cmake">http://www.cmake.org/mailman/listinfo/cmake</a><br><br>