3.17.10. Layout¶
include/ |
<project>/ |
<project>.hpp |
|
lib*/ |
<project>_<target> |
||
cmake/ |
<project>/ |
<project>Config.cmake |
|
bin/ |
<project>_<target> |
||
cmake/ |
module/ |
<project>_<module>.cmake |
|
template/ |
<project>/ |
*.cmake.in |
|
script/ |
<project>/ |
*.cmake |
|
include/ |
<project>/ |
*.cmake |
include(GNUInstallDirs)
install(
TARGETS <project>_<target>_1 <project>_<target>_2
EXPORT <project>Targets
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
)
See also
CMake documentation
Linux layout after installation of example project:
├── bin
│ ├── fruits_breakfast*
│ └── fruits_dinner*
├── include
│ └── fruits
│ ├── fruits.hpp
│ ├── FRUITS_ROSACEAE_EXPORT.h
│ ├── FRUITS_TROPICAL_EXPORT.h
│ ├── rosaceae
│ │ ├── Pear.hpp
│ │ ├── Plum.hpp
│ │ └── rosaceae.hpp
│ └── tropical
│ ├── Avocado.hpp
│ ├── Pineapple.hpp
│ └── tropical.hpp
└── lib
├── cmake
│ └── fruits
│ ├── fruitsConfig.cmake
│ ├── fruitsConfigVersion.cmake
│ ├── fruitsTargets.cmake
│ └── fruitsTargets-release.cmake
├── libfruits_rosaceae.a
└── libfruits_tropical.a
Windows layout after installation of example project:
├── bin
│ ├── fruits_breakfast.exe
│ └── fruits_dinner.exe
├── include
│ └── fruits
│ ├── fruits.hpp
│ ├── FRUITS_ROSACEAE_EXPORT.h
│ ├── FRUITS_TROPICAL_EXPORT.h
│ ├── rosaceae
│ │ ├── Pear.hpp
│ │ ├── Plum.hpp
│ │ └── rosaceae.hpp
│ └── tropical
│ ├── Avocado.hpp
│ ├── Pineapple.hpp
│ └── tropical.hpp
└── lib
├── cmake
│ └── fruits
│ ├── fruitsConfig.cmake
│ ├── fruitsConfigVersion.cmake
│ ├── fruitsTargets.cmake
│ └── fruitsTargets-release.cmake
├── fruits_rosaceae.lib
└── fruits_tropical.lib
Windows Debug + DLL:
├── bin
│ ├── fruits_breakfast.exe
│ ├── fruits_breakfast.pdb
│ ├── fruits_dinner.exe
│ ├── fruits_dinner.pdb
│ ├── fruits_rosaceaed.dll
│ ├── fruits_rosaceaed.pdb
│ ├── fruits_tropicald.dll
│ └── fruits_tropicald.pdb
├── include
│ └── fruits
│ ├── fruits.hpp
│ ├── FRUITS_ROSACEAE_EXPORT.h
│ ├── FRUITS_TROPICAL_EXPORT.h
│ ├── rosaceae
│ │ ├── Pear.hpp
│ │ ├── Plum.hpp
│ │ └── rosaceae.hpp
│ └── tropical
│ ├── Avocado.hpp
│ ├── Pineapple.hpp
│ └── tropical.hpp
└── lib
├── cmake
│ └── fruits
│ ├── fruitsConfig.cmake
│ ├── fruitsConfigVersion.cmake
│ ├── fruitsTargets.cmake
│ └── fruitsTargets-debug.cmake
├── fruits_rosaceaed.lib
└── fruits_tropicald.lib