У нас есть внешний проект, который мы хотим получить с помощью cmake с помощью ExternalProject_add.
Допустим, внешний проект имеет структуру:
ExternalProject_add: Некоторые файлы не копируются с INSTALL_COMMAND
External_Project
├── myClass.hpp
├── myClass.cpp
├── userOfClass.hpp
├── userOfClass.cpp
Мы выборки External_Project используя следующее:
ExternalProject_add(get_rtpm
PREFIX "${EXTERNAL_PROJECT_PREFIX_DIRECTORY}/my_external_project"
SVN_REPOSITORY "${ZE_MIRROR}/${EXTERNAL_PROJECT_SVN_PATH}" --no-auth-cache
SVN_TRUST_CERT 1
SVN_USERNAME "zeUsername"
SVN_PASSWORD "zePassword"
UPDATE_COMMAND ""
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
BUILD_IN_SOURCE 1
INSTALL_COMMAND cmake -E copy_directory . ${FINAL_LOCATION_DIR}
)
После этого мы хотим, чтобы переместить сгружен внешний проект в другое место. Поэтому мы используем
INSTALL_COMMAND cmake -E copy_directory . ${FINAL_LOCATION_DIR}<br>
, как показано выше.
Файлы в окончательном месте после того, как заканчивается INSTALL_COMMAND существо:
Final_Location_Dir
├── External_Project
│ ├──myClass.hpp
│ ├── userOfClass.hpp
│ ├── userOfClass.cpp
"myClass.cpp" отсутствует. Зачем??
Команда включает в себя «copy_directory», но это только один файл, который не учитывается.
Вы уверены, что 'myClass.cpp' действительно * находится в исходном каталоге, из которого вызывается' make -E copy_directory'? Вы можете проверить это, проверив исходный каталог вручную. – Tsyvarev
Похоже, что есть только неправильный каталог в нашем другом cmake. – JuanLunaAtbp
Недавно проверено. «Неправильный каталог», который я указывал, был неправильным каталогом на одном из путей «add_library» в другом cmake. – JuanLunaAtbp