On Jul 18, 2012, at 1:02 PM, Michael Spencer <[email protected]> wrote:
> On Wed, Jul 18, 2012 at 11:51 AM, Manuel Klimek <[email protected]> wrote: >> On Wed, Jul 18, 2012 at 8:08 PM, Douglas Gregor <[email protected]> wrote: >>> >>> On Jul 18, 2012, at 6:36 AM, Daniel Jasper <[email protected]> wrote: >>> >>>> Hi all, >>>> >>>> to make the tooling library more widely applicable, we'd like to make the >>>> CompilationDatabase architecture extensible, i.e. provide the option of >>>> implementing custom adapters to other kinds of compilation databases >>>> (other than the currently available JSONCompilationDatabase). >>>> >>>> In r160061, I provided a hack that enables this, but we definitely want >>>> something nicer. >>>> >>>> In the attached patch, I am using LLVM's plugin registry to enable >>>> registering new compilation databases. To provide a new >>>> CompilationDatabase, you'd need to subclass CompilationDatabasePlugin and >>>> CompilationDatabase and register the former with >>>> CompilationDatabasePluginRegistry::Add (as shown for >>>> JSONCompilationDatabase). This is not a finished patch for review, I'd >>>> just like to get feedback on the approach. What do you think? >>> >>> I definitely prefer this approach! >> >> My main argument against static registries is (bad) experience with >> using them in Windows / DLL environments. Looping in Michael Spencer >> to verify that this will not be a problem here (I really want the >> tooling stuff to not run into problems with Windows down the line). >> >> Cheers, >> /Manuel > > This will work if statically linked, but not dynamically unless the > __declspec(dll{export,import}) stuff is sprinkled on. However in this > case it may be possible as the interface seems quite small. Although > it would also require adding sprinkles to any non-stdlib c++ types > that are passed through the interface. Being limited to static linking on Windows seems fine for now; it's what Daniel's prior solution was doing already, and we know roughly what we need to do to get dynamic linking working better on Windows. - Doug _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
