2
我对CMake非常陌生,并且无法设置安装规则。 我想在make install
运行下面的命令:在CMake中运行安装命令,但前提是
update-rc.d solshare_stats_runscript defaults
但我只是想,如果运行此命令:
CMAKE_INSTALL_PREFIX="/"
我怎样才能做到这一点?
我对CMake非常陌生,并且无法设置安装规则。 我想在make install
运行下面的命令:在CMake中运行安装命令,但前提是
update-rc.d solshare_stats_runscript defaults
但我只是想,如果运行此命令:
CMAKE_INSTALL_PREFIX="/"
我怎样才能做到这一点?
您可以使用install(SCRIPT ...)
来做到这一点,并提供一个wee CMake脚本来调用。在InstallScript.cmake
install(SCRIPT InstallScript.cmake)
然后:
所以添加到您的CMakeLists.txt
if("${CMAKE_INSTALL_PREFIX}" STREQUAL "/")
execute_process(COMMAND update-rc.d solshare_stats_runscript defaults
RESULT_VARIABLE Result
OUTPUT_VARIABLE Output
ERROR_VARIABLE Error)
if(Result EQUAL 0)
message(STATUS "Ran update-rc.d as CMAKE_INSTALL_PREFIX == \"/\"")
else()
message(FATAL_ERROR "Result - ${Result}\nOutput - ${Output}\nError - Error")
endif()
else()
message(STATUS "Not running update-rc.d as CMAKE_INSTALL_PREFIX != \"/\"")
endif()
您可能需要在脚本中调用execute_process
提供更多的参数(例如, WORKING_DIRECTORY
)。
首先:非常感谢。第二:脚本有一个问题:它不知道变量$ {CMAKE_INSTALL_PREFIX}:'如果给定的参数: “STREQUAL”“/” 未知参数指定 调用堆栈(最近一次调用在前): cmake_install。 cmake:60(INCLUDE) make:*** [install]错误1 ' – Cheiron
我通过将检查移动到CMakeLists.txt文件得到了修复。再次感谢! – Cheiron
很高兴你把它修好了。另一种方法是用引号将'$ {CMAKE_INSTALL_PREFIX}'封装在'if'里面(就像我现在所做的那样)。干杯。 – Fraser