在CMAKE中运行带有多个参数的外部程序

时间:2015-10-28 23:58:29

标签: windows cmake

美好的一天......

我正在编写一个需要交叉编译和运行的应用程序以及转换图像的外部命令。

在linux和osx中,以下效果很好:

EXECUTE_PROCESS( COMMAND convert ${PNG_FILE} -resize ${size}x${size} ${XPM_FILE})

然而,当我尝试在Windows下运行它时,我收到错误“Invalid Paramer - -resize”

任何建议都会受到最高的赞赏......

罗布

1 个答案:

答案 0 :(得分:1)

由于execute_command()确实使用了OS shell,你/ CMake可能找到了Window自己的convert.exe

 > help convert 
 Converts a FAT volume to NTFS. 
 CONVERT volume /FS:NTFS [/V] [/CvtArea:filename] [/NoSecurity] [/X]

因此,请提供ImageMagick的convert.exe程序的完整路径。 CMake可以help you finding it

include(FindImageMagick) 
find_package(ImageMagick COMPONENTS convert REQUIRED)
EXECUTE_PROCESS( COMMAND ${ImageMagick_EXECUTABLE_DIR}/convert ${PNG_FILE} -resize ${size}x${size} ${XPM_FILE})