title: Multiple libraries with one header c++
body: <p>I am working on a project where I have the fallowing scenario. 
  I have:</p>
  
  <ol>
  <li>a header, call it header.h</li>
  <li>a script which for a given set of parameters generates a .cpp which implements the header. Let's call the first one foo.cpp. </li>
  </ol>
  
  <p>I have built a small interface to header.h, call it header_interface.h, since header.h is developed and maintained from an outside source. 
  Now I want to use foo.cpp and header.h as a library, so in my CMakeLists.txt I add a foo library and in my program I include header_interface.h and then link the program to the foo library.</p>
  
  <p>Now, if I have another auto-generated file, bar.cpp, and I want to use bar library, I don't have to change anything in my program, just link to bar instead of foo. </p>
  
  <p>But, it might happen that I need both foo and bar in my program, for example if the libraries give me two different solutions to a problem and I need both solutions. Obviously I cannot do as before, since the #include "header_interface.h" would be ambiguous, and also creating a member of HeaderInterface class would cause problems. </p>
  
  <p>What would be the best solution for solving this problem. Is there a way of solving this without having to create multiple copies of header_interface.h, which I would call for example header_interface_foo.h and change the name of HeaderInterface class inside? </p>
  
  <p>Thank you!</p>