2013-07-26 2 views
0

Я пытаюсь узнать CMake, и я столкнулся с небольшим икотой. У меня есть библиотека со структурой несколько, как это:CMake - Включая файл в библиотеку, не подвергая его другим проектам

LibProj 
| include 
| | public1.h 
| | public2.h 
| library 
| | public1.cpp 
| | public2.cpp 

Теперь, скажем, я хочу .h файл, который может или не может быть связано с .cpp файл, который я хочу использовать только файлы в библиотеке. То есть, я не хочу, чтобы он подвергался проектам, использующим библиотеку. Есть ли способ сделать это?

Спасибо!

ответ

2

Типичное решение перенести внутренний материал в другой каталог:

LibProj 
| include 
| | public1.h 
| internal 
| | private1.h 

И затем только добавить папку internal как каталог включает в вашей библиотеке и убедитесь, что он не копируется в install time. В общем случае нельзя разрешить включение одного файла заголовка из каталога, но запретить другое. Большинство (если не все) компиляторов позволяют указывать только каталоги include, а не сингулярные включенные файлы.

Смежные вопросы