CMake:ExportInterface
From KitwarePublic
Jump to navigationJump to search
Export Interface for CMake Projects
This page documents a prototype design Alex and Brad created for exporting project information from a CMake project for use by outside projects.
Here is an example for exporing a simple project from the build tree and install tree:
EXPORT( # anonymous export must be fully specified here FILE myproj-build.cmake PREFIX myproj-1.2 TARGETS mylibA mylibB mygen ) INSTALL( TARGETS mylibA mylibB mygen EXPORT myproj-install RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib ) INSTALL( EXPORT myproj-install DESTINATION lib/myproj-1.2 FILE myproj-install.cmake PREFIX myproj-1.2 )
A more complicated project may be organized this way:
# CMakeLists.txt EXPORT(myproj-build # named export allows more rules later FILE myproj-build.cmake PREFIX myproj-1.2 ) INSTALL( EXPORT myproj-install DESTINATION lib/myproj-1.2 FILE myproj-install.cmake PREFIX myproj-1.2 ) # lib/CMakeLists.txt EXPORT(myproj-build TARGETS mylibA mylibB ) INSTALL(TARGETS mylibA mylibB EXPORT myproj-install RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib ) # exe/CMakeLists.txt EXPORT(myproj-build TARGETS mygen ) INSTALL(TARGETS mygen EXPORT myproj-install DESTINATION bin )