Hi, On Mon, Feb 03, 2014 at 12:00:02PM -0500, cmake-requ...@cmake.org wrote: > Date: Mon, 3 Feb 2014 16:44:28 +0000 > From: gimmeamilk gimmeamilk <gimmeamilkb...@googlemail.com>
> Hi all, > > I have a custom tool that processes a given list of IDL files and > produces a number of .cpp and .h files as output. I want to add those > files to the list of things to compile in my CMakeLists, and also > model the dependencies those files have on the IDL. To keep things > simple, I will state that any change to any of the IDL files should > trigger a regeneration of all cpp/h. > > I have a custom command that takes care of running the generator tool > and listing all the IDL files as dependencies. > > My issue is getting the subsequent list of cpp/h files into cmake at > build-time. It is not possible to infer from the name of the IDL files > what cpp files will be generated. My generator tool will, however, > output the list of generated files to a text file. > > So my question is: how do I instruct cmake to "read from this text > file and add the contents as extra source and header files to be > compiled", also bearing in mind that the said text file only exists > during a certain point of the build? Judging from my (in?)sufficient amounts of CMake experience, I'd say that's not possible, since we'd be talking build-time (IOW, generator-type-specific) injection of dependencies into the generated build system. But then CMake does have some amounts of "interesting" features, so I might end up staying corrected (the only feasible mechanism might be to configure the IDL user side as an ExternalProject, to have its configure-time activity - and thus its analysis of the generated text file - happen during build-time execution of the main project). I've been spending quite some time integrating (M?)IDL support into my vcproj2cmake converter, so I know that several IDL compilers have options for specifying specific files (IID header, proxy header, etc.). And I'd expect such a capability to be required anyway, since it's *fixed source files* content which thus has no choice but to #include *specifically-named* files, thus the build process would *have to* be able to custom-name such output file names. Plus, I can report that on .vc[x]proj files there are rather liberal possibilities for custom-named patterns of IDL-related output filenames. So I'm mildly astonished that one would have a setup where this is NOT the case. BTW, it might be very worthwhile to provide an actual CMake LANGUAGE configuration for your IDL compiler mechanism, for pretty automatic specification of IDL files etc. (but perhaps it's wise to choose a language identifier other than a plain "IDL", since CMake might choose to provide generic IDL support on its own eventually). HTH (got milk?), Andreas Mohr -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake