如何在 ExternalProject_Add 中使用 CMake 宏作为 INSTALL_COMMAND?

dan*_*jar 2 installation dependencies cmake

我有一个只有头文件的库,我使用ExternalProject_Add. 安装命令应该只复制一个文件夹。由于这应该适用于 Windows 和 Linux,我尝试使用file(COPY ...).

INSTALL_COMMAND "file(COPY ../src/include DESTINATION ../install/include)"
Run Code Online (Sandbox Code Playgroud)

这会产生错误,因为它INSTALL_COMMAND作为 shell 命令执行。如何改用 CMake 宏?

Fra*_*ser 5

CMake 有一个“命令模式”,即cmake -E ...提供一些跨平台的文件系统命令。要查看所有-E选项,只需运行cmake -E.

要从 CMakeLists.txt 文件中调用 CMake 本身,您可以使用变量CMAKE_COMMAND

INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory ../src/include ../install/include
Run Code Online (Sandbox Code Playgroud)