| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > УП: Инструменты > Сборка иерархии проектов CMake'ом |
| Автор: Cheloveck 15.6.2011, 22:56 | ||||||
| Допустим, есть три проекта: LIBRARY_1, LIBRARY_2 и EXECUTABLE. LIBRARY_2 является самостоятельным проектом и зависит от LIBRARY_1. EXECUTABLE зависит от LIBRARY_1 и LIBRARY_2. LIBRARY_1 может использоваться другими проектами отдельно, допустим есть EXECUTABLE_2, который зависит только от LIBRARY_1. Все проекты, по одному, лежат в SVN и линкуются друг к другу по средствам svn:externals. Вопрос, как должны быть организованы ФС и что указать в CMakeLists.txt файлах, чтобы все таргеты оказались в одной директории? Что пытался сделать: Пытался организовать ФС так
Сборка планировалась так
Но при выполнении add_subdirectory cmake потребовал указать build_dir, так как подкаталог не является подкаталогом текущего каталога. В этом случае, все таргеты этого проекта складываются относительно указанного build_path и линковать, мягко говоря, не удобно. Кроме того, возникает большая зависимость между, в общем-то, не зависимыми проектами, не говоря уж о путанице. Пробовал ещё не использовать add_subdirectory, а в качестве аутпута для бинарников указать ../bin, но тогда cmake ругается на существующий кеш от предыдущей сборки. Вариант с матрёшкой был сразу отброшен
по очевидным причинам. В общем, у кого был опыт подобных сборок, поделитесь им. PS если не понятно рассказал, спрашивайте. |