Is there a tool that generates a single header out of a header-only C++ library consisting of .h and .tcc (headers for template function definitions) files?

It should perform partial pre-processing, for example replace #include's of the headers belonging to the same source code tree, but leave #include's of external headers.

For example Catch (unit testing framework) uses a Python script (https://github.com/philsquared/Catch/tree/master/scripts) which seems to be custom written.

Is there a reusable tool for this? For example a CMake plugin, etc.

  • 1
    You should be able to run the file(s) through the g++ compiler with the -E flag, (you may need to create a stub cpp file that just does the includes), to do a lot of the work for you. You may even discover a flag for don't pre-process system Most C++ compilers give the option of just pre-processing. – Steve Barnes Dec 12 '16 at 20:07
  • I don't think you'll find a tool like that. Why would you even need it? Also, 'Catch' doesn't seem to properly parse C++, I'm guessing it's more of a glorified copy-paste mechanism. I also don't find it that significant to avoid having multiple include files. – einpoklum Dec 14 '16 at 15:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.