【问题标题】:ExternalProject_add: Some files are not copied with INSTALL_COMMANDExternalProject_add:有些文件没有用 INSTALL_COMMAND 复制
【发布时间】:2017-03-20 15:55:00
【问题描述】:

我们有一个外部项目,我们想使用 ExternalProject_add 使用 cmake 获取。
假设外部项目有一个结构:

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 是从该目录中调用的?您可以通过手动检查源目录来检查。
  • 看起来我们的其他 cmake 中有一些错误的目录。
  • 刚刚检查过。我所说的“错误目录”是另一个 cmake 中我的“add_library”路径之一中的错误目录。

标签: cmake external-project


【解决方案1】:

只是为了澄清这一点。

当我修复另一个 CMake 中使用的拼写错误的路径之一时,此问题已得到解决。

假设 FetchMyExternal.cmake 是带有 ExternalProject_add 的文件。 还有一个 CMakeLists.txt 在另一个有

add_library(EXTERNAL_LIBRARY 
    ${FINAL_LOCATION_DIR}/myClass.cpp
    ${FINAL_LOCATION_DIR}/External_Project/myClass.hpp
    ${FINAL_LOCATION_DIR}/External_Project/userOfClass.cpp
    ${FINAL_LOCATION_DIR}/External_Project/userOfClass.hpp
)

如您在上面看到的,创建库的 CMakeLists.txt 具有
其中一个文件的位置错误。 myClass.cpp 的路径应该是

${FINAL_LOCATION_DIR}/External_Project/myClass.cpp

这是一个单独的 CMakeLists.txt 文件,但不知何故,它导致 ExternalProject_add 的 copy_directory 遗漏了其中一个文件。

修正位置最终将myClass.cpp复制到最终位置。

可能是因为路径错误而被“删除”了?我不确定。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-04
    • 2019-01-01
    • 1970-01-01
    • 2021-11-25
    • 2018-08-27
    • 1970-01-01
    • 1970-01-01
    • 2021-01-19
    相关资源
    最近更新 更多