20 added files
lcio/cmake
diff -N FindILCSOFT_CMAKE_MODULES.cmake
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ FindILCSOFT_CMAKE_MODULES.cmake 9 Mar 2011 11:19:33 -0000 1.1.2.1
@@ -0,0 +1,28 @@
+
+# --------- CMakeModules version ----------------
+SET( ILCSOFT_CMAKE_MODULES_VERSION_MAJOR 1 )
+SET( ILCSOFT_CMAKE_MODULES_VERSION_MINOR 11 )
+SET( ILCSOFT_CMAKE_MODULES_VERSION_PATCH 0 )
+SET( ILCSOFT_CMAKE_MODULES_VERSION_TWEAK 0 )
+# -----------------------------------------------
+
+
+SET( ILCSOFT_CMAKE_MODULES_VERSION ${ILCSOFT_CMAKE_MODULES_VERSION_MAJOR}.${ILCSOFT_CMAKE_MODULES_VERSION_MINOR}.${ILCSOFT_CMAKE_MODULES_VERSION_PATCH}.${ILCSOFT_CMAKE_MODULES_VERSION_TWEAK} )
+
+GET_FILENAME_COMPONENT( ILCSOFT_CMAKE_MODULES_ROOT ${CMAKE_CURRENT_LIST_FILE} PATH )
+IF( NOT ILCSOFT_CMAKE_MODULES_FIND_QUIETLY )
+ MESSAGE( STATUS "Check for ILCSOFT_CMAKE_MODULES: ${ILCSOFT_CMAKE_MODULES_ROOT}" )
+ENDIF()
+
+INCLUDE( MacroCheckPackageVersion )
+CHECK_PACKAGE_VERSION( ILCSOFT_CMAKE_MODULES ${ILCSOFT_CMAKE_MODULES_VERSION} )
+
+SET( ILCSOFT_CMAKE_MODULES_VERSION_SUITABLE TRUE )
+IF( PACKAGE_VERSION_UNSUITABLE )
+ SET( ILCSOFT_CMAKE_MODULES_VERSION_SUITABLE FALSE )
+ENDIF()
+
+# ---------- final checking ---------------------------------------------------
+INCLUDE( FindPackageHandleStandardArgs )
+FIND_PACKAGE_HANDLE_STANDARD_ARGS( ILCSOFT_CMAKE_MODULES DEFAULT_MSG ILCSOFT_CMAKE_MODULES_VERSION_SUITABLE )
+
lcio/cmake
diff -N FindROOT.cmake
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ FindROOT.cmake 9 Mar 2011 11:19:33 -0000 1.1.2.1
@@ -0,0 +1,250 @@
+###############################################################################
+# cmake module for finding ROOT
+#
+# requires:
+# MacroCheckPackageLibs.cmake for checking package libraries
+#
+# Following cmake variables are returned by this module:
+#
+# ROOT_FOUND : set to TRUE if ROOT found
+# If FIND_PACKAGE is called with REQUIRED and COMPONENTS arguments
+# ROOT_FOUND is only set to TRUE if ALL components are found.
+# If REQUIRED is NOT set components may or may not be available
+#
+# ROOT_LIBRARIES : list of ROOT libraries (NOT including COMPONENTS)
+# ROOT_INCLUDE_DIRS : list of paths to be used with INCLUDE_DIRECTORIES
+# ROOT_LIBRARY_DIRS : list of paths to be used with LINK_DIRECTORIES
+# ROOT_COMPONENT_LIBRARIES : list of ROOT component libraries
+# ROOT_${COMPONENT}_FOUND : set to TRUE or FALSE for each library
+# ROOT_${COMPONENT}_LIBRARY : path to individual libraries
+#
+#
+# Please note that by convention components should be entered exactly as
+# the library names, i.e. the component name equivalent to the library
+# $ROOTSYS/lib/libMathMore.so should be called MathMore and NOT:
+# mathmore or Mathmore or MATHMORE
+#
+# However to follow the usual cmake convention it is agreed that the
+# ROOT_${COMPONENT}_FOUND and ROOT_${COMPONENT}_LIBRARY variables are ALL
+# uppercase, i.e. the MathMore component returns: ROOT_MATHMORE_FOUND and
+# ROOT_MATHMORE_LIBRARY NOT ROOT_MathMore_FOUND or ROOT_MathMore_LIBRARY
+#
+#
+# The additional ROOT components should be defined as follows:
+# FIND_PACKAGE( ROOT COMPONENTS MathMore Gdml Geom ...)
+#
+# If components are required use:
+# FIND_PACKAGE( ROOT REQUIRED COMPONENTS MathMore Gdml Geom ...)
+#
+# If only root is required and components are NOT required use:
+# FIND_PACKAGE( ROOT REQUIRED )
+# FIND_PACKAGE( ROOT COMPONENTS MathMore Gdml Geom ... QUIET )
+# then you need to check for ROOT_MATHMORE_FOUND, ROOT_GDML_FOUND, etc.
+#
+# The variable ROOT_USE_COMPONENTS can also be used before calling
+# FIND_PACKAGE, i.e.:
+# SET( ROOT_USE_COMPONENTS MathMore Gdml Geom )
+# FIND_PACKAGE( ROOT REQUIRED ) # all ROOT_USE_COMPONENTS must also be found
+# FIND_PACKAGE( ROOT ) # check for ROOT_FOUND, ROOT_MATHMORE_FOUND, etc.
+#
+# @author Jan Engels, DESY
+###############################################################################
+
+
+# find root-config
+SET( ROOT_CONFIG_EXECUTABLE ROOT_CONFIG_EXECUTABLE-NOTFOUND )
+MARK_AS_ADVANCED( ROOT_CONFIG_EXECUTABLE )
+FIND_PROGRAM( ROOT_CONFIG_EXECUTABLE root-config PATHS ${ROOT_DIR}/bin NO_DEFAULT_PATH )
+IF( NOT ROOT_DIR )
+ FIND_PROGRAM( ROOT_CONFIG_EXECUTABLE root-config )
+ENDIF()
+
+# find rootcint
+SET( ROOT_CINT_EXECUTABLE ROOT_CINT_EXECUTABLE-NOTFOUND )
+MARK_AS_ADVANCED( ROOT_CINT_EXECUTABLE )
+FIND_PROGRAM( ROOT_CINT_EXECUTABLE rootcint PATHS ${ROOT_DIR}/bin NO_DEFAULT_PATH )
+IF( NOT ROOT_DIR )
+ FIND_PROGRAM( ROOT_CINT_EXECUTABLE rootcint )
+ENDIF()
+
+IF( NOT ROOT_FIND_QUIETLY )
+ MESSAGE( STATUS "Check for ROOT_CONFIG_EXECUTABLE: ${ROOT_CONFIG_EXECUTABLE}" )
+ MESSAGE( STATUS "Check for ROOT_CINT_EXECUTABLE: ${ROOT_CINT_EXECUTABLE}" )
+ENDIF()
+
+
+IF( ROOT_CONFIG_EXECUTABLE )
+
+
+ # ==============================================
+ # === ROOT_VERSION ===
+ # ==============================================
+
+ INCLUDE( MacroCheckPackageVersion )
+
+ EXECUTE_PROCESS( COMMAND "${ROOT_CONFIG_EXECUTABLE}" --version
+ OUTPUT_VARIABLE _version
+ RESULT_VARIABLE _exit_code
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ IF( _exit_code EQUAL 0 )
+
+ # set required variables for MacroCheckPackageVersion
+ STRING(REGEX REPLACE "^([0-9]+).*" "\\1" ROOT_VERSION_MAJOR "${_version}")
+ STRING(REGEX REPLACE "^[0-9]+.([0-9]+).*" "\\1" ROOT_VERSION_MINOR "${_version}")
+ STRING(REGEX REPLACE "^[0-9]+.[0-9]+.([0-9]+).*" "\\1" ROOT_VERSION_PATCH "${_version}")
+
+ SET( ROOT_VERSION "${ROOT_VERSION_MAJOR}.${ROOT_VERSION_MINOR}.${ROOT_VERSION_PATCH}" )
+ ENDIF()
+
+ CHECK_PACKAGE_VERSION( ROOT ${ROOT_VERSION} )
+
+
+
+ # ==============================================
+ # === ROOT_INCLUDE_DIR ===
+ # ==============================================
+
+ # get include dir from root-config output
+ EXECUTE_PROCESS( COMMAND "${ROOT_CONFIG_EXECUTABLE}" --incdir
+ OUTPUT_VARIABLE _inc_dir
+ RESULT_VARIABLE _exit_code
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ IF( NOT _exit_code EQUAL 0 )
+ # clear _inc_dir if root-config exits with error
+ # it might contain garbage
+ SET( _inc_dir )
+ ENDIF()
+
+
+ SET( ROOT_INCLUDE_DIRS ROOT_INCLUDE_DIRS-NOTFOUND )
+ MARK_AS_ADVANCED( ROOT_INCLUDE_DIRS )
+
+ FIND_PATH( ROOT_INCLUDE_DIRS
+ NAMES TH1.h
+ PATHS ${ROOT_DIR}/include ${_inc_dir}
+ NO_DEFAULT_PATH
+ )
+
+
+
+ # ==============================================
+ # === ROOT_LIBRARIES ===
+ # ==============================================
+
+ # get library dir from root-config output
+ EXECUTE_PROCESS( COMMAND "${ROOT_CONFIG_EXECUTABLE}" --libdir
+ OUTPUT_VARIABLE ROOT_LIBRARY_DIR
+ RESULT_VARIABLE _exit_code
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ IF( NOT _exit_code EQUAL 0 )
+ # clear ROOT_LIBRARY_DIR if root-config exits with error
+ # it might contain garbage
+ SET( ROOT_LIBRARY_DIR )
+ ENDIF()
+
+
+
+ # ========== standard root libraries =================
+
+ # standard root libraries (without components)
+ SET( _root_libnames )
+
+ # get standard root libraries from 'root-config --libs' output
+ EXECUTE_PROCESS( COMMAND "${ROOT_CONFIG_EXECUTABLE}" --noauxlibs --libs
+ OUTPUT_VARIABLE _aux
+ RESULT_VARIABLE _exit_code
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ IF( _exit_code EQUAL 0 )
+
+ # create a list out of the output
+ SEPARATE_ARGUMENTS( _aux )
+
+ # remove first item -L compiler flag
+ LIST( REMOVE_AT _aux 0 )
+
+ FOREACH( _lib ${_aux} )
+
+ # extract libnames from -l compiler flags
+ STRING( REGEX REPLACE "^-.(.*)$" "\\1" _libname "${_lib}")
+
+ # fix for some root-config versions which export -lz even if using --noauxlibs
+ IF( NOT _libname STREQUAL "z" )
+
+ # append all library names into a list
+ LIST( APPEND _root_libnames ${_libname} )
+
+ ENDIF()
+
+ ENDFOREACH()
+
+ ENDIF()
+
+
+
+ # ========== additional root components =================
+
+ #LIST( APPEND ROOT_FIND_COMPONENTS Minuit2 ) # DEPRECATED !!!
+
+
+ # ---------- libraries --------------------------------------------------------
+ INCLUDE( MacroCheckPackageLibs )
+
+ SET( ROOT_LIB_SEARCH_PATH ${ROOT_LIBRARY_DIR} )
+
+ # only standard libraries should be passed as arguments to CHECK_PACKAGE_LIBS
+ # additional components are set by cmake in variable PKG_FIND_COMPONENTS
+ # first argument should be the package name
+ CHECK_PACKAGE_LIBS( ROOT ${_root_libnames} )
+
+
+
+
+ # ====== DL LIBRARY ==================================================
+ # workaround for cmake bug in 64 bit:
+ # see: http://public.kitware.com/mantis/view.php?id=10813
+ IF( CMAKE_SIZEOF_VOID_P EQUAL 8 )
+ FIND_LIBRARY( DL_LIB NAMES ${CMAKE_DL_LIBS} dl PATHS /usr/lib64 /lib64 NO_DEFAULT_PATH )
+ ENDIF( CMAKE_SIZEOF_VOID_P EQUAL 8 )
+
+ FIND_LIBRARY( DL_LIB NAMES ${CMAKE_DL_LIBS} dl )
+ MARK_AS_ADVANCED( DL_LIB )
+
+ IF( NOT ROOT_FIND_QUIETLY )
+ MESSAGE( STATUS "Check for libdl.so: ${DL_LIB}" )
+ ENDIF()
+
+ENDIF( ROOT_CONFIG_EXECUTABLE )
+
+# Threads library
+#FIND_PACKAGE( Threads REQUIRED)
+
+
+# ---------- final checking ---------------------------------------------------
+INCLUDE( FindPackageHandleStandardArgs )
+# set ROOT_FOUND to TRUE if all listed variables are TRUE and not empty
+# ROOT_COMPONENT_VARIABLES will be set if FIND_PACKAGE is called with REQUIRED argument
+FIND_PACKAGE_HANDLE_STANDARD_ARGS( ROOT DEFAULT_MSG ROOT_INCLUDE_DIRS ROOT_LIBRARIES ${ROOT_COMPONENT_VARIABLES} PACKAGE_VERSION_COMPATIBLE DL_LIB )
+
+IF( ROOT_FOUND )
+ LIST( APPEND ROOT_LIBRARIES ${DL_LIB} )
+ # FIXME DEPRECATED
+ SET( ROOT_DEFINITIONS "-DUSEROOT -DUSE_ROOT -DMARLIN_USE_ROOT" )
+ MARK_AS_ADVANCED( ROOT_DEFINITIONS )
+
+ # file including MACROS for generating root dictionary sources
+ GET_FILENAME_COMPONENT( _aux ${CMAKE_CURRENT_LIST_FILE} PATH )
+ SET( ROOT_DICT_MACROS_FILE ${_aux}/MacroRootDict.cmake )
+
+ENDIF( ROOT_FOUND )
+
+# ---------- cmake bug --------------------------------------------------------
+# ROOT_FIND_REQUIRED is not reset between FIND_PACKAGE calls, i.e. the following
+# code fails when geartgeo component not available: (fixed in cmake 2.8)
+# FIND_PACKAGE( ROOT REQUIRED )
+# FIND_PACKAGE( ROOT COMPONENTS geartgeo QUIET )
+SET( ROOT_FIND_REQUIRED )
+
lcio/cmake
diff -N MacroAddSharedLibrary.cmake
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ MacroAddSharedLibrary.cmake 9 Mar 2011 11:19:33 -0000 1.1.2.1
@@ -0,0 +1,25 @@
+# create symbolic lib target for calling library targets
+#ADD_CUSTOM_TARGET( lib )
+
+MACRO( ADD_SHARED_LIBRARY _name )
+
+ ADD_LIBRARY( ${_name} SHARED ${ARGN} )
+
+ #ADD_DEPENDENCIES( lib ${_name} )
+
+ # change lib_target properties
+ SET_TARGET_PROPERTIES( ${_name} PROPERTIES
+ # create *nix style library versions + symbolic links
+ VERSION ${${PROJECT_NAME}_VERSION}
+ SOVERSION ${${PROJECT_NAME}_SOVERSION}
+ )
+
+ # install library
+ #INSTALL( TARGETS ${_name} DESTINATION lib PERMISSIONS
+ # OWNER_READ OWNER_WRITE OWNER_EXECUTE
+ # GROUP_READ GROUP_EXECUTE
+ # WORLD_READ WORLD_EXECUTE
+ #)
+
+ENDMACRO( ADD_SHARED_LIBRARY )
+
lcio/cmake
diff -N MacroCheckPackageLibs.cmake
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ MacroCheckPackageLibs.cmake 9 Mar 2011 11:19:33 -0000 1.1.2.1
@@ -0,0 +1,164 @@
+##############################################################################
+# macro for checkin package libraries in ${PKG_ROOT}/lib
+#
+#
+# macro usage:
+# CHECK_PACKAGE_LIBS( PACKAGE_NAME stdlib1 stdlib2 ... stdlibn )
+# only standard libraries should be passed as arguments to the macro
+# component libraries are set by cmake in PKG_FIND_COMPONENTS (when
+# calling FIND_PACKAGE with COMPONENTS argument) or through the
+# variable PKG_USE_COMPONENTS
+#
+#
+# required variables:
+# PKG_ROOT : path to PKG root directory
+#
+#
+# returns following variables:
+# PKG_LIBRARY_DIRS : list of paths to be used with LINK_DIRECTORIES
+# PGK_LIBRARIES : list of STANDARD libraries (NOT including COMPONENTS)
+# PKG_COMPONENT_LIBRARIES : list of COMPONENT libraries
+# PKG_${COMPONENT}_FOUND : set to TRUE or FALSE for each library
+# PKG_${COMPONENT}_LIBRARY : path to each individual library
+#
+#
+# PKG_LIBRARIES and PKG_LIBRARY_DIRS will be empty if any of the standard
+# libraries is missing
+#
+# @author Jan Engels, Desy
+##############################################################################
+
+
+SET( CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS TRUE )
+
+MACRO( CHECK_PACKAGE_LIBS _pkgname )
+
+ SET( _std_lib_missing FALSE )
+ SET( _ext_lib_missing FALSE )
+
+ SET( _std_libnames ${ARGN} )
+ SET( _ext_libnames ${${_pkgname}_FIND_COMPONENTS} ${${_pkgname}_USE_COMPONENTS} )
+
+ IF( _ext_libnames )
+ SEPARATE_ARGUMENTS( _ext_libnames )
+ LIST( REMOVE_DUPLICATES _ext_libnames )
+ ENDIF()
+
+ IF( NOT ${_pkgname}_FIND_QUIETLY )
+ MESSAGE( STATUS "Check for ${_pkgname}_LIBRARIES: ${_std_libnames}" )
+ IF( _ext_libnames )
+ MESSAGE( STATUS "Check for ${_pkgname}_COMPONENT_LIBRARIES: ${_ext_libnames}" )
+ ENDIF()
+ ENDIF()
+
+ SET( ${_pkgname}_LIBRARY_DIRS )
+ MARK_AS_ADVANCED( ${_pkgname}_LIBRARY_DIRS )
+
+ SET( ${_pkgname}_LIBRARIES )
+ MARK_AS_ADVANCED( ${_pkgname}_LIBRARIES )
+
+ SET( ${_pkgname}_COMPONENT_LIBRARIES )
+ MARK_AS_ADVANCED( ${_pkgname}_COMPONENT_LIBRARIES )
+
+ SET( ${_pkgname}_COMPONENT_VARIABLES )
+ MARK_AS_ADVANCED( ${_pkgname}_COMPONENT_VARIABLES )
+
+ FOREACH( _libname ${_std_libnames} ${_ext_libnames} )
+
+ # flag to check if it is a standard or a component library
+ LIST( FIND _std_libnames "${_libname}" _aux )
+ IF( ${_aux} LESS 0 )
+ SET( _is_std_lib FALSE )
+ ELSE()
+ SET( _is_std_lib TRUE )
+ ENDIF()
+
+ # libname in upper case
+ STRING( TOUPPER ${_libname} _ulibname )
+
+ SET( ${_pkgname}_${_ulibname}_LIBRARY ${_pkgname}_${_ulibname}_LIBRARY-NOTFOUND )
+ MARK_AS_ADVANCED( ${_pkgname}_${_ulibname}_LIBRARY )
+
+ # WARNING: using PATH_SUFFIXES may cause problems when using variable CMAKE_FIND_ROOT_PATH
+ # this problem does not occur if expanding PATHS
+ # look in FindMySQL.cmake for more info
+ #FIND_LIBRARY( ${_pkgname}_${_ulibname}_LIBRARY NAMES ${_libname} PATHS
+ # ${${_pkgname}_ROOT} ${${_pkgname}_DIR} ${${_pkgname}_LIB_SEARCH_PATH}
+ # PATH_SUFFIXES lib64 lib
+ # NO_DEFAULT_PATH
+ #)
+
+ FIND_LIBRARY( ${_pkgname}_${_ulibname}_LIBRARY NAMES ${_libname} PATHS
+ ${${_pkgname}_ROOT}/lib64 ${${_pkgname}_ROOT}/lib
+ ${${_pkgname}_DIR}/lib64 ${${_pkgname}_DIR}/lib
+ ${${_pkgname}_LIB_SEARCH_PATH} ${${_pkgname}_LIB_SEARCH_PATH}/lib64 ${${_pkgname}_LIB_SEARCH_PATH}/lib
+ NO_DEFAULT_PATH
+ )
+
+ IF( NOT ${_pkgname}_DIR )
+ FIND_LIBRARY( ${_pkgname}_${_ulibname}_LIBRARY NAMES ${_libname} )
+ ENDIF()
+
+ IF( ${_pkgname}_FIND_REQUIRED )
+ LIST( APPEND ${_pkgname}_COMPONENT_VARIABLES ${_pkgname}_${_ulibname}_LIBRARY )
+ ENDIF()
+
+ IF( ${_pkgname}_${_ulibname}_LIBRARY ) # if library found
+
+ SET( ${_pkgname}_${_ulibname}_FOUND TRUE )
+
+ # split libraries in PKG_LIBRARIES and PKG_COMPONENT_LIBRARIES
+ IF( _is_std_lib )
+ LIST( APPEND ${_pkgname}_LIBRARIES ${${_pkgname}_${_ulibname}_LIBRARY} )
+ ELSE()
+ LIST( APPEND ${_pkgname}_COMPONENT_LIBRARIES ${${_pkgname}_${_ulibname}_LIBRARY} )
+ ENDIF()
+
+ GET_FILENAME_COMPONENT( _aux ${${_pkgname}_${_ulibname}_LIBRARY} PATH )
+ LIST( APPEND ${_pkgname}_LIBRARY_DIRS ${_aux} )
+
+ IF( NOT ${_pkgname}_FIND_QUIETLY )
+ MESSAGE( STATUS "Check for ${_pkgname}_${_ulibname}_LIBRARY: ${${_pkgname}_${_ulibname}_LIBRARY} -- ok" )
+ ENDIF()
+
+ ELSE() # library not found
+
+ SET( ${_pkgname}_${_ulibname}_FOUND FALSE )
+
+ IF( _is_std_lib )
+ SET( _std_lib_missing TRUE )
+ ELSE()
+ SET( _ext_lib_missing TRUE )
+ ENDIF()
+
+ IF( NOT ${_pkgname}_FIND_QUIETLY )
+ MESSAGE( STATUS "Check for ${_pkgname}_${_ulibname}_LIBRARY: ${_libname} -- failed" )
+ ENDIF()
+
+ ENDIF()
+
+ ENDFOREACH()
+
+ # clear PKG_LIBRARIES if standard library is missing
+ IF( _std_lib_missing )
+ SET( ${_pkgname}_LIBRARIES )
+ ENDIF()
+
+ # clear PKG_COMPONENT_LIBRARIES if a component library is missing and
+ # FIND_PACKAGE called with REQUIRED argument
+ IF( _ext_lib_missing AND ${_pkgname}_FIND_REQUIRED )
+ SET( ${_pkgname}_COMPONENT_LIBRARIES )
+ ENDIF()
+
+ # remove duplicate paths in PKG_LIBRARY_DIRS
+ IF( ${_pkgname}_LIBRARY_DIRS )
+ LIST( REMOVE_DUPLICATES ${_pkgname}_LIBRARY_DIRS )
+ ENDIF()
+
+ # debug
+ #MESSAGE( STATUS "${_pkgname}_LIBRARIES: ${${_pkgname}_LIBRARIES}" )
+ #MESSAGE( STATUS "${_pkgname}_COMPONENT_LIBRARIES: ${${_pkgname}_COMPONENT_LIBRARIES}" )
+ #MESSAGE( STATUS "${_pkgname}_LIBRARY_DIRS: ${${_pkgname}_LIBRARY_DIRS}" )
+
+ENDMACRO( CHECK_PACKAGE_LIBS _pkgname )
+
lcio/cmake
diff -N MacroCheckPackageVersion.cmake
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ MacroCheckPackageVersion.cmake 9 Mar 2011 11:19:33 -0000 1.1.2.1
@@ -0,0 +1,108 @@
+##############################################################################
+# macro for checking a package version
+#
+# this macro should be called from your PKGVersion.cmake or from a
+# FindPKG.cmake module with the following arguments:
+# _pkgname : The package name
+# _iversion : The installed version of the package
+#
+#
+# the following conventions are used:
+#
+# if FIND_PACKAGE is called with EXACT argument than the version has to
+# match EXACTLY, i.e.:
+# 1.5 == 1.5
+# 1.5 == 1.5.0
+# 1.5 == 1.5.0.0
+# 1.5.2 == 1.5.2.0
+# 1.5.2.1 == 1.5.2.1
+# 1.5.2 != 1.5.2.1
+# 1.5 != 1.5.0.1
+#
+#
+# otherwise a MINIMUM_REQUIRED version is checked for, i.e. the same
+# behavior as with the cmake variable CMAKE_MINIMUM_REQUIRED, e.g.:
+# searching: 1.2 --> installed: 1.5.2.2 --> compatible
+# searching: 1.5 --> installed: 1.5.2.2 --> compatible
+# searching: 1.5.2.1 --> installed: 1.5.2.2 --> compatible
+# searching: 1.5.2.3 --> installed: 1.5.2.2 --> unsuitable
+# searching: 1.7 --> installed: 1.5.2.2 --> unsuitable
+#
+#
+# following variables are returned (internally to cmake):
+# PACKAGE_VERSION_EXACT : set to TRUE if exact version was found
+# PACKAGE_VERSION_COMPATIBLE : set to TRUE if version is compatible
+# PACKAGE_VERSION_UNSUITABLE : set to TRUE if version found is unsuitable
+#
+#
+# @author Jan Engels, Desy IT
+##############################################################################
+
+# these variables are evaluated internally by the cmake command FIND_PACKAGE to mark this
+# package as suitable or not depending on the required version
+SET( PACKAGE_VERSION_EXACT FALSE )
+SET( PACKAGE_VERSION_COMPATIBLE TRUE )
+SET( PACKAGE_VERSION_UNSUITABLE FALSE )
+
+
+# cmake internal variable PACKAGE_FIND_NAME is not defined on FindPKG.cmake
+# modules, therefore it is passed as an argument to the macro
+# _iversion is the installed version of the package
+# _sversion is the version searched by the user with FIND_PACKAGE
+#MACRO( CHECK_PACKAGE_VERSION _pkgname _iversion )
+MACRO( CHECK_PACKAGE_VERSION _pkgname ) # left with one argument only for backwards compatibility
+
+ IF( NOT "${ARGV1}" STREQUAL "" )
+ SET( _iversion ${ARGV1} )
+ ELSE()
+ SET( _iversion ${${_pkgname}_VERSION_MAJOR}.${${_pkgname}_VERSION_MINOR}.${${_pkgname}_VERSION_PATCH}.${${_pkgname}_VERSION_TWEAK} )
+ ENDIF()
+
+ #SET( _sversion_major ${${_pkgname}_FIND_VERSION_MAJOR} )
+ #SET( _sversion_minor ${${_pkgname}_FIND_VERSION_MINOR} )
+
+ SET( _sversion ${${_pkgname}_FIND_VERSION} )
+
+ IF( NOT ${_pkgname}_FIND_QUIETLY )
+ MESSAGE( STATUS "Check for ${_pkgname} (${_iversion})" )
+ ENDIF()
+
+ # only do work if FIND_PACKAGE called with a version argument
+ IF( _sversion )
+
+ #IF( NOT ${_pkgname}_FIND_QUIETLY )
+ # MESSAGE( STATUS "Check for ${_pkgname}: looking for version ${_sversion}" )
+ #ENDIF()
+
+ IF( ${_iversion} VERSION_EQUAL ${_sversion} ) # if version matches EXACTLY
+ #IF( NOT ${_pkgname}_FIND_QUIETLY )
+ # MESSAGE( STATUS "Check for ${_pkgname}: exact version found: ${_iversion}" )
+ #ENDIF()
+ SET( PACKAGE_VERSION_EXACT TRUE )
+ ELSE() # if version does not match EXACTLY, check if it is compatible/suitable
+
+ # installed version must be greater or equal than version searched by the user, i.e.
+ # like with the CMAKE_MINIMUM_REQUIRED commando
+ # if user asks for version 1.2.5 then any version >= 1.2.5 is suitable/compatible
+ IF( NOT ${_sversion} VERSION_LESS ${_iversion} )
+ SET( PACKAGE_VERSION_UNSUITABLE TRUE )
+ ENDIF()
+ # -------------------------------------------------------------------------------------
+
+ IF( ${_pkgname}_FIND_VERSION_EXACT ) # if exact version was required search must fail!!
+ #IF( NOT ${_pkgname}_FIND_QUIETLY )
+ # MESSAGE( "Check for ${_pkgname}: could not find exact version" )
+ #ENDIF()
+ SET( PACKAGE_VERSION_UNSUITABLE TRUE )
+ ENDIF()
+
+ ENDIF()
+
+ IF( PACKAGE_VERSION_UNSUITABLE )
+ SET( PACKAGE_VERSION_COMPATIBLE FALSE )
+ ENDIF()
+
+ ENDIF( _sversion )
+
+ENDMACRO( CHECK_PACKAGE_VERSION )
+
lcio/cmake
diff -N MacroDisplayStandardVariables.cmake
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ MacroDisplayStandardVariables.cmake 9 Mar 2011 11:19:33 -0000 1.1.2.1
@@ -0,0 +1,54 @@
+
+# helper macro to display standard cmake variables and force write to cache
+# otherwise outdated values may appear in ccmake gui
+MACRO( DISPLAY_STD_VARIABLES )
+ MESSAGE( STATUS )
+ MESSAGE( STATUS "-------------------------------------------------------------------------------" )
+ MESSAGE( STATUS "Change values with: cmake -D<Variable>=<Value>" )
+
+ IF( DEFINED CMAKE_INSTALL_PREFIX )
+ MESSAGE( STATUS "CMAKE_INSTALL_PREFIX = ${CMAKE_INSTALL_PREFIX}" )
+ ENDIF()
+
+
+ IF( DEFINED CMAKE_BUILD_TYPE )
+ MESSAGE( STATUS "CMAKE_BUILD_TYPE = ${CMAKE_BUILD_TYPE}" )
+ ENDIF()
+
+ IF( DEFINED BUILD_SHARED_LIBS )
+ MESSAGE( STATUS "BUILD_SHARED_LIBS = ${BUILD_SHARED_LIBS}" )
+ ENDIF()
+
+ IF( DEFINED BUILD_TESTING )
+ MESSAGE( STATUS "BUILD_TESTING = ${BUILD_TESTING}" )
+ ENDIF()
+
+ IF( DEFINED INSTALL_DOC )
+ MESSAGE( STATUS "INSTALL_DOC = ${INSTALL_DOC}" )
+ ENDIF()
+
+ IF( DEFINED CMAKE_PREFIX_PATH )
+ LIST( REMOVE_DUPLICATES CMAKE_PREFIX_PATH )
+ #MESSAGE( STATUS "CMAKE_PREFIX_PATH = ${CMAKE_PREFIX_PATH}" )
+ MESSAGE( STATUS "CMAKE_PREFIX_PATH =" )
+ FOREACH( _path ${CMAKE_PREFIX_PATH} )
+ MESSAGE( STATUS " ${_path};" )
+ ENDFOREACH()
+ #SET( CMAKE_PREFIX_PATH "${CMAKE_PREFIX_PATH}" CACHE PATH "CMAKE_PREFIX_PATH" FORCE )
+ ENDIF()
+
+ IF( DEFINED CMAKE_MODULE_PATH )
+ LIST( REMOVE_DUPLICATES CMAKE_MODULE_PATH )
+ #MESSAGE( STATUS "CMAKE_MODULE_PATH = ${CMAKE_MODULE_PATH}" )
+ MESSAGE( STATUS "CMAKE_MODULE_PATH =" )
+ FOREACH( _path ${CMAKE_MODULE_PATH} )
+ MESSAGE( STATUS " ${_path};" )
+ ENDFOREACH()
+ SET( CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" CACHE PATH "CMAKE_MODULE_PATH" FORCE )
+ ENDIF()
+
+ MESSAGE( STATUS "-------------------------------------------------------------------------------" )
+ MESSAGE( STATUS )
+
+ENDMACRO( DISPLAY_STD_VARIABLES )
+
lcio/cmake
diff -N MacroGeneratePackageConfigFiles.cmake
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ MacroGeneratePackageConfigFiles.cmake 9 Mar 2011 11:19:33 -0000 1.1.2.1
@@ -0,0 +1,44 @@
+#GET_FILENAME_COMPONENT( _current_dir ${CMAKE_CURRENT_LIST_FILE} PATH )
+
+# helper macro for generating project configuration file
+MACRO( GENERATE_PACKAGE_CONFIGURATION_FILES )
+
+ FOREACH( arg ${ARGN} )
+ IF( ${arg} MATCHES "Config.cmake" )
+ IF( EXISTS "${PROJECT_SOURCE_DIR}/cmake/${arg}.in" )
+ CONFIGURE_FILE( "${PROJECT_SOURCE_DIR}/cmake/${arg}.in"
+ "${PROJECT_BINARY_DIR}/${arg}" @ONLY
+ )
+ INSTALL( FILES "${PROJECT_BINARY_DIR}/${arg}" DESTINATION . )
+ #IF( EXISTS "${_current_dir}/MacroCheckPackageLibs.cmake" )
+ # INSTALL( FILES "${_current_dir}/MacroCheckPackageLibs.cmake" DESTINATION cmake )
+ #ENDIF()
+ #IF( EXISTS "${_current_dir}/MacroExportPackageDeps.cmake" )
+ # INSTALL( FILES "${_current_dir}/MacroExportPackageDeps.cmake" DESTINATION cmake )
+ #ENDIF()
+ ENDIF()
+ ENDIF()
+
+
+ IF( ${arg} MATCHES "ConfigVersion.cmake" )
+ # version configuration file
+ IF( EXISTS "${PROJECT_SOURCE_DIR}/cmake/${arg}.in" )
+ CONFIGURE_FILE( "${PROJECT_SOURCE_DIR}/cmake/${arg}.in"
+ "${PROJECT_BINARY_DIR}/${arg}" @ONLY
+ )
+ INSTALL( FILES "${PROJECT_BINARY_DIR}/${arg}" DESTINATION . )
+ #IF( EXISTS "${_current_dir}/MacroCheckPackageVersion.cmake" )
+ # INSTALL( FILES "${_current_dir}/MacroCheckPackageVersion.cmake" DESTINATION cmake )
+ #ENDIF()
+ ENDIF( EXISTS "${PROJECT_SOURCE_DIR}/cmake/${arg}.in" )
+ ENDIF()
+
+ IF( ${arg} MATCHES "LibDeps.cmake" )
+ EXPORT_LIBRARY_DEPENDENCIES( "${arg}" )
+ INSTALL( FILES "${PROJECT_BINARY_DIR}/${arg}" DESTINATION lib/cmake )
+ ENDIF()
+
+ ENDFOREACH()
+
+ENDMACRO( GENERATE_PACKAGE_CONFIGURATION_FILES )
+
lcio/cmake
diff -N MacroInstallDirectory.cmake
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ MacroInstallDirectory.cmake 9 Mar 2011 11:19:33 -0000 1.1.2.1
@@ -0,0 +1,13 @@
+# wrapper macro to install a directory
+# excluding any backup, temporary files
+# and .svn / CVS directories
+MACRO( INSTALL_DIRECTORY )
+ INSTALL( DIRECTORY ${ARGN}
+ PATTERN "*~" EXCLUDE
+ PATTERN "*#*" EXCLUDE
+ PATTERN ".#*" EXCLUDE
+ PATTERN "*CVS" EXCLUDE
+ PATTERN "*.svn" EXCLUDE
+ )
+ENDMACRO( INSTALL_DIRECTORY )
+
lcio/cmake
diff -N MacroInstallSharedLibrary.cmake
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ MacroInstallSharedLibrary.cmake 9 Mar 2011 11:19:33 -0000 1.1.2.1
@@ -0,0 +1,14 @@
+# wrapper macro for installing a shared library with
+# correct permissions
+MACRO( INSTALL_SHARED_LIBRARY )
+
+ # install library
+ INSTALL( TARGETS ${ARGN}
+ PERMISSIONS
+ OWNER_READ OWNER_WRITE OWNER_EXECUTE
+ GROUP_READ GROUP_EXECUTE
+ WORLD_READ WORLD_EXECUTE
+ )
+
+ENDMACRO( INSTALL_SHARED_LIBRARY )
+
lcio/cmake
diff -N MacroRootDict.cmake
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ MacroRootDict.cmake 9 Mar 2011 11:19:33 -0000 1.1.2.1
@@ -0,0 +1,130 @@
+IF(APPLE)
+ SET( LD_LIBRARY_PATH_VAR DYLD_LIBRARY_PATH )
+ELSE()
+ SET( LD_LIBRARY_PATH_VAR LD_LIBRARY_PATH )
+ENDIF()
+SET( LD_LIBRARY_PATH_CONTENTS $ENV{${LD_LIBRARY_PATH_VAR}} )
+#MESSAGE( STATUS "LD_LIBRARY_PATH_CONTENTS: ${LD_LIBRARY_PATH_CONTENTS}" )
+
+SET( ROOT_CINT_WRAPPER ${LD_LIBRARY_PATH_VAR}=${ROOT_LIBRARY_DIR}:${LD_LIBRARY_PATH_CONTENTS} ${ROOT_CINT_EXECUTABLE} )
+
+IF( NOT DEFINED ROOT_DICT_OUTPUT_DIR )
+ SET( ROOT_DICT_OUTPUT_DIR "${PROJECT_BINARY_DIR}/rootdict" )
+ENDIF()
+
+# clean generated header files with 'make clean'
+SET_DIRECTORY_PROPERTIES( PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${ROOT_DICT_OUTPUT_DIR}" )
+
+IF( NOT ROOT_FIND_QUIETLY )
+ MESSAGE( STATUS "Check for ROOT_DICT_OUTPUT_DIR: ${PROJECT_BINARY_DIR}/rootdict" )
+ MESSAGE( STATUS "Check for ROOT_DICT_CINT_DEFINITIONS: ${ROOT_DICT_CINT_DEFINITIONS}" )
+ENDIF()
+
+
+# ============================================================================
+# helper macro to prepare input headers for GEN_ROOT_DICT_SOURCES
+# sorts LinkDef.h to be the last header (required by rootcint)
+#
+# arguments:
+# input_dir - directory to search for headers matching *.h
+#
+# returns:
+# ROOT_DICT_INPUT_HEADERS - all header files found in input_dir with
+# LinkDef.h as the last header (if found)
+#
+# ----------------------------------------------------------------------------
+MACRO( PREPARE_ROOT_DICT_HEADERS _input_dir )
+
+ FILE( GLOB ROOT_DICT_INPUT_HEADERS "${_input_dir}/*.h" )
+ FILE( GLOB _linkdef_hdr "${_input_dir}/LinkDef.h" )
+
+ #LIST( FIND ROOT_DICT_INPUT_HEADERS ${_linkdef_hdr} _aux )
+ #IF( ${_aux} EQUAL 0 OR ${_aux} GREATER 0 )
+ # LIST( REMOVE_ITEM ROOT_DICT_INPUT_HEADERS "${_linkdef_hdr}" )
+ # LIST( APPEND ROOT_DICT_INPUT_HEADERS "${_linkdef_hdr}" )
+ #ENDIF()
+
+ IF( _linkdef_hdr )
+ LIST( REMOVE_ITEM ROOT_DICT_INPUT_HEADERS "${_linkdef_hdr}" )
+ LIST( APPEND ROOT_DICT_INPUT_HEADERS "${_linkdef_hdr}")
+ ENDIF()
+
+ #MESSAGE( STATUS "ROOT_DICT_INPUT_HEADERS: ${ROOT_DICT_INPUT_HEADERS}" )
+
+ENDMACRO( PREPARE_ROOT_DICT_HEADERS )
+
+
+
+# ============================================================================
+# helper macro to generate Linkdef.h files for rootcint
+#
+# arguments:
+# namespace - prefix used for creating header <namespace>_Linkdef.h
+# ARGN - list of sources to be used for generating Linkdef.h
+#
+# returns:
+# ROOT_DICT_INPUT_HEADERS - all header files + <namespace>_LinkDef.h in the
+# correct order to be used by macro GEN_ROOT_DICT_SOURCES
+#
+# ----------------------------------------------------------------------------
+MACRO( GEN_ROOT_DICT_LINKDEF_HEADER _namespace )
+
+ SET( _linkdef_header "${ROOT_DICT_OUTPUT_DIR}/${_namespace}_Linkdef.h" )
+
+ IF( NOT EXISTS "${_linkdef_header}" )
+ FOREACH( _header ${ARGN} )
+ FILE( APPEND "${_linkdef_header}" "#pragma link C++ defined_in \"${_header}\";\n" )
+ ENDFOREACH()
+ ENDIF()
+
+ SET( ROOT_DICT_INPUT_HEADERS ${ARGN} ${_linkdef_header} )
+
+ENDMACRO()
+
+
+# ============================================================================
+# macro for generating root dict sources with rootcint
+#
+# requires following variables:
+# ROOT_DICT_INPUT_SOURCES - list of sources to generate
+# ROOT_DICT_INPUT_HEADERS - list of headers needed to generate dict sources
+# * if LinkDef.h is in the list it must be at the end !!
+# ROOT_DICT_INCLUDE_DIRS - list of include dirs to pass to rootcint -I..
+# ROOT_DICT_CINT_DEFINITIONS - extra definitions to pass to rootcint
+# ROOT_DICT_OUTPUT_DIR - where sources should be generated
+#
+# returns:
+# ROOT_DICT_OUTPUT_SOURCES - list containing all generated sources
+# ----------------------------------------------------------------------------
+MACRO( GEN_ROOT_DICT_SOURCES ROOT_DICT_INPUT_SOURCES )
+
+ # TODO check for ROOT_CINT_EXECUTABLE
+
+ # need to prefix all include dirs with -I
+ set( _dict_includes )
+ FOREACH( _inc ${ROOT_DICT_INCLUDE_DIRS} )
+ SET( _dict_includes "${_dict_includes}\t-I${_inc}") #fg: the \t fixes a wired string expansion
+ #SET( _dict_includes ${_dict_includes} -I${_inc} )
+ ENDFOREACH()
+
+
+ SET( ROOT_DICT_OUTPUT_SOURCES )
+ FOREACH( _dict_src_filename ${ROOT_DICT_INPUT_SOURCES} )
+ STRING( REPLACE "/" "_" _dict_src_filename ${_dict_src_filename} )
+ SET( _dict_src_file ${ROOT_DICT_OUTPUT_DIR}/${_dict_src_filename} )
+ STRING( REGEX REPLACE "^(.*)\\.(.*)$" "\\1.h" _dict_hdr_file "${_dict_src_file}" )
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${_dict_src_file} ${_dict_hdr_file}
+ COMMAND mkdir ARGS -p ${ROOT_DICT_OUTPUT_DIR}
+ COMMAND ${ROOT_CINT_WRAPPER}
+ ARGS -f "${_dict_src_file}" -c ${ROOT_DICT_CINT_DEFINITIONS} ${_dict_includes} ${ROOT_DICT_INPUT_HEADERS}
+ WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+ DEPENDS ${ROOT_DICT_INPUT_HEADERS}
+ COMMENT "generating: ${_dict_src_file} ${_dict_hdr_file}"
+ )
+ LIST( APPEND ROOT_DICT_OUTPUT_SOURCES ${_dict_src_file} )
+ ENDFOREACH()
+
+ENDMACRO( GEN_ROOT_DICT_SOURCES ROOT_DICT_INPUT_SOURCES )
+# ============================================================================
+
lcio/cmake
diff -N cmake_uninstall.cmake.in
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ cmake_uninstall.cmake.in 9 Mar 2011 11:19:33 -0000 1.1.2.1
@@ -0,0 +1,27 @@
+##########################################
+# create an uninstall target for cmake
+# http://www.cmake.org/Wiki/CMake_FAQ
+##########################################
+
+IF(NOT EXISTS "@[log in to unmask]")
+ MESSAGE(FATAL_ERROR "Cannot find install manifest: \"@[log in to unmask]\"")
+ENDIF(NOT EXISTS "@[log in to unmask]")
+
+FILE(READ "@[log in to unmask]" files)
+STRING(REGEX REPLACE "\n" ";" files "${files}")
+FOREACH(file ${files})
+ MESSAGE(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"")
+ IF(EXISTS "$ENV{DESTDIR}${file}")
+ EXEC_PROGRAM(
+ "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
+ OUTPUT_VARIABLE rm_out
+ RETURN_VALUE rm_retval
+ )
+ IF("${rm_retval}" STREQUAL 0)
+ ELSE("${rm_retval}" STREQUAL 0)
+ MESSAGE(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"")
+ ENDIF("${rm_retval}" STREQUAL 0)
+ ELSE(EXISTS "$ENV{DESTDIR}${file}")
+ MESSAGE(STATUS "File \"$ENV{DESTDIR}${file}\" does not exist.")
+ ENDIF(EXISTS "$ENV{DESTDIR}${file}")
+ENDFOREACH(file)
lcio/cmake
diff -N ilcsoft_build_32bit_compatible.cmake
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ ilcsoft_build_32bit_compatible.cmake 9 Mar 2011 11:19:33 -0000 1.1.2.1
@@ -0,0 +1,26 @@
+#---------------- 32/64 bit issues ---------------------------------------
+OPTION( BUILD_32BIT_COMPATIBLE "Set to ON to build in 32 bit compatibility mode" ON )
+
+IF( BUILD_32BIT_COMPATIBLE )
+
+ IF( CMAKE_SIZEOF_VOID_P EQUAL 8 ) # 64 bit architecture detected
+
+ IF( COMMAND SET_PROPERTY )
+ SET_PROPERTY(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS 0)
+ ELSE()
+ MESSAGE( "Command SET_PROPERTY not found. do you have cmake >= 2.6 ?" )
+ ENDIF()
+
+ SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32" )
+ SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32" )
+ SET( CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -m32" )
+ SET( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -m32" )
+ SET( CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -m32" )
+ SET( CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -m32" )
+
+ ENDIF()
+
+ENDIF()
+#MESSAGE( STATUS "BUILD_32BIT_COMPATIBLE = ${BUILD_32BIT_COMPATIBLE}" )
+#-------------------------------------------------------------------------
+
lcio/cmake
diff -N ilcsoft_default_build_output_directories.cmake
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ ilcsoft_default_build_output_directories.cmake 9 Mar 2011 11:19:33 -0000 1.1.2.1
@@ -0,0 +1,7 @@
+
+# output directories
+SET( EXECUTABLE_OUTPUT_PATH "${PROJECT_BINARY_DIR}/bin" )
+SET( LIBRARY_OUTPUT_PATH "${PROJECT_BINARY_DIR}/lib" )
+MARK_AS_ADVANCED( EXECUTABLE_OUTPUT_PATH )
+MARK_AS_ADVANCED( LIBRARY_OUTPUT_PATH )
+
lcio/cmake
diff -N ilcsoft_default_build_type.cmake
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ ilcsoft_default_build_type.cmake 9 Mar 2011 11:19:34 -0000 1.1.2.1
@@ -0,0 +1,9 @@
+
+# set default cmake build type to RelWithDebInfo
+# possible options are: None Debug Release RelWithDebInfo MinSizeRel
+IF( NOT CMAKE_BUILD_TYPE )
+ SET( CMAKE_BUILD_TYPE "RelWithDebInfo" )
+ENDIF()
+
+# write this variable to cache
+SET( CMAKE_BUILD_TYPE "${CMAKE_BUILD_TYPE}" CACHE STRING "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." FORCE )
lcio/cmake
diff -N ilcsoft_default_enable_ctest.cmake
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ ilcsoft_default_enable_ctest.cmake 9 Mar 2011 11:19:34 -0000 1.1.2.1
@@ -0,0 +1,6 @@
+
+# enable ctest
+ENABLE_TESTING()
+INCLUDE(CTest)
+MARK_AS_ADVANCED( DART_TESTING_TIMEOUT )
+
lcio/cmake
diff -N ilcsoft_default_install_prefix.cmake
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ ilcsoft_default_install_prefix.cmake 9 Mar 2011 11:19:34 -0000 1.1.2.1
@@ -0,0 +1,9 @@
+# set default install prefix to project root directory
+# instead of the cmake default /usr/local
+IF( CMAKE_INSTALL_PREFIX STREQUAL "/usr/local" )
+ SET( CMAKE_INSTALL_PREFIX "${PROJECT_SOURCE_DIR}" )
+ENDIF()
+
+# write this variable to cache
+SET( CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" CACHE PATH "Where to install ${PROJECT_NAME}" FORCE )
+
lcio/cmake
diff -N ilcsoft_default_library_versioning.cmake
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ ilcsoft_default_library_versioning.cmake 9 Mar 2011 11:19:34 -0000 1.1.2.1
@@ -0,0 +1,5 @@
+
+# library *nix style versioning
+SET( ${PROJECT_NAME}_SOVERSION "${${PROJECT_NAME}_VERSION_MAJOR}.${${PROJECT_NAME}_VERSION_MINOR}" )
+SET( ${PROJECT_NAME}_VERSION "${${PROJECT_NAME}_SOVERSION}.${${PROJECT_NAME}_VERSION_PATCH}" )
+
lcio/cmake
diff -N ilcsoft_default_rpath_settings.cmake
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ ilcsoft_default_rpath_settings.cmake 9 Mar 2011 11:19:34 -0000 1.1.2.1
@@ -0,0 +1,14 @@
+# add library install path to the rpath list
+SET( CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib" )
+MARK_AS_ADVANCED( CMAKE_INSTALL_RPATH )
+
+# add install path to the rpath list (apple)
+IF( APPLE )
+ SET( CMAKE_INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib" )
+ MARK_AS_ADVANCED( CMAKE_INSTALL_NAME_DIR )
+ENDIF()
+
+# append link pathes to rpath list
+SET( CMAKE_INSTALL_RPATH_USE_LINK_PATH 1 )
+MARK_AS_ADVANCED( CMAKE_INSTALL_RPATH_USE_LINK_PATH )
+
lcio/cmake
diff -N ilcsoft_default_settings.cmake
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ ilcsoft_default_settings.cmake 9 Mar 2011 11:19:34 -0000 1.1.2.1
@@ -0,0 +1,37 @@
+MARK_AS_ADVANCED( CMAKE_BACKWARDS_COMPATIBILITY )
+SET( CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS TRUE ) # default in cmake 2.6
+
+# DEPRECATED
+#OPTION( BUILD_SHARED_LIBS "Set to OFF to build static libraries" ON )
+#SET( BUILD_SHARED_LIBS "${BUILD_SHARED_LIBS}" CACHE BOOL "Set to OFF to build static libraries" FORCE )
+
+# include helper macros
+INCLUDE( MacroAddSharedLibrary )
+INCLUDE( MacroInstallSharedLibrary )
+INCLUDE( MacroInstallDirectory )
+INCLUDE( MacroDisplayStandardVariables )
+INCLUDE( MacroGeneratePackageConfigFiles )
+
+
+# include ilcsoft default settings
+INCLUDE( ilcsoft_default_install_prefix )
+INCLUDE( ilcsoft_default_build_type )
+INCLUDE( ilcsoft_default_enable_ctest )
+INCLUDE( ilcsoft_default_library_versioning )
+INCLUDE( ilcsoft_default_build_output_directories )
+INCLUDE( ilcsoft_default_rpath_settings )
+#INCLUDE( ilcsoft_build_32bit_compatible )
+
+
+# uninstall target may only be created once per project
+# otherwise problems occur due to duplicate targets. even
+# setting CMAKE_POLICY(SET CMP0002 OLD) causes an error
+# calling 'make uninstall'
+# e.g. streamlog in Marlin
+IF( NOT _ilcsoft_default_settings_loaded )
+
+ INCLUDE( ilcsoft_default_uninstall_target )
+
+ SET( _ilcsoft_default_settings_loaded TRUE )
+
+ENDIF()
lcio/cmake
diff -N ilcsoft_default_uninstall_target.cmake
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ ilcsoft_default_uninstall_target.cmake 9 Mar 2011 11:19:34 -0000 1.1.2.1
@@ -0,0 +1,13 @@
+GET_FILENAME_COMPONENT( _current_dir ${CMAKE_CURRENT_LIST_FILE} PATH )
+
+IF( EXISTS "${_current_dir}/cmake_uninstall.cmake.in" )
+
+ # create uninstall configuration file
+ CONFIGURE_FILE( "${_current_dir}/cmake_uninstall.cmake.in"
+ "${PROJECT_BINARY_DIR}/cmake_uninstall.cmake" @ONLY )
+
+ # add uninstall target
+ ADD_CUSTOM_TARGET( uninstall "${CMAKE_COMMAND}" -P "${PROJECT_BINARY_DIR}/cmake_uninstall.cmake" )
+
+ENDIF( EXISTS "${_current_dir}/cmake_uninstall.cmake.in" )
+
CVSspam 0.2.8