Что такое cmake_install.cmake

Я написал очень простую программу HelloWorld.c и запустил Cmake. Он создал файл cmake_install.cmake в моем каталоге сборки. Может кто-нибудь объяснить мне, почему CMake сгенерировал файл cmake_install.cmake? Что это за цель и как я могу ее использовать?

CMakelists.txt:

cmake_minimum_required(VERSION 3.0)
PROJECT(FirstExample)
add_executable(prog first.c) 

Спасибо!

Ответы

Ответ 1

Вы не используете cmake_install.cmake напрямую. Он содержит инструкции, которые cmake использует для установки вашей программы.

С вашим текущим CMakeLists.txt сгенерированный файл мало что делает. Чтобы создать полезную установку, вам нужно добавить больше команд INSTALL в ваш CMakeLists.txt используя синтаксис ниже.

INSTALL(TARGETS targets... [EXPORT <export-name>]
    [[ARCHIVE|LIBRARY|RUNTIME|FRAMEWORK|BUNDLE|
      PRIVATE_HEADER|PUBLIC_HEADER|RESOURCE]
     [DESTINATION <dir>]
     [INCLUDES DESTINATION [<dir> ...]]
     [PERMISSIONS permissions...]
     [CONFIGURATIONS [Debug|Release|...]]
     [COMPONENT <component>]
     [OPTIONAL] [NAMELINK_ONLY|NAMELINK_SKIP]
    ] [...])

Для дальнейшего чтения этой команды, ознакомьтесь с документацией сайта и вики.

Ответ 2

Чтобы уточнить ответ на jmstoker:

Обычно CMake создает соответствующие цели в созданном Makefile, так что вы можете, после выполнения mkdir build && cd build && cmake.. и, возможно, make, запустить make install, make uninstall и т.д.

Затем он снова вызовет CMake, используя упомянутые вами файлы .cmake.

Ответ 3

Как и в предыдущем ответе, cmake_install.cmake содержит команды, сгенерированные командой install из вашего CMakeLists.txt.

Вы можете выполнить его с помощью cmake -P cmake_install.cmake и он выполнит установку вашего проекта даже в Windows.

https://cmake.org/pipermail/cmake/2007-April/013657.html