]> Creatis software - bbtk.git/blobdiff - kernel/cmake/CMakeCreateFindPackage.cmake
*** empty log message ***
[bbtk.git] / kernel / cmake / CMakeCreateFindPackage.cmake
diff --git a/kernel/cmake/CMakeCreateFindPackage.cmake b/kernel/cmake/CMakeCreateFindPackage.cmake
deleted file mode 100644 (file)
index ca33a0c..0000000
+++ /dev/null
@@ -1,254 +0,0 @@
-#-----------------------------------------------------------------------------
-# Macro CREATE_FIND_PACKAGE
-# Creates and install the cmake files which allow 
-# to find a library by the cmake command FIND_PACKAGE.
-#
-# Inputs :
-# --------
-#  LIBRARY_NAME : name of the library to find 
-#
-# The following variables **MUST** have been set previously :
-#
-# * ${LIBRARY_NAME}_BUILD_TREE_RELATIVE_INCLUDE_PATHS
-#    The list of include paths 
-#    when someone uses a *BUILD TREE* version of ${LIBRARY_NAME}.
-#    NB : 
-#     THE PATHS *MUST BE RELATIVE* TO THE ROOT DIR OF THE PROJECT **SOURCES** !
-#    Assume your project architecture is :
-#     install/ : directory in which CREATE_FIND_PACKAGE is invoked
-#     src/part1/include/ : first include dir
-#     src/part2/include/ : second include dir
-#    Then you should set the var with :
-#    SET(${LIBRARY_NAME}_BUILD_TREE_RELATIVE_INCLUDE_PATHS
-#     src/part1/include
-#     src/part2/include )
-#    Which will result in actual include paths :
-#     ${PROJECT_SOURCE_DIR}/src/part1/include;
-#     ${PROJECT_SOURCE_DIR}/src/part2/include
-# * ${LIBRARY_NAME}_BUILD_TREE_RELATIVE_LIBRARY_PATHS
-#    Like the previous var but for the library paths.
-#    NB : 
-#     THE PATHS *MUST BE RELATIVE* TO THE ROOT DIR OF THE **BUILD TREE** 
-#     THAT IS POINT TO THE FOLDERS WHERE THE LIBS WILL BE BUILD
-#    Assume that your project architecture is :
-#     src/part1/src/ : first source dir, in which the lib 'part1' is built
-#     src/part2/src/ : first source dir, in which the lib 'part2' is built
-#    Then you should set the var with 
-#    SET(${LIBRARY_NAME}_BUILD_TREE_RELATIVE_LIBRARY_PATHS
-#     src/part1/src
-#     src/part2/src
-#     )
-#    Which will result in actual library paths :
-#     ${PROJECT_BINARY_DIR}/src/part1/src
-#     ${PROJECT_BINARY_DIR}/src/part2/src
-# * ${LIBRARY_NAME}_INSTALL_TREE_RELATIVE_INCLUDE_PATHS
-#    The list of include paths 
-#    when someone uses an *INSTALLED* version of ${LIBRARY_NAME} 
-#    The paths *MUST BE RELATIVE* to INSTALL_PREFIX
-#  #    A typical example is "include/${LIBRARY_NAME}"
-# * ${LIBRARY_NAME}_INSTALL_TREE_RELATIVE_LIBRARY_PATHS
-#    Like the previous var but for library paths.
-#    A typical example is ".."
-# * ${LIBRARY_NAME}_LIBRARIES
-#    The list of libraries to link against when using ${LIBRARY_NAME}
-#
-# The following variables can be set optionally :
-#
-# * ${LIBRARY_NAME}_REQUIRED_C_FLAGS
-# * ${LIBRARY_NAME}_REQUIRED_CXX_FLAGS
-# * ${LIBRARY_NAME}_REQUIRED_LINK_FLAGS
-# * ${LIBRARY_NAME}_MAJOR_VERSION
-# * ${LIBRARY_NAME}_MINOR_VERSION
-# * ${LIBRARY_NAME}_BUILD_VERSION
-# * ${LIBRARY_NAME}_INSTALL_FOLDER : if set then install the stuff 
-#   in INSTALL_PREFIX/lib/${LIBRARY_NAME}_INSTALL_FOLDER 
-#   instead of INSTALL_PREFIX/lib/${LIBRARY_NAME}
-#
-# 
-# To provide a user defined 
-# couple of Config/Use file (in addition to the standard one) use :
-#  SET( ${LIBRARY_NAME}_HAS_ADDITIONAL_CONFIG_FILE  TRUE )
-# and store the *ABSOLUTE* paths to the additional files in the vars :
-#  ${LIBRARY_NAME}_ADDITIONAL_CONFIG_FILE
-#  ${LIBRARY_NAME}_ADDITIONAL_USE_FILE
-# (e.g. ${CMAKE_CURRENT_SOURCE_DIR}/MyConfig.cmake)
-#
-# Outputs :
-# --------
-# At cmake run-time, the macro creates the following files 
-# in the current dir of the build tree (where the macro is invoked) :
-#  Use${LIBRARY_NAME}.cmake
-#  ${LIBRARY_NAME}Config.cmake
-#  ${LIBRARY_NAME}BuildSettings.cmake
-# And if the vars ${LIBRARY_NAME}_ADDITIONAL_CONFIG_FILE and
-# ${LIBRARY_NAME}_ADDITIONAL_USE_FILE are set, it also creates :
-#  Additional${LIBRARY_NAME}Config.cmake
-#  AdditionalUse${LIBRARY_NAME}.cmake
-# 
-# At install-time, the same files are installed 
-# in INSTALL_PREFIX/lib/${LIBRARY_NAME}
-# and the file :
-#  Find${LIBRARY_NAME}.cmake
-# is installed in ${CMAKE_ROOT}/Modules/
-#
-#
-#-----------------------------------------------------------------------------
-
-MACRO(CMAKE_CREATE_FIND_PACKAGE LIBRARY_NAME)
-
-  #---------------------------------------------------------------------------
-  # Sets the common values to build tree and install tree configs
-  SET(CFP_LIB_REQUIRED_C_FLAGS    ${${LIBRARY_NAME}_REQUIRED_C_FLAGS})
-  SET(CFP_LIB_REQUIRED_CXX_FLAGS  ${${LIBRARY_NAME}_REQUIRED_CXX_FLAGS})
-  SET(CFP_LIB_REQUIRED_LINK_FLAGS ${${LIBRARY_NAME}_REQUIRED_LINK_FLAGS})
-  SET(CFP_LIB_MAJOR_VERSION       ${${LIBRARY_NAME}_MAJOR_VERSION})
-  SET(CFP_LIB_MINOR_VERSION       ${${LIBRARY_NAME}_MINOR_VERSION})
-  SET(CFP_LIB_BUILD_VERSION       ${${LIBRARY_NAME}_BUILD_VERSION})
-  SET(CFP_LIB_VERSION             
-    ${CFP_LIB_MAJOR_VERSION}.${CFP_LIB_MINOR_VERSION}.${CFP_LIB_BUILD_VERSION})
-  SET(CFP_LIB_LIBRARIES ${${LIBRARY_NAME}_LIBRARIES})
-  IF (${LIBRARY_NAME}_HAS_ADDITIONAL_CONFIG_FILE)
-    SET(CFP_LIB_HAS_ADDITIONAL_CONFIG_FILE TRUE)
-  ELSE (${LIBRARY_NAME}_HAS_ADDITIONAL_CONFIG_FILE)
-    SET(CFP_LIB_HAS_ADDITIONAL_CONFIG_FILE FALSE)
-  ENDIF (${LIBRARY_NAME}_HAS_ADDITIONAL_CONFIG_FILE)
-  #---------------------------------------------------------------------------
-
-
-  #---------------------------------------------------------------------------
-  #-- BUILD TREE configuration 
-  SET(CFP_BUILD_TREE_CONFIGURATION TRUE)
-  # UseLIBRARY_NAME.cmake 
-  CONFIGURE_FILE(
-    ${CMakeCreateFindPackage_DIR}/CMakeCreateFindPackage_UseLibrary.cmake.in
-    ${PROJECT_BINARY_DIR}/Use${LIBRARY_NAME}.cmake
-    @ONLY IMMEDIATE
-    )
-  # LIBRARY_NAMEConfig.cmake 
-  SET(CFP_LIB_RELATIVE_INCLUDE_PATHS 
-    ${${LIBRARY_NAME}_BUILD_TREE_RELATIVE_INCLUDE_PATHS})
-  SET(CFP_LIB_RELATIVE_LIBRARY_PATHS 
-    ${${LIBRARY_NAME}_BUILD_TREE_RELATIVE_LIBRARY_PATHS})
-  CONFIGURE_FILE(
-    ${CMakeCreateFindPackage_DIR}/CMakeCreateFindPackage_LibraryConfig.cmake.in
-    ${PROJECT_BINARY_DIR}/${LIBRARY_NAME}Config.cmake
-    @ONLY IMMEDIATE
-    )
-  # LIBRARY_NAMEBuildSettings.cmake :
-  # Save the compiler settings so another project can import them.
-  INCLUDE(${CMAKE_ROOT}/Modules/CMakeExportBuildSettings.cmake)
-  CMAKE_EXPORT_BUILD_SETTINGS(${PROJECT_BINARY_DIR}/${LIBRARY_NAME}BuildSettings.cmake)
-  # Additional Config and Use files
-  IF(CFP_LIB_HAS_ADDITIONAL_CONFIG_FILE)
-    CONFIGURE_FILE(
-      ${${LIBRARY_NAME}_ADDITIONAL_CONFIG_FILE}
-      ${PROJECT_BINARY_DIR}/Additional${LIBRARY_NAME}Config.cmake
-      @ONLY IMMEDIATE
-      )
-    CONFIGURE_FILE(
-      ${${LIBRARY_NAME}_ADDITIONAL_USE_FILE}
-      ${PROJECT_BINARY_DIR}/AdditionalUse${LIBRARY_NAME}.cmake
-      @ONLY IMMEDIATE
-      )
-  ENDIF(CFP_LIB_HAS_ADDITIONAL_CONFIG_FILE)
-  #---------------------------------------------------------------------------
-  
-
-  #---------------------------------------------------------------------------
-  #-- INSTALL TREE configuration 
-  SET(CFP_BUILD_TREE_CONFIGURATION FALSE)
-  # Create work directory to put the configured files because 
-  # if the user invoked the macro at the root of the build tree the files 
-  # would overwrite those configured for the build tree
-  SET(CFP_WORK_DIR ${CMAKE_CURRENT_BINARY_DIR}/CMakeCreateFindPackage_stuff)
-  IF(NOT IS_DIRECTORY ${CFP_WORK_DIR})
-    FILE(MAKE_DIRECTORY ${CFP_WORK_DIR})
-  ENDIF(NOT IS_DIRECTORY ${CFP_WORK_DIR})
-  
-  #----------------------------------------------------------------------------
-  #INSTALLATION PATH
-  IF(WIN32)
-    SET(INSTALL_PATH .)
-  ELSE(WIN32)
-    IF(${LIBRARY_NAME}_INSTALL_FOLDER)
-      SET(INSTALL_PATH lib/${${LIBRARY_NAME}_INSTALL_FOLDER})
-    ELSE(${LIBRARY_NAME}_INSTALL_FOLDER)
-      SET(INSTALL_PATH lib/${LIBRARY_NAME})
-    ENDIF(${LIBRARY_NAME}_INSTALL_FOLDER)
-  ENDIF(WIN32)
-
-
-  # UseLIBRARY_NAME.cmake 
-  CONFIGURE_FILE(
-    ${CMakeCreateFindPackage_DIR}/CMakeCreateFindPackage_UseLibrary.cmake.in
-    ${CFP_WORK_DIR}/Use${LIBRARY_NAME}.cmake
-    @ONLY IMMEDIATE
-    )
-  INSTALL(
-    FILES 
-    ${CFP_WORK_DIR}/Use${LIBRARY_NAME}.cmake
-    DESTINATION ${INSTALL_PATH}
-    )
-  # LIBRARY_NAMEConfig.cmake 
-  SET(CFP_LIB_RELATIVE_INCLUDE_PATHS 
-    ${${LIBRARY_NAME}_INSTALL_TREE_RELATIVE_INCLUDE_PATHS})
-  SET(CFP_LIB_RELATIVE_LIBRARY_PATHS 
-    ${${LIBRARY_NAME}_INSTALL_TREE_RELATIVE_LIBRARY_PATHS})
-  CONFIGURE_FILE(
-    ${CMakeCreateFindPackage_DIR}/CMakeCreateFindPackage_LibraryConfig.cmake.in
-    ${CFP_WORK_DIR}/${LIBRARY_NAME}Config.cmake
-    @ONLY IMMEDIATE
-    )
-  INSTALL(
-    FILES 
-    ${CFP_WORK_DIR}/${LIBRARY_NAME}Config.cmake
-    DESTINATION ${INSTALL_PATH}
-    )
-  # LIBRARY_NAMEBuildSettings.cmake :
-  CMAKE_EXPORT_BUILD_SETTINGS(${CFP_WORK_DIR}/${LIBRARY_NAME}BuildSettings.cmake)
-  INSTALL(
-    FILES 
-    ${CFP_WORK_DIR}/${LIBRARY_NAME}BuildSettings.cmake
-    DESTINATION  ${INSTALL_PATH}
-    )
-  # Additional Config and Use files
-  IF(CFP_LIB_HAS_ADDITIONAL_CONFIG_FILE)
-    CONFIGURE_FILE(
-      ${${LIBRARY_NAME}_ADDITIONAL_CONFIG_FILE}
-      ${CFP_WORK_DIR}/Additional${LIBRARY_NAME}Config.cmake
-      @ONLY IMMEDIATE
-      )
-    INSTALL(
-      FILES 
-      ${CFP_WORK_DIR}/Additional${LIBRARY_NAME}Config.cmake
-      DESTINATION ${INSTALL_PATH}
-      )
-    CONFIGURE_FILE(
-      ${${LIBRARY_NAME}_ADDITIONAL_USE_FILE}
-      ${CFP_WORK_DIR}/AdditionalUse${LIBRARY_NAME}.cmake
-      @ONLY IMMEDIATE
-      )
-    INSTALL(
-      FILES 
-      ${CFP_WORK_DIR}/AdditionalUse${LIBRARY_NAME}.cmake
-      DESTINATION  ${INSTALL_PATH}
-      )
-  ENDIF(CFP_LIB_HAS_ADDITIONAL_CONFIG_FILE)
-  # Specific to install tree
-  # FindLIBRARY_NAME.cmake in CMake/Modules dir
-  CONFIGURE_FILE(
-    ${CMakeCreateFindPackage_DIR}/CMakeCreateFindPackage_FindLibrary.cmake.in
-    ${CFP_WORK_DIR}/Find${LIBRARY_NAME}.cmake
-    @ONLY IMMEDIATE
-    )
-  INSTALL( 
-    FILES ${CFP_WORK_DIR}/Find${LIBRARY_NAME}.cmake
-    DESTINATION ${CMAKE_ROOT}/Modules 
-    )
-  #---------------------------------------------------------------------------
-  
-
-
-
-ENDMACRO(CMAKE_CREATE_FIND_PACKAGE)
-#-----------------------------------------------------------------------------