我想将 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
中调用它而不创建平台相关逻辑?
最佳答案
CMake 实现了一组预定义的可移植命令,可通过调用获得
cmake -E <command> <args>
例如,file(COPY)
cmake 命令具有等效的命令行
cmake -E COPY <file> <destination>
有关详细信息,请参阅 documentation关于cmake
命令行工具。
如果某些 cmake 命令没有等效的命令行,则可以将所需的命令序列存储在文件中,并使用以下命令执行这些命令
cmake -P <script>
关于c++ - 如何将 CMake 命令转换为 bash\cmd 并将其作为参数传递给其他 cmake 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37513243/