]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - cmake/ALICE_CMake.cmake
remove dependency to aliroot libraries, access of ESDEvent object through abstract...
[u/mrichter/AliRoot.git] / cmake / ALICE_CMake.cmake
index 8764f83a6181248aa3023901aa62f7cc169e672f..d43d206e6320bbcbce5b689745b6d300c4472233 100644 (file)
@@ -22,7 +22,7 @@ endmacro(ALICE_DevFlagsOutput)
 
 function(ALICE_CleanOutput _output input)
 
-  string(REGEX REPLACE "\n" " " clean ${input})
+  string(REGEX REPLACE "\n" " " clean "${input}")
   set(${_output} ${clean} PARENT_SCOPE)
 
 endfunction(ALICE_CleanOutput)
@@ -32,11 +32,11 @@ function(ALICE_CorrectPaths _output value )
   set(corrected)
   foreach(path ${value})
     set(external)
-    string(REGEX MATCH "^/" external ${path})
+    string(REGEX MATCH "^/" external "${path}")
     if(NOT external)
       list(APPEND corrected "${CMAKE_SOURCE_DIR}/${path}" )
     else()
-      list(APPEND corrected ${path})
+      list(APPEND corrected "${path}")
     endif(NOT external)
   endforeach(path)
   set(${_output} ${corrected} PARENT_SCOPE)
@@ -50,10 +50,10 @@ function(ALICE_Format _output prefix suffix input)
   foreach(arg ${input})
     set(item ${arg})
     if(prefix)
-      string(REGEX MATCH "^${prefix}" pre ${arg})
+      string(REGEX MATCH "^${prefix}" pre "${arg}")
     endif(prefix)
     if(suffix)
-      string(REGEX MATCH "${suffix}$" suf ${arg})
+      string(REGEX MATCH "${suffix}$" suf "${arg}")
     endif(suffix)
     if(NOT pre)
       set(item "${prefix}${item}")
@@ -72,7 +72,7 @@ function(ALICE_CheckLibraries _output input)
   set(format)
   foreach(arg ${input})
     set(item ${arg})
-    string(REGEX MATCH "^(/|-)" preformatted ${item})
+    string(REGEX MATCH "^(/|-)" preformatted "${item}")
     if(NOT preformatted)
       set(item "-l${item}")
     endif(NOT preformatted)
@@ -120,12 +120,12 @@ macro(ALICE_ConfigureCompiler)
   if(ALIDEBUG STREQUAL "YES")
     set(ALICE_TARGET ${ALICE_TARGET}DEBUG)
     message("Befor ${CXXFLAGS}")
-    string(REGEX MATCHALL "-O[^ ]*" FFLAGS ${FFLAGS})
-    string(REGEX MATCHALL "-O[^ ]*" CXXFLAGS ${CXXFLAGS})
+    string(REGEX MATCHALL "-O[^ ]*" FFLAGS "${FFLAGS}")
+    string(REGEX MATCHALL "-O[^ ]*" CXXFLAGS "${CXXFLAGS}")
     message("After ${CXXFLAGS}")
-    string(REGEX MATCHALL "-O[^ ]*" CFLAGS ${CFLAGS})
-    string(REGEX MATCHALL "-O[^ ]*" SOFLAGS ${SOFLAGS})
-    string(REGEX MATCHALL "-O[^ ]*" LDFLAGS ${LDFLAGS})
+    string(REGEX MATCHALL "-O[^ ]*" CFLAGS "${CFLAGS}")
+    string(REGEX MATCHALL "-O[^ ]*" SOFLAGS "${SOFLAGS}")
+    string(REGEX MATCHALL "-O[^ ]*" LDFLAGS "${LDFLAGS}")
     set(FFLAGS "-g ${FFLAGS}")
     set(CXXFLAGS "-g ${CXXFLAGS}")
     set(CFLAGS "-g ${CFLAGS}")
@@ -346,10 +346,10 @@ macro(ALICE_BuildModule)
   foreach(PACKAGEFILE ${PACKAGES})
       set(lib)
       set(bin)
-      string(REGEX MATCH "CMakelib" lib ${PACKAGEFILE})
-      string(REGEX MATCH "CMakebin" bin ${PACKAGEFILE})
+      string(REGEX MATCH "CMakelib" lib "${PACKAGEFILE}")
+      string(REGEX MATCH "CMakebin" bin "${PACKAGEFILE}")
       get_filename_component(PACKAGE ${PACKAGEFILE} NAME)
-      string(REGEX REPLACE "^CMake(lib|bin)(.*)\\.pkg" "\\2" PACKAGE ${PACKAGE})
+      string(REGEX REPLACE "^CMake(lib|bin)(.*)\\.pkg" "\\2" PACKAGE "${PACKAGE}")
       if(ALICEDEV)
         message("Adding package ${PACKAGE} in ${MODULE}")
       endif(ALICEDEV)
@@ -360,9 +360,9 @@ macro(ALICE_BuildModule)
       get_property(EXCLUDEPACKAGE TARGET ${PACKAGE} PROPERTY EXCLUDE_FROM_ALL) 
       if(NOT EXCLUDEPACKAGE)
         install(TARGETS ${PACKAGE} 
-                RUNTIME DESTINATION bin
-                LIBRARY DESTINATION lib
-                ARCHIVE DESTINATION bin)
+                RUNTIME DESTINATION bin/tgt_${ALICE_TARGET}
+                LIBRARY DESTINATION lib/tgt_${ALICE_TARGET}
+                ARCHIVE DESTINATION bin/tgt_${ALICE_TARGET})
       endif(NOT EXCLUDEPACKAGE)
   endforeach(PACKAGEFILE)
 
@@ -390,6 +390,7 @@ macro(ALICE_GenerateDictionary)
   # Format neccesary arguments
   ALICE_Format(DINC "-I" "" "${DINC};${CMAKE_INCLUDE_EXPORT_DIRECTORY}")
   set_source_files_properties(${PDS} PROPERTIES GENERATED TRUE)
+  set_source_files_properties(${PDS} PROPERTIES COMPILE_FLAGS "-w")
   add_custom_command(OUTPUT  ${PDS}
                      COMMAND cd ${PROJECT_SOURCE_DIR} && ${ROOTCINT} -f ${CMAKE_CURRENT_BINARY_DIR}/${PDS} -c -D_MODULE=\\\"${MODULE}\\\" ${DEDEFINE} ${DCINTFLAGS} ${DINC} ${DCINTHDRS} ${DDH}
                      WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
@@ -430,6 +431,7 @@ macro(ALICE_BuildLibrary)
   include_directories(${CMAKE_INCLUDE_EXPORT_DIRECTORY})
   
   add_library(${PACKAGE} SHARED ${PCS} ${PFS} ${PS} ${PDS})
+  set_target_properties(${PACKAGE} PROPERTIES SUFFIX .so)  
   
 
   if(PELIBS OR SHLIB)
@@ -518,14 +520,14 @@ macro(ALICE_BuildExecutable)
     add_dependencies(${PACKAGE}-static libAliMDC root-static-libs)
     target_link_libraries(${PACKAGE}-static ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libAliMDC.a ${ROOTLIBDIR}/libRoot.a ${ROOTLIBDIR}/libfreetype.a ${ROOTLIBDIR}/libpcre.a -pthread -ldl -lcurses)
 
-    install(TARGETS ${PACKAGE}-static RUNTIME DESTINATION bin COMPONENT MDC)
-    install(FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libAliMDC.a ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libAliMDC.a ${ROOTLIBDIR}/libRoot.a ${ROOTLIBDIR}/libfreetype.a ${ROOTLIBDIR}/libpcre.a DESTINATION lib COMPONENT MDC)
+    install(TARGETS ${PACKAGE}-static RUNTIME DESTINATION bin/tgt_${ALICE_TARGET} COMPONENT MDC)
+    install(FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libAliMDC.a ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libAliMDC.a ${ROOTLIBDIR}/libRoot.a ${ROOTLIBDIR}/libfreetype.a ${ROOTLIBDIR}/libpcre.a DESTINATION lib/tgt_${ALICE_TARGET} COMPONENT MDC)
     install(FILES ${PROJECT_SOURCE_DIR}/RAW/mdc.h DESTINATION include COMPONENT MDC)
     set(CPACK_RPM_PACKAGE_SUMMARY "AliMDC static libraries")
     set(CPACK_RPM_PACKAGE_NAME "alimdc")
     set(CPACK_RPM_PACKAGE_VERSION "${ALIMDCVERSION}")
     set(CPACK_RPM_PACKAGE_RELEASE "${ALIMDCRELEASE}")
-    set(CPACK_RPM_PACKAGE_LICENSE "Copyright: CERN ALICE Off-line Group")
+    set(CPACK_RPM_PACKAGE_LICENSE "License: CERN ALICE Off-line Group")
     set(CPACK_RPM_PACKAGE_VENDOR "ALICE Core Off-line Group")
     set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "AliMDC static libraries")
     set(CPACK_RPM_PACKAGE_GROUP "Applications/Alice")
@@ -577,26 +579,32 @@ macro(ALICE_GenerateLinkDef)
 endmacro(ALICE_GenerateLinkDef)
 
 macro(ALICE_BuildPAR)
-  if(EXISTS ${ALICE_ROOT}/${MODULE}/PROOF-INF.${PACKAGE})
-    add_custom_target(${PACKAGE}.par
-                      COMMAND sed -e 's/include .\(ROOTSYS\)\\/test\\/Makefile.arch/include Makefile.arch/\; s/PACKAGE = .*/PACKAGE = ${PACKAGE}/' < Makefile > ${PACKAGE}/Makefile
-                      COMMAND cp -pR ${ROOTSYS}/test/Makefile.arch ${PACKAGE}/Makefile.arch
-                      COMMAND cp -pR PROOF-INF.${PACKAGE} ${PACKAGE}/PROOF-INF
-                      COMMAND cp -pR lib${PACKAGE}.pkg ${PACKAGE}
-                      COMMAND tar --exclude=.svn -czhf ${CMAKE_BINARY_DIR}/${PACKAGE}.par ${PACKAGE}
-                      COMMAND ${CMAKE_COMMAND} -E remove_directory ${PACKAGE}
-                      COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --red --bold "${PACKAGE}.par has been created in ${CMAKE_BINARY_DIR}"
-                      DEPENDS ${SRCS} ${HDRS} ${FSRCS} ${DHDR}
-                      WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} )
-
+  
+  # if(EXISTS ${ALICE_ROOT}/${MODULE}/PROOF-INF.${PACKAGE})
+  if(EXISTS ${CMAKE_SOURCE_DIR}/${MODULE}/PROOF-INF.${PACKAGE})
+    set(PARSRCS)
     foreach(file ${SRCS} ${HDRS} ${FSRCS} ${DHDR})
       get_filename_component(srcdir ${file} PATH)
-      add_custom_command(OUTPUT ${file}                         
-                         COMMAND mkdir -p ${PACKAGE}/${srcdir}
-                         COMMAND cp -pR ${file} ${PACKAGE}/${file}
+      add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE}/${file}-par                         
+                         COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE}/${srcdir}
+                         COMMAND cp -pR ${file} ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE}/${file}
                          WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} )
+      list(APPEND PARSRCS ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE}/${file}-par)
     endforeach(file ${SRCS} ${HDRS} ${FSRCS} ${DHDR})
+    
+    add_custom_target(${PACKAGE}.par
+                      COMMAND sed -e 's/include .\(ROOTSYS\)\\/test\\/Makefile.arch/include Makefile.arch/\; s/PACKAGE = .*/PACKAGE = ${PACKAGE}/\; s,SRCS *=.*,SRCS = ${SRCS},\;' < Makefile | sed -e 's,HDRS *=.*,HDRS = ${HDRS},\; s,FSRCS *=.*,FSRCS = ${FSRCS},\; s,DHDR *=.*,DHDR = ${DHDR},' > ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE}/Makefile
+                      COMMAND cp -pR ${ROOTSYS}/test/Makefile.arch ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE}/Makefile.arch
+                      COMMAND cp -pR PROOF-INF.${PACKAGE} ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE}/PROOF-INF
+#                      COMMAND cp -pR lib${PACKAGE}.pkg ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE}
+                      COMMAND ${CMAKE_COMMAND} -E chdir ${CMAKE_CURRENT_BINARY_DIR} tar --exclude=.svn -czhf ${CMAKE_BINARY_DIR}/${PACKAGE}.par ${PACKAGE}
+                      COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE}
+                      COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --red --bold "${PACKAGE}.par has been created in ${CMAKE_BINARY_DIR}"
+                      DEPENDS ${PARSRCS} 
+                      WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} )
 
+
+    add_dependencies(${PACKAGE}.par ${SRCS} ${FSRCS} ${HDRS} ${DHDR})
     add_dependencies(par-all ${PACKAGE}.par)
     add_dependencies(${MODULE}-par-all ${PACKAGE}.par)
 
@@ -608,9 +616,12 @@ macro(ALICE_BuildPAR)
                       COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --green --bold "${PACKAGE}.par testing succeeded"
                       WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
 
+    add_dependencies(test-${PACKAGE}.par ${PACKAGE}.par)
     add_dependencies(test-par-all test-${PACKAGE}.par)
     add_dependencies(test-${MODULE}-par-all test-${PACKAGE}.par)
 
-  endif(EXISTS ${ALICE_ROOT}/${MODULE}/PROOF-INF.${PACKAGE})
+  endif(EXISTS ${CMAKE_SOURCE_DIR}/${MODULE}/PROOF-INF.${PACKAGE})
+  # endif(EXISTS ${ALICE_ROOT}/${MODULE}/PROOF-INF.${PACKAGE})
+
 endmacro(ALICE_BuildPAR)