是否可以在postinst中读取CMAKE_INSTALL_PREFIX变量的值?

时间:2019-03-19 06:15:11

标签: cmake cpack

只想问一下是否可以在CMAKE_INSTALL_PREFIX脚本中读取postinst变量的值?目标是使用include_recipe脚本读取postinst文件夹中的文件,并根据读取的文件内容在${CMAKE_INSTALL_PREFIX}/share/myapp文件夹中生成文件。我想避免依赖绝对路径。

提前谢谢!

修改

${CMAKE_INSTALL_PREFIX}/etc/myapp调用env可提供良好的信息:

postinst

DPKG_MAINTSCRIPT_DEBUG=0 DPKG_COLORS=never DPKG_MAINTSCRIPT_NAME=postinst DPKG_MAINTSCRIPT_PACKAGE=myapp DPKG_RUNNING_VERSION=1.19.0.5 DPKG_FRONTEND_LOCKED=true DPKG_ROOT= DPKG_MAINTSCRIPT_ARCH=armhf DPKG_ADMINDIR=/var/lib/dpkg DPKG_MAINTSCRIPT_PACKAGE_REFCOUNT=1 可能正是我所需要的。看来DPKG_ROOTCMAKE_INSTALL_PREFIX无关。

1 个答案:

答案 0 :(得分:2)

通常来说,在执行postinst时不存在CMake变量(它们绝对不会出现在env输出中)。因此,执行所需操作的方法是使用configure_file函数从文件postinst生成脚本。在模板文件中,您可以引用CMake变量,因此在渲染脚本时,脚本将包含“硬编码”文字。这很正常。

但是,请考虑以下因素: