Sorry, typo. In the case of add_custom_target(), the files would be listed as DEPENDS.
Petr On Tue, Sep 11, 2012 at 9:13 AM, Petr Kmoch <[email protected]> wrote: > Hi Robert. > > What you're after is pretty standard cmake. You'll need > > add_custom_command( > OUTPUT path_to/generated_header.h path_to/generated_source.cpp > COMMAND midl.exe arguments to midl > other options of add_custom_command as necessary > ) > # as many times as necessary (probably once per IDL source file) > > Then, you can use the generated sources in add_library/add_executable > calls as normal, e.g. > add_executable(UsesIDL path_to/some_source.cpp > path_to/generated_header.h path_to/generated_source.cpp) > > cmake knows internally when a source file is generated by a custom > command and does not require the file to be present at generation time > in such case. > > The above assumes all files generated from IDL are used in subsequent > library/executable targets (or if they are not, they don't need to be > generated). If you need to run MIDL to generate files which are not > used anywhere else in the build, you will need to add_custom_target() > which uses these files as DEPENDS. > > Hope this helps. > > Petr > > On Tue, Sep 11, 2012 at 1:38 AM, Robert Dailey <[email protected]> wrote: >> I'm creating a shared library target that needs to compile and include >> source generated by an IDL. I want CMake to create a custom target >> that will invoke MIDL.EXE (comes with Windows SDK) against the IDL >> file to generate the header / source files needed. These header/source >> files will then be built by the shared library target. I saw a similar >> post on this here: >> >> http://www.cmake.org/pipermail/cmake/2011-July/045617.html >> >> This seems complicated and I'm not sure it even works, since from my >> tests, if source files don't exist by the time add_library, >> add_executable, etc is called, generation will fail. I also don't want >> CMake to invoke MIDL for me since that would require us to run CMake >> again every time the IDL file changes (this shouldn't be the case, we >> should just have to rebuild the target again using Visual Studio or >> NMake). >> >> Any ideas on a simple solution to this? >> >> Thanks in advance. >> -- >> >> 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
-- 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
