Brad,

Thanks for the detailed response. This all makes a lot of sense. I’ll have to 
stew on this a bit and see where it leads me. In general it sounds to me like 
there is no easy solution here.

Thanks,
-Chris

> On Jun 21, 2016, at 1:05 PM, Brad King <brad.k...@kitware.com> wrote:
> 
> On 06/21/2016 02:18 PM, Chris Bieneman wrote:
>> Our current solution to work with this tool in CMake
> 
> For reference, a quick look at LLVM's `cmake/modules/TableGen.cmake`
> indicates that the current solution is based on add_custom_command.
> 
>> The harder part is that our DSL supports C-like includes.
> 
> The add_custom_command signature has an IMPLICIT_DEPENDS option
> for this, but it only works for Makefile generators.
> 
>> Our DSL compiler can generate .d files, but hooking that up to
>> CMake is a harder problem.
> 
> With some work it may be possible to teach our Ninja generator how
> to consume .d files in custom commands.  Perhaps such support could
> even be extended to the Makefile generators instead of using our
> approximate scanning implementation.
> 
> In general implicit dependencies cannot be cleanly supported by
> the Visual Studio or Xcode generators.  Those environments provide
> no hooks for custom build-time dependency scanning.  At best one
> can have the custom command produce a file as a side effect that
> can be consumed by CMake on the next run.  This would work for
> all generators but causes lots of CMake re-runs.
> 
>> My thought was to try and treat TableGen as a language.
>> There are some complications with that because we don’t
>> actually have a compiler for it at configuration time.
> 
> I don't think that is a good approach both because we won't
> be able to enable the language without the compiler already
> existing and because custom languages do not work well in
> the IDE generators (and will have the same dependency scanning
> problems as above).  See above approaches instead.
> 
> -Brad
> 

-- 

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://public.kitware.com/mailman/listinfo/cmake-developers

Reply via email to