在CMake中运行install命令,但仅限于

时间:2013-06-30 11:18:19

标签: cmake

我对CMake非常陌生,并且无法设置安装规则。 我想在make install中运行以下命令:

update-rc.d solshare_stats_runscript defaults

但我只想在以下情况下运行此命令:

CMAKE_INSTALL_PREFIX="/"

我该怎么做?

1 个答案:

答案 0 :(得分:5)

您可以使用install(SCRIPT ...)执行此操作,并提供一个可调用的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()

您可能需要在脚本中为execute_process调用提供更多参数(例如WORKING_DIRECTORY)。