Рассмотрите следующую ситуацию: я хочу включить определенную библиотеку через ExternalProject_Add
. Я хочу создать библиотеки выпуска и отладки. Мой план состоял в том, чтобы сначала создать библиотеки релизов, а затем повторно использовать загруженный исходный код для создания библиотек отладки. Я не хочу дважды загружать исходный код - это пустая трата. Соответствующая часть из моего CMakeLists.txt выглядит так:cmake повторное использование ExternalProject - DEPENDS не работает?
ExternalProject_Add(
installSFMLRelease
PREFIX ${TMPDIR}
DOWNLOAD_DIR ${TMPDIR}/SFML
GIT_REPOSITORY git://github.com/LaurentGomila/SFML.git
GIT_TAG 2.0
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=${SFML_INSTALL_PREFIX}
CMAKE_GENERATOR ${CMAKE_GENERATOR}
UPDATE_COMMAND "")
ExternalProject_Add(
installSFMLDebugAndDocs
DEPENDS installSFMLRelease
URL file://${TMPDIR}/SFML
SOURCE_DIR ${TMPDIR}/SFML
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=${SFML_INSTALL_PREFIX} -DCMAKE_BUILD_TYPE:STRING=Debug -DSFML_BUILD_DOC:BOOL=TRUE)
Угадайте, что? Это не работает. Ошибка CMake с
3>CUSTOMBUILD : CMake error : The source directory "C:/Windows/Temp/SFML" does not
похоже, содержит CMakeLists.txt.
Проблема в том, что каталог действительно не содержит ничего, потому что installSFMLRelease
не был запущен раньше. Как я могу получить поле DEPENDS
?