在CMake中运行install命令,但仅当
我对CMake非常陌生,在设置安装规则时遇到困难。 我想在在CMake中运行install命令,但仅当,cmake,Cmake,我对CMake非常陌生,在设置安装规则时遇到困难。 我想在makeinstall中运行以下命令: update-rc.d solshare_stats_runscript defaults 但我只想在以下情况下运行此命令: CMAKE_INSTALL_PREFIX="/" 如何执行此操作?您可能可以使用并提供一个要调用的wee CMake脚本来执行此操作 因此,请将此添加到您的CMakeLists.txt: install(SCRIPT InstallScript.cmake) 然后在In
makeinstall
中运行以下命令:
update-rc.d solshare_stats_runscript defaults
但我只想在以下情况下运行此命令:
CMAKE_INSTALL_PREFIX="/"
如何执行此操作?您可能可以使用并提供一个要调用的wee CMake脚本来执行此操作 因此,请将此添加到您的CMakeLists.txt:
install(SCRIPT InstallScript.cmake)
然后在InstallScript.cmake中:
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()
您可能需要在脚本中为调用提供更多参数(例如,
WORKING\u DIRECTORY
)。首先:非常感谢。第二:脚本有一个问题:它不知道变量${CMAKE_INSTALL_PREFIX}:`如果给定参数:“STREQUAL”“/”指定的未知参数调用堆栈(首先是最近的调用):CMAKE_INSTALL.CMAKE:60(INCLUDE)make:**[INSTALL]错误1`我通过将检查移到CMakeLists.txt文件来修复该问题。再次感谢!很高兴你修好了。另一种方法是将${CMAKE\u INSTALL\u PREFIX}
用引号括在if
中(就像我现在做的那样)。干杯。@Fraser你对CMake的了解给我留下了深刻的印象。。。你是开发人员吗?@Antonio谢谢你的夸奖,但不,我不是一个厨具开发人员。我不确定这里有多少厨具开发人员,但是和都是厨具,直到最近,我也是。