lcio
diff -u -r1.14 -r1.15
--- CMakeLists.txt 20 Jun 2007 12:05:10 -0000 1.14
+++ CMakeLists.txt 22 Jun 2007 12:20:59 -0000 1.15
@@ -4,31 +4,28 @@
# @author Jan Engels, DESY
#################################
-# cmake minimum required version
-CMAKE_MINIMUM_REQUIRED( VERSION 2.4 )
-#SET( CMAKE_BACKWARDS_COMPATIBILITY 2.4 )
+########################################################
+# CMake compatibility issues: don't modify this, please!
+CMAKE_MINIMUM_REQUIRED( VERSION 2.4.6 )
+#SET( CMAKE_BACKWARDS_COMPATIBILITY 2.4.6 )
MARK_AS_ADVANCED(CMAKE_BACKWARDS_COMPATIBILITY)
-
# allow more human readable "if then else" constructs
SET( CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS TRUE )
+########################################################
# project name
PROJECT( LCIO )
-# project options
-OPTION( BUILD_SHARED_LIBS "Set this to OFF to build static libraries " ON )
-OPTION( BUILD_LCIO_TESTJOBS "Set to ON to build LCIO testjobs" OFF )
-OPTION( BUILD_F77_TESTJOBS "Set to ON to build LCIO F77 testjobs" OFF )
-OPTION( INSTALL_DOC "Set to ON to install Documentation" ON )
-
# project version
SET( ${PROJECT_NAME}_MAJOR_VERSION 1 )
SET( ${PROJECT_NAME}_MINOR_VERSION 8 )
SET( ${PROJECT_NAME}_PATCH_LEVEL 3 )
-SET( ${PROJECT_NAME}_VERSION
- "${${PROJECT_NAME}_MAJOR_VERSION}.${${PROJECT_NAME}_MINOR_VERSION}.${${PROJECT_NAME}_PATCH_LEVEL}" )
-SET( ${PROJECT_NAME}_SOVERSION
- "${${PROJECT_NAME}_MAJOR_VERSION}.${${PROJECT_NAME}_MINOR_VERSION}" )
+
+# project options
+OPTION( BUILD_SHARED_LIBS "Set this to OFF to build static libraries" ON )
+OPTION( BUILD_LCIO_TESTJOBS "Set to ON to build LCIO testjobs" OFF )
+OPTION( BUILD_F77_TESTJOBS "Set to ON to build LCIO F77 testjobs" OFF )
+OPTION( INSTALL_DOC "Set to ON to install Documentation" ON )
# set default cmake build type to RelWithDebInfo
IF( NOT CMAKE_BUILD_TYPE )
@@ -36,28 +33,12 @@
ENDIF()
# set default install prefix to project root directory
-#IF( CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT )
IF( CMAKE_INSTALL_PREFIX STREQUAL "/usr/local" )
- SET( CMAKE_INSTALL_PREFIX "${${PROJECT_NAME}_SOURCE_DIR}" )
+ SET( CMAKE_INSTALL_PREFIX "${CMAKE_SOURCE_DIR}" )
ENDIF()
-# add library install path to the rpath list
-SET( CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib" )
-MARK_AS_ADVANCED( CMAKE_INSTALL_RPATH )
-
-# append link pathes to rpath list
-SET( CMAKE_INSTALL_RPATH_USE_LINK_PATH 1 )
-MARK_AS_ADVANCED( CMAKE_INSTALL_RPATH_USE_LINK_PATH )
-
-# output directories
-SET( EXECUTABLE_OUTPUT_PATH "${${PROJECT_NAME}_BINARY_DIR}/bin" CACHE PATH
- "EXECUTABLE_OUTPUT_PATH" FORCE )
-SET( LIBRARY_OUTPUT_PATH "${${PROJECT_NAME}_BINARY_DIR}/lib" CACHE PATH
- "LIBRARY_OUTPUT_PATH" FORCE )
-MARK_AS_ADVANCED( EXECUTABLE_OUTPUT_PATH LIBRARY_OUTPUT_PATH )
-
# generate header files with ant aid.generate
-IF( NOT EXISTS "${${PROJECT_NAME}_SOURCE_DIR}/src/cpp/include/EVENT/LCIO.h" )
+IF( NOT EXISTS "${CMAKE_SOURCE_DIR}/src/cpp/include/EVENT/LCIO.h" )
# check if java is available
# FIXME put this stuff into a module FindJDK.cmake?
@@ -141,12 +122,12 @@
# set environment variables
SET( ENV{JDK_HOME} "${java_path}" )
SET( ENV{JAVA_HOME} "${java_path}" )
- SET( ENV{LCIO} "${${PROJECT_NAME}_SOURCE_DIR}" )
- SET( ENV{PATH} "${${PROJECT_NAME}_SOURCE_DIR}/tools:${java_path}/bin:$ENV{PATH}" )
+ SET( ENV{LCIO} "${CMAKE_SOURCE_DIR}" )
+ SET( ENV{PATH} "${CMAKE_SOURCE_DIR}/tools:${java_path}/bin:$ENV{PATH}" )
# now generate header files
MESSAGE( STATUS "Generating ${PROJECT_NAME} header files with ant aid.generate..." )
- EXEC_PROGRAM( ant "${${PROJECT_NAME}_SOURCE_DIR}"
+ EXEC_PROGRAM( ant "${CMAKE_SOURCE_DIR}"
ARGS aid.generate
OUTPUT_VARIABLE out_tmp
RETURN_VALUE out_ret )
@@ -159,12 +140,7 @@
ENDIF()
ENDIF()
-# input directories
-ADD_SUBDIRECTORY( sio sio )
-ADD_SUBDIRECTORY( src/cpp lcio )
-ADD_SUBDIRECTORY( src/f77 f77 )
-
-# find doc tools
+# DOCUMENTATION
FIND_PACKAGE( Doxygen )
FIND_PACKAGE( LATEX )
@@ -173,31 +149,27 @@
# api documentation
ADD_CUSTOM_COMMAND(
- OUTPUT "${${PROJECT_NAME}_SOURCE_DIR}/doc/doxygen_api/html"
+ OUTPUT "${CMAKE_SOURCE_DIR}/doc/doxygen_api/html"
COMMAND "${DOXYGEN_EXECUTABLE}"
- WORKING_DIRECTORY "${${PROJECT_NAME}_SOURCE_DIR}/doc/doxygen_api"
+ WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/doc/doxygen_api"
COMMENT "Building API Documentation..."
VERBATIM )
ADD_CUSTOM_TARGET( doc_api
- DEPENDS "${${PROJECT_NAME}_SOURCE_DIR}/doc/doxygen_api/html" )
+ DEPENDS "${CMAKE_SOURCE_DIR}/doc/doxygen_api/html" )
# user manual
ADD_CUSTOM_COMMAND(
- OUTPUT "${${PROJECT_NAME}_BINARY_DIR}/manual"
+ OUTPUT "${CMAKE_BINARY_DIR}/manual"
# first we copy directory from source tree to binary tree to
# keep the source tree unchanged
COMMAND "${CMAKE_COMMAND}" -E copy_directory
- "${${PROJECT_NAME}_SOURCE_DIR}/src/latex/manual"
- "${${PROJECT_NAME}_BINARY_DIR}/manual"
+ "${CMAKE_SOURCE_DIR}/src/latex/manual"
+ "${CMAKE_BINARY_DIR}/manual"
VERBATIM )
ADD_CUSTOM_COMMAND(
- OUTPUT "${${PROJECT_NAME}_SOURCE_DIR}/doc/manual.pdf"
- # copy directory from source tree to binary tree
- COMMAND "${CMAKE_COMMAND}" -E copy_directory
- "${${PROJECT_NAME}_SOURCE_DIR}/src/latex/manual"
- "${${PROJECT_NAME}_BINARY_DIR}/manual"
+ OUTPUT "${CMAKE_SOURCE_DIR}/doc/manual.pdf"
COMMAND "${LATEX_COMPILER}" ARGS -interaction=batchmode manual.tex
COMMAND "${LATEX_COMPILER}" ARGS -interaction=batchmode manual.tex
COMMAND "${DVIPS_CONVERTER}" ARGS -q manual.dvi
@@ -206,37 +178,37 @@
-mkdir -dir manual_html -verbosity 0 -info 0 -no_auto_link -split 0 -no_navigation manual.tex
# copy files to doc directory
COMMAND "${CMAKE_COMMAND}" -E copy "manual.pdf"
- "${${PROJECT_NAME}_SOURCE_DIR}/doc"
+ "${CMAKE_SOURCE_DIR}/doc"
COMMAND "${CMAKE_COMMAND}" -E copy "manual.ps"
- "${${PROJECT_NAME}_SOURCE_DIR}/doc"
+ "${CMAKE_SOURCE_DIR}/doc"
COMMAND "${CMAKE_COMMAND}" -E copy_directory "manual_html"
- "${${PROJECT_NAME}_SOURCE_DIR}/doc/manual_html"
- DEPENDS "${${PROJECT_NAME}_BINARY_DIR}/manual"
- WORKING_DIRECTORY "${${PROJECT_NAME}_BINARY_DIR}/manual"
+ "${CMAKE_SOURCE_DIR}/doc/manual_html"
+ DEPENDS "${CMAKE_BINARY_DIR}/manual"
+ WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/manual"
COMMENT "Building Documentation - Users Manual..."
VERBATIM )
ADD_CUSTOM_TARGET( doc_manual
- DEPENDS "${${PROJECT_NAME}_SOURCE_DIR}/doc/manual.pdf" )
+ DEPENDS "${CMAKE_SOURCE_DIR}/doc/manual.pdf" )
# reference manual
# FIXME this is not working correctly
#ADD_CUSTOM_COMMAND(
- # OUTPUT "${${PROJECT_NAME}_SOURCE_DIR}/doc/doxygen_api/latex/refman.dvi"
+ # OUTPUT "${CMAKE_SOURCE_DIR}/doc/doxygen_api/latex/refman.dvi"
# COMMAND "${LATEX_COMPILER}" ARGS -interaction=batchmode refman.tex
# COMMAND "${LATEX_COMPILER}" ARGS -interaction=batchmode refman.tex
# COMMAND "${DVIPS_CONVERTER}" ARGS -q refman.dvi
# # FIXME psnup should be detected
- # COMMAND "psnup" ARGS -q -2 refman.ps ${${PROJECT_NAME}_SOURCE_DIR}/doc/lciorefman.ps
+ # COMMAND "psnup" ARGS -q -2 refman.ps ${CMAKE_SOURCE_DIR}/doc/lciorefman.ps
# COMMAND "${PDFLATEX_COMPILER}" ARGS -interaction=batchmode refman.tex
- # WORKING_DIRECTORY "${${PROJECT_NAME}_SOURCE_DIR}/doc/doxygen_api/latex"
+ # WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/doc/doxygen_api/latex"
# COMMENT "Building Documentation - Reference Manual..."
# VERBATIM )
#ADD_CUSTOM_TARGET( doc_refman
# DEPENDS
- # "${${PROJECT_NAME}_SOURCE_DIR}/doc/doxygen_api/html"
- # "${${PROJECT_NAME}_SOURCE_DIR}/doc/doxygen_api/latex/refman.dvi" )
+ # "${CMAKE_SOURCE_DIR}/doc/doxygen_api/html"
+ # "${CMAKE_SOURCE_DIR}/doc/doxygen_api/latex/refman.dvi" )
# add custom target for building all documentation
ADD_CUSTOM_TARGET( doc )
@@ -255,33 +227,73 @@
ENDIF()
ENDIF()
-
# install documentation rules
IF( INSTALL_DOC )
# make sure documentation is built before make install is called
- INSTALL( CODE "EXEC_PROGRAM(${CMAKE_BUILD_TOOL} ${${PROJECT_NAME}_BINARY_DIR} ARGS doc)" )
+ INSTALL( CODE "EXEC_PROGRAM(${CMAKE_BUILD_TOOL} ${CMAKE_BINARY_DIR} ARGS doc)" )
# install documentation
- INSTALL( DIRECTORY "${${PROJECT_NAME}_SOURCE_DIR}/doc"
+ INSTALL( DIRECTORY "${CMAKE_SOURCE_DIR}/doc"
DESTINATION .
PATTERN "*CVS*" EXCLUDE )
ENDIF()
+##########################################################################################
+
+# library *nix style versioning
+SET( ${PROJECT_NAME}_VERSION
+ "${${PROJECT_NAME}_MAJOR_VERSION}.${${PROJECT_NAME}_MINOR_VERSION}.${${PROJECT_NAME}_PATCH_LEVEL}" )
+SET( ${PROJECT_NAME}_SOVERSION
+ "${${PROJECT_NAME}_MAJOR_VERSION}.${${PROJECT_NAME}_MINOR_VERSION}" )
+
+# add library install path to the rpath list
+SET( CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib" )
+MARK_AS_ADVANCED( CMAKE_INSTALL_RPATH )
+
+# append link pathes to rpath list
+SET( CMAKE_INSTALL_RPATH_USE_LINK_PATH 1 )
+MARK_AS_ADVANCED( CMAKE_INSTALL_RPATH_USE_LINK_PATH )
+
+# output directories
+SET( EXECUTABLE_OUTPUT_PATH "${CMAKE_BINARY_DIR}/bin" CACHE PATH
+ "EXECUTABLE_OUTPUT_PATH" FORCE )
+SET( LIBRARY_OUTPUT_PATH "${CMAKE_BINARY_DIR}/lib" CACHE PATH
+ "LIBRARY_OUTPUT_PATH" FORCE )
+MARK_AS_ADVANCED( EXECUTABLE_OUTPUT_PATH LIBRARY_OUTPUT_PATH )
+
+# DEPENDENCIES: this code has to be placed before adding any library or
+# executable so that these are linked properly against the dependencies
+IF( DEFINED ${PROJECT_NAME}_DEPENDS OR DEFINED BUILD_WITH OR DEFINED LINK_WITH )
+ # load macro
+ IF( NOT EXISTS "${CMAKE_MODULE_PATH}/MacroCheckDeps.cmake" )
+ MESSAGE( FATAL_ERROR
+ "\nSorry, could not find MacroCheckDeps.cmake...\n"
+ "Please set CMAKE_MODULE_PATH correctly with: "
+ "cmake -DCMAKE_MODULE_PATH=<path_to_cmake_modules>" )
+ ENDIF()
+ INCLUDE( "${CMAKE_MODULE_PATH}/MacroCheckDeps.cmake" )
+ CHECK_DEPS()
+ENDIF()
+
+# input directories
+ADD_SUBDIRECTORY( sio sio )
+ADD_SUBDIRECTORY( src/cpp lcio )
+ADD_SUBDIRECTORY( src/f77 f77 )
+
# create uninstall configuration file
-CONFIGURE_FILE( "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
- "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
+CONFIGURE_FILE( "${CMAKE_SOURCE_DIR}/cmake_uninstall.cmake.in"
+ "${CMAKE_BINARY_DIR}/cmake_uninstall.cmake"
IMMEDIATE @ONLY )
# create uninstall target
-ADD_CUSTOM_TARGET( uninstall
- "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" )
+ADD_CUSTOM_TARGET( uninstall "${CMAKE_COMMAND}" -P "${CMAKE_BINARY_DIR}/cmake_uninstall.cmake" )
# create configuration file from .in file
-CONFIGURE_FILE( "${${PROJECT_NAME}_SOURCE_DIR}/${PROJECT_NAME}Config.cmake.in"
- "${${PROJECT_NAME}_BINARY_DIR}/${PROJECT_NAME}Config.cmake" @ONLY )
+CONFIGURE_FILE( "${CMAKE_SOURCE_DIR}/${PROJECT_NAME}Config.cmake.in"
+ "${CMAKE_BINARY_DIR}/${PROJECT_NAME}Config.cmake" @ONLY )
# install configuration file
-INSTALL( FILES "${${PROJECT_NAME}_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
+INSTALL( FILES "${CMAKE_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
DESTINATION . )
# display status message for important variables
@@ -301,7 +313,7 @@
# force some variables that could be defined in the command line
# to be written to cache
SET( BUILD_SHARED_LIBS "${BUILD_SHARED_LIBS}" CACHE BOOL
- "Build shared libraries flag" FORCE )
+ "Set this to OFF to build static libraries" FORCE )
SET( CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" CACHE PATH
"Where to install ${PROJECT_NAME}" FORCE )
SET( CMAKE_BUILD_TYPE "${CMAKE_BUILD_TYPE}" CACHE STRING
lcio/src/cpp
diff -u -r1.7 -r1.8
--- CMakeLists.txt 16 May 2007 13:11:17 -0000 1.7
+++ CMakeLists.txt 22 Jun 2007 12:20:59 -0000 1.8
@@ -5,8 +5,8 @@
#################################
INCLUDE_DIRECTORIES (
- ${LCIO_SOURCE_DIR}/sio/include
- ${LCIO_SOURCE_DIR}/src/cpp/include
+ "${LCIO_SOURCE_DIR}/sio/include"
+ "${LCIO_SOURCE_DIR}/src/cpp/include"
)
SET( LCIO_CPPFORT_SRCS
@@ -134,27 +134,14 @@
# create *nix style library versions + symbolic links
#VERSION ${${PROJECT_NAME}_VERSION}
#SOVERSION ${${PROJECT_NAME}_SOVERSION}
- # allow creating static and shared libs without conflicts
- CLEAN_DIRECT_OUTPUT 1
+ # allow creating static and shared libs without conflicts
+ CLEAN_DIRECT_OUTPUT 1
# avoid conflicts between library and binary target names
OUTPUT_NAME lcioF77
)
ADD_CUSTOM_TARGET( lib DEPENDS lib_${PROJECT_NAME} lib_${PROJECT_NAME}F77 lib_SIO )
-# ===== load dependencies macro ====================================================
-IF( DEFINED ${PROJECT_NAME}_DEPENDS OR DEFINED BUILD_WITH OR DEFINED LINK_WITH )
- # load macro
- IF( NOT EXISTS "${CMAKE_MODULE_PATH}/MacroCheckDeps.cmake" )
- MESSAGE( FATAL_ERROR "\nSorry, could not find MacroCheckDeps.cmake...\n"
- "Please set CMAKE_MODULE_PATH correctly with: "
- "cmake -DCMAKE_MODULE_PATH=<path_to_cmake_modules>" )
- ENDIF()
- INCLUDE( "${CMAKE_MODULE_PATH}/MacroCheckDeps.cmake" )
- CHECK_DEPS()
-ENDIF()
-# ==================================================================================
-
ADD_LIBRARY( lib_${PROJECT_NAME}
${LCIO_IMPL_SRCS}
${LCIO_IOIMPL_SRCS}
@@ -166,8 +153,8 @@
# create *nix style library versions + symbolic links
VERSION ${${PROJECT_NAME}_VERSION}
SOVERSION ${${PROJECT_NAME}_SOVERSION}
- # allow creating static and shared libs without conflicts
- CLEAN_DIRECT_OUTPUT 1
+ # allow creating static and shared libs without conflicts
+ CLEAN_DIRECT_OUTPUT 1
# avoid conflicts between library and binary target names
OUTPUT_NAME lcio
)
@@ -206,14 +193,14 @@
#------------- install the library and the (public) header files -------
INSTALL( TARGETS lib_${PROJECT_NAME} DESTINATION lib PERMISSIONS
- OWNER_READ OWNER_WRITE OWNER_EXECUTE
- GROUP_READ GROUP_EXECUTE
- WORLD_READ WORLD_EXECUTE )
+ OWNER_READ OWNER_WRITE OWNER_EXECUTE
+ GROUP_READ GROUP_EXECUTE
+ WORLD_READ WORLD_EXECUTE )
INSTALL( TARGETS lib_${PROJECT_NAME}F77 DESTINATION lib PERMISSIONS
- OWNER_READ OWNER_WRITE OWNER_EXECUTE
- GROUP_READ GROUP_EXECUTE
- WORLD_READ WORLD_EXECUTE )
+ OWNER_READ OWNER_WRITE OWNER_EXECUTE
+ GROUP_READ GROUP_EXECUTE
+ WORLD_READ WORLD_EXECUTE )
INSTALL(DIRECTORY ${LCIO_SOURCE_DIR}/src/cpp/include/ DESTINATION include
PATTERN "*~" EXCLUDE