What is cmake_install.cmake

30,604

Solution 1

You generally don't use cmake_install.cmake directly. From the v3.12 page it states:

The install() command generates a file, cmake_install.cmake, inside the build directory, which is used internally by the generated install target and by CPack.

With your current CMakeLists.txt, the generated file doesn't do much. To create a useful install you would need to add more INSTALL commands to your CMakeLists.txt using the syntax below.

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]
    ] [...])

For further reading on this command, check out the documentation site and wiki.

If it's desired to manually execute the script as stated by Nic30g the 3.12 page states that cmake -P accepts the following variables:

COMPONENT
Set this variable to install only a single CPack component as opposed to all of them. For example, if you only want to install the Development component, run

 cmake -DCOMPONENT=Development -P cmake_install.cmake

BUILD_TYPE
Set this variable to change the build type if you are using a multi-config generator. For example, to install with the Debug configuration, run

 cmake -DBUILD_TYPE=Debug -P cmake_install.cmake.

DESTDIR
This is an environment variable rather than a CMake variable. It allows you to change the installation prefix on UNIX systems. See DESTDIR for details.

Solution 2

As previous answer tells, the cmake_install.cmake contains the commands generated by install command from your CMakeLists.txt.

You can execute it by cmake -P cmake_install.cmake and it performs the installation of your project even on windows.

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

Share:
30,604
JecaJeca
Author by

JecaJeca

Updated on October 01, 2020

Comments

  • JecaJeca
    JecaJeca over 3 years

    I wrote a very simple HelloWorld.c program and ran Cmake. It created a cmake_install.cmake file in my build directory. Can somebody explain to me why CMake generated the file cmake_install.cmake? What is it's purpose and how can I use it?

    CMakelists.txt :

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

    Thanks!

  • user2023370
    user2023370 about 8 years
    But can it do anything? I'm in Visual Studio and I don't see an "install" project; though cmake_install.cmake is there.
  • einpoklum
    einpoklum almost 6 years
    This does not answer OP's question.