Description
First my use case:
I have ARM embedded projects that have
- some code in the header files and stdlib that comes with the ARM compiler
- some code in a library my company develops for our embedded use case
- some code in another library my company develops for our embedded use case
- some code in my project
I would like to use ctags for the tags files.
I usually am in the project's code, but I want code completion and looking up definitions and such with candidates, that are in the libraries.
I figured when I am in a project and I do M-x citre-create-tags-file
I can just add the paths to the libraries sources in that window that pops up and it creates a tags file for the project with all the libraries tags in it. This works, but I get a tags file that is >40MB. And I have many projects, so I would have to create tags files for each of them that are >40mb each. So what I would like to have instead is a separate tags file for each project with only the projects tags and one for the libraries. (or one for each library, I don't care about that)
readtags would then look up a tag in the projects tags file and when it can't find it there it would look in the other files.
gtags has the environment variable GTAGSLIBPATH for that. I set it up to point into the libraries sources, create tags files with gtags for them and the rest is on gtags. But how could I set this up for ctags instead? All I could find was some commands to give vim (yes I know, the horror!) several tags files, but not how to do this in emacs. Also it would be best to have it in a set-up-once-and-forget-it style instead of doing it for every project again and again.