У меня есть проект cmake, который производит несколько исполняемых файлов.Я хочу упаковать каждый исполняемый файл в отдельные контейнеры Docker, поэтому в Dockefile я создал только нужную мне цель:
RUN mkdir build \
&& cd build \
&& cmake /app/project -DCMAKE_BUILD_TYPE=Release
&& make -j 2 myExecutable \
&& make install/fast
Это работает, как и ожидалось, но я столкнулся с проблемой с интеграция conan cmake .Установка выполняется при вызове cmake, а не во время фактической сборки - это означает, что независимо от того, какую цель я хочу на самом деле собрать, все вызовы установки conan, присутствующие в моих файлах cmake, вызываются - таким образом, устанавливается больше пакетов, чем необходимо.
# for every target
# include conan dependencies (each target has its own conanfile.txt)
conan_cmake_run(CONANFILE conanfile.txt
BASIC_SETUP CMAKE_TARGETS
BUILD_TYPE "${CMAKE_BUILD_TYPE}"
BUILD outdated
${update_conan}
)
conan_target_link_libraries(${PROJECT_NAME})
Есть ли способ сделать вызовы cmake зависимыми от того, какую цель я на самом деле хочу построить?