我想将GSL作为外部项目嵌入。
ExternalProject_Add(
gsl
GIT_REPOSITORY git://git.savannah.gnu.org/gsl.git
DOWNLOAD_DIR external/gsl
SOURCE_DIR external/gsl
PATCH_COMMAND file(COPY external/gsl/contrib/CMakeLists.txt external/gsl/contrib/ )
CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
BINARY_DIR ./
INSTALL_DIR ./
)
然而file(COPY external/gsl/contrib/CMakeLists.txt external/gsl/contrib/ )
是CMake命令(通常可以在任何平台上运行)。我想知道如何将其转换为cmd
以便能够以跨平台方式在PATCH_COMMAND
中调用它而无需创建平台相关逻辑?
答案 0 :(得分:1)
CMake通过调用实现了一组预定义的可移植命令
cmake -E <command> <args>
例如,file(COPY)
cmake命令具有命令行等效项
cmake -E COPY <file> <destination>
有关详细信息,请参阅documentation有关cmake
命令行工具的信息。
如果某些cmake命令没有命令行等效,可以在文件中存储所需的命令序列,并使用
执行这些命令cmake -P <script>