【发布时间】:2018-09-13 23:46:29
【问题描述】:
我的CMakeLists.txt 文件包含命令,应该由make install 执行,所有这些都可以正常工作。下面的示例 CMakeLists.txt 是我实际 CMake 文件的简短摘录(tm0001.cpp 的内容在这里并不重要 - 它可能是任何 C++ 程序):
cmake_minimum_required(VERSION 3.12)
project(tm0001)
set(CMAKE_CXX_STANDARD 11)
add_executable(${PROJECT_NAME} tm0001.cpp)
install(
TARGETS ${PROJECT_NAME}
DESTINATION /usr/local/bin
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)
install(CODE "message(\"-- This must be called during installation only\")")
set(CPACK_PACKAGE_CONTACT "HEKTO")
set(CPACK_GENERATOR "DEB")
include(CPack)
我看到message 命令也是由make package 执行的,这不是我想要的。
如何通过make package 命令告诉CMake 不 执行安装脚本?我找不到使用 CMake if 命令的任何方法。
【问题讨论】:
-
您能否提供一个最小的
CMakeLists.txt来重现问题? -
@compor - 完成,谢谢
-
从打包者的角度来看,我认为在安装包时更改系统状态是个坏主意。也许改为添加一条消息,管理员应该重新启动守护程序。