这是一个相当晚的答案,但我碰巧遇到了这个问题,试图解决一个有些不同的问题,也可以概括为:“如何将变量传递给 CPack?” CPackDeb.cmake
就我而言,我是从复制到我的工作区的自定义版本进行此调用:
find_program(OPKG_CMD NAMES opkg-build HINTS "${OPKG_HINT}")
# ^^^^^^^^^^^^
# This is what I wanted to pass to CPack
我正在设置OPKG_HINT
一个包含在我的顶级文件中的文件CMakeLists.txt
,但它没有被传递到cpack
;上面的find_program()
调用看到一个空字符串OPKG_HINT
。
结果证明解决方案很简单CPACK_
:只需在变量名前面加上!
如果我这样做CMakeLists.txt
:
set(CPACK_OPKG_HINT "${_sysroot_top}/aarch64-poky-linux/usr/bin")
然后我可以把它放在我的CPackDeb.cmake
文件中,它工作正常:
find_program(OPKG_CMD NAMES opkg-build HINTS "${CPACK_OPKG_HINT}")
无论如何,这对于 OP 来说是一个XY 问题,但是......如果你真的需要在 CMake 时间以可以访问的方式设置一个变量,那么cpack
在变量名前面加上前缀CPACK_
似乎可以解决问题很好...