|
|
Line 1: |
Line 1: |
| {{CMake/Template/Obsolete}} | | {{CMake/Template/Moved}} |
|
| |
|
| == Using CMake Package ==
| | This page has moved [https://gitlab.kitware.com/cmake/community/wikis/doc/cmake/Package here]. |
| | |
| <pre>
| |
| FIND_PACKAGE(CME)
| |
| IF(CME_FOUND)
| |
| INCLUDE(${CME_USE_FILE})
| |
| # ... Use library ...
| |
| ENDIF(CME_FOUND)
| |
| </pre>
| |
| | |
| == Setup CMake Package ==
| |
| | |
| <pre>
| |
| #-----------------------------------------------------------------------------
| |
| # CMEConfig.cmake - CME CMake configuration file for external projects.
| |
| #
| |
| # This file is configured by CME and used by the UseCME.cmake module
| |
| # to load CME's settings for an external project.
| |
| | |
| # The CME include file directories.
| |
| SET(CME_INCLUDE_DIRS "@CMAKE_INSTALL_PREFIX@/include")
| |
| | |
| # The CME library directories.
| |
| SET(CME_LIBRARY_DIRS "@CMAKE_INSTALL_PREFIX@/lib")
| |
| | |
| # The CME version number.
| |
| SET(CME_VERSION_MAJOR "@CME_VERSION_MAJOR@")
| |
| SET(CME_VERSION_MINOR "@CME_VERSION_MINOR@")
| |
| | |
| # The location of the UseCME.cmake file.
| |
| SET(CME_USE_FILE "@CMAKE_INSTALL_PREFIX@/lib/cme/UseCME.cmake")
| |
| | |
| # The build settings file.
| |
| SET(CME_BUILD_SETTINGS_FILE
| |
| "@CMAKE_INSTALL_PREFIX@/lib/cme/CMEBuildSettings.cmake")
| |
| | |
| # The CME library dependencies. These can be blocked by projects
| |
| # not interested in linking to CME's library.
| |
| IF(NOT CME_NO_LIBRARY_DEPENDS)
| |
| INCLUDE("@CMAKE_INSTALL_PREFIX@/lib/cme/CMELibraryDepends.cmake")
| |
| ENDIF(NOT CME_NO_LIBRARY_DEPENDS)
| |
| | |
| # Additional project-specific configuration settings can be set here.
| |
| </pre>
| |
| | |
| <pre>
| |
| #-----------------------------------------------------------------------------
| |
| # CMakeLists.txt
| |
| | |
| # Example project "CMake Export".
| |
| PROJECT(CME)
| |
| | |
| # Every project should have a version number.
| |
| SET(CME_VERSION_MAJOR 1)
| |
| SET(CME_VERSION_MINOR 0)
| |
| | |
| # Example library.
| |
| ADD_LIBRARY(cme cme.cxx)
| |
| | |
| # Link to libm on unix for sqrt(). This is to demonstrate library
| |
| # dependency chaining.
| |
| IF(UNIX)
| |
| TARGET_LINK_LIBRARIES(cme m)
| |
| ENDIF(UNIX)
| |
| | |
| # Create the CMEConfig.cmake file for installation.
| |
| CONFIGURE_FILE(${CME_SOURCE_DIR}/CMEConfig.cmake.in
| |
| ${CME_BINARY_DIR}/CMEConfig.cmake @ONLY IMMEIDATE)
| |
| | |
| # Save the compiler settings and library dependencies so another
| |
| # project can import them.
| |
| INCLUDE(${CMAKE_ROOT}/Modules/CMakeExportBuildSettings.cmake)
| |
| CMAKE_EXPORT_BUILD_SETTINGS(${CME_BINARY_DIR}/CMEBuildSettings.cmake)
| |
| EXPORT_LIBRARY_DEPENDENCIES(${CME_BINARY_DIR}/CMELibraryDepends.cmake)
| |
| | |
| # Install targets. Make sure the paths configured into
| |
| # CMEConfig.cmake match.
| |
| INSTALL_TARGETS(/lib cme)
| |
| INSTALL_FILES(/include .h cme)
| |
| INSTALL_FILES(/lib/cme .cmake CMEBuildSettings CMELibraryDepends
| |
| UseCME CMEConfig)
| |
| </pre>
| |
| | |
| <pre>
| |
| #-----------------------------------------------------------------------------
| |
| # UseCME.cmake
| |
| #
| |
| # This module is provided as CME_USE_FILE by CMEConfig.cmake. It can
| |
| # be INCLUDEd in a project to load the needed compiler and linker
| |
| # settings to use CME.
| |
| #
| |
| | |
| # Load the compiler settings used for CME.
| |
| IF(CME_BUILD_SETTINGS_FILE)
| |
| INCLUDE(${CMAKE_ROOT}/Modules/CMakeImportBuildSettings.cmake)
| |
| CMAKE_IMPORT_BUILD_SETTINGS(${CME_BUILD_SETTINGS_FILE})
| |
| ENDIF(CME_BUILD_SETTINGS_FILE)
| |
| | |
| # Add include directories needed to use CME.
| |
| INCLUDE_DIRECTORIES(${CME_INCLUDE_DIRS})
| |
| | |
| # Add link directories needed to use CME.
| |
| LINK_DIRECTORIES(${CME_LIBRARY_DIRS})
| |
| </pre>
| |
| | |
| | |
| <pre>
| |
| /*--------------------------------------------------------------------------*/
| |
| /* cme.cxx */
| |
| #include <math.h>
| |
| double cme()
| |
| {
| |
| return sqrt(2);
| |
| }
| |
| </pre>
| |
| | |
| | |
| <pre>
| |
| /*--------------------------------------------------------------------------*/
| |
| /* cme.h */
| |
| #ifndef _cme_h
| |
| #define _cme_h
| |
| | |
| extern double cme();
| |
| | |
| #endif
| |
| </pre>
| |
| | |
| | |
| == Reference ==
| |
| * http://public.kitware.com/pipermail/cmake/2003-March/003554.html
| |
| | |
| {{CMake/Template/Footer}}
| |