Mapping of installed files
aleixpol at gmail.com
Thu Jun 26 19:15:06 UTC 2008
On 6/26/08, David Nolden <zwabel+kde at gmail.com> wrote:
> Am Donnerstag, 26. Juni 2008 19:48:36 schrieb Andreas Pakulat:
> > On 26.06.08 17:46:16, David Nolden wrote:
> > > For a better editing experience, the C++ Language support will need some
> > > more information from the build-system. Namely we need to be able to map
> > > back from installed files to their source-files, so we:
> > > 1. Don't end up accidentally editing installed files that will be
> > > overwritten during the next installation
> > > 2. Can do refactoring across project/target boundaries
> > > 3. Have better navigation
> > > 4. Source changes can already take effect within kdevelop before the
> > > project is installed
> > Ok, so do you want this to work for .h only, or also for targets
> > (libs/executables), datafiles and so on?
> C++ support only needs it for source files(.h, .hpp, however they're called)
> > Would it be enough for C++ support if you can prefer in-project-headers
> > before out-of-project headers? That is if we provide a method to tell
> > you "this include dir is inside the project source or builddir and this
> > other is not"? Or do you really want something like
> No, because the C++ support precisely follows the include-path, and needs to
> know where in the source a specific installed header is located. Just
> guessing the correct location by using the filename or the parsed content
> would be a not very reliable hack, although it would be a good idea as
> fallback solution when the build-system doesn't know(like custom makefiles).
> > ProjectItem* getSourceForInstalledFile( const KUrl& url )
> > Note that the latter might be a lot slower than the former (or more
> > memory-extensive due to storing a reverse map of installed files to
> > source files).
> Yes but this would be the right solution. It would cost nearly no additional
> memory if we'd use a map IndexedString -> IndexedString, because the
> file-names will be indexed anyway by the du-chain(so its just integers
> mapping to integers).
> Thinking of it, maybe the simplest solution would be just adding
> an "addMap(IndexedString installed, IndexedString source)" function to
> DUChain, and the build-system could call that function while parsing the
> project files.
Looks good to me but note that IndexedString is not used anywhere else
in the buildsystem side...
> Greetings, David
> KDevelop-devel mailing list
> KDevelop-devel at kdevelop.org
More information about the KDevelop-devel