Мы преобразуем большой проект на основе Makefile в систему на основе CMake.У меня есть множество зависимостей, которые мне нужно построить перед созданием нашего кода.Первые три зависимости строятся с использованием следующего:
add_subdirectory(dependencies/libexpat/expat)
add_subdirectory(dependencies/libuuid-1.0.3)
add_subdirectory(dependencies/log4c-1.2.4)
expat имеет собственный файл CMakeLists.txt и собирается без проблем.Я хотел бы принудительно установить expat в промежуточный каталог, прежде чем продолжить.Для libuuid я использую ExternalProject_Add, и как часть этого процесса он устанавливается в промежуточный каталог.
Затем, когда я собираю log4c, который нуждается в экспате, я могу указать его местоположение экспата.В противном случае мне нужно, чтобы кто-то получил доступ к абсолютному пути для временного расположения сборки экспата.
Я попытался добавить следующее после add_subdirectory:
add_subdirectory(dependencies/libexpat/expat)
add_subdirectory(dependencies/libuuid-1.0.3)
install(TARGETS expat LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/usr/lib)
add_subdirectory(dependencies/log4c-1.2.4)
К сожалению, CMake не будет запускать код установки expat.Как заставить экспат установить после сборки, но до сборки остальной части проекта?