我使用没有CMake的外部库并且构建这个库有点乏味,所以我决定使用外部脚本来实现这个目的:
我想将脚本复制到解压缩归档的目录,然后再执行。
当前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_COMMAND
和BUILD_COMMAND
中使用的绝对路径采用正确的Windows格式,而不是使用文件中的转换函数。在我看来,我目前的解决方案对于小型项目是可以接受的,但是你真的希望CMake为你处理路径转换而不过度使用额外的变量。我的意思是,CMake已经处理了正常使用的绝对路径的操作系统特定配置,但是没有执行执行纯{OS}命令的函数,如execute_process
。