CMake Windows命令路径优雅的解决方案

时间:2018-02-07 17:52:53

标签: cmake

我使用没有CMake的外部库并且构建这个库有点乏味,所以我决定使用外部脚本来实现这个目的:

  • 一个用于运行项目自己的构建系统的配置,
  • 一个用于在生成的VS解决方案上运行MSBuild的实际构建。

我想将脚本复制到解压缩归档的目录,然后再执行。

当前CMake文件

file(TO_NATIVE_PATH ${CMAKE_CURRENT_LIST_DIR}/scripts/configure_OpenDDS_template.bat CONFIGURE_SCRIPT)
file(TO_NATIVE_PATH ${CMAKE_CURRENT_LIST_DIR}/scripts/build_OpenDDS_template.bat BUILD_SCRIPT)

ExternalProject_Add(OpenDDS
  PREFIX OpenDDS
  URL ${CLD}/OpenDDS-DDS-3.12.1.zip
  CONFIGURE_COMMAND cmd /C "cd ../OpenDDS && copy ${CONFIGURE_SCRIPT} configure_OpenDDS.bat && call configure_OpenDDS.bat"
  BUILD_COMMAND copy ${BUILD_SCRIPT} ${BUILD_COPY}
  INSTALL_COMMAND "")

我的问题是,是否有更好或更短或更优雅的解决方案,使CONFIGURE_COMMANDBUILD_COMMAND中使用的绝对路径采用正确的Windows格式,而不是使用文件中的转换函数。在我看来,我目前的解决方案对于小型项目是可以接受的,但是你真的希望CMake为你处理路径转换而不过度使用额外的变量。我的意思是,CMake已经处理了正常使用的绝对路径的操作系统特定配置,但是没有执行执行纯{OS}命令的函数,如execute_process

0 个答案:

没有答案