]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - cmake/ALICE_CMake.cmake
Introduce smell generator plus some small fixes
[u/mrichter/AliRoot.git] / cmake / ALICE_CMake.cmake
index 951acfacc3a674fd5a7205ad1cb3bd08a4f89133..5d04bad5cfa519168160ba3b62be554889e8ea7e 100644 (file)
@@ -1,3 +1,5 @@
+# -*- mode: cmake -*-
+
 # AliRoot Build System Utility Macro and Function definitions
 #
 # Author: Johny Jose (johny.jose@cern.ch)
@@ -318,7 +320,6 @@ macro(ALICE_BuildPackage)
   set(${MODULE}LIBS "${PMLIBS}" PARENT_SCOPE)
   set(${MODULE}INC "${EINCLUDE}" PARENT_SCOPE)
   list(APPEND INCLUDEFILES ${PEXPORTDEST})
-  ALICE_CopyHeaders()
   if(WITHDICT)  
     ALICE_SetPackageVariable(PDS "DS" "G__${PACKAGE}.cxx" "G__${PACKAGE}.cxx")
     ALICE_GenerateDictionary()
@@ -334,8 +335,8 @@ macro(ALICE_BuildPackage)
       ALICE_BuildExecutable()
     endif(lib)
   endif(PS OR PCS OR PFS)
+  ALICE_CopyHeaders()
   ALICE_BuildPAR()
-  ALICE_CheckModule()
 
 endmacro(ALICE_BuildPackage)
 
@@ -365,7 +366,7 @@ macro(ALICE_BuildModule)
                 ARCHIVE DESTINATION bin/tgt_${ALICE_TARGET})
       endif(NOT EXCLUDEPACKAGE)
   endforeach(PACKAGEFILE)
-
+  ALICE_CheckModule()
 endmacro(ALICE_BuildModule)
 
 macro(ALICE_GenerateDictionary)
@@ -457,6 +458,8 @@ macro(ALICE_BuildLibrary)
     set_property(TARGET ${PACKAGE} PROPERTY EXCLUDE_FROM_ALL TRUE)
   endif(NOT RESULT STREQUAL "-1")
 
+  set_target_properties(${PACKAGE} PROPERTIES INSTALL_NAME_DIR ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+
 endmacro(ALICE_BuildLibrary)
 
 macro(ALICE_BuildExecutable)
@@ -474,10 +477,9 @@ macro(ALICE_BuildExecutable)
   separate_arguments(PBLIBS)
   separate_arguments(PELIBS)
   separate_arguments(SHLIB)
-
+  
   ALICE_Format(PELIBSDIR "-L" "" "${PELIBSDIR}")
   ALICE_CheckLibraries(PBLIBS "${PBLIBS}")
-  ALICE_CheckLibraries(PELIBS "${PELIBS}")
 
   ALICE_CorrectPaths(EINCLUDE "${EINCLUDE}")
   ALICE_CorrectPaths(PINC "${PINC}")
@@ -550,15 +552,19 @@ endmacro(ALICE_BuildExecutable)
 
 macro(ALICE_CopyHeaders)
   
-  if(NOT EXPORT )
-    set(HEADERS)
-  else()
+  if(EXPORT )
     set(HEADERS ${EXPORT})
-  endif(NOT EXPORT)
-  foreach(header ${HEADERS})
-      configure_file(${header} ${PEXPORTDEST} COPYONLY)
+    set(_headersdep)
+    foreach(header ${HEADERS})
+      add_custom_command(OUTPUT ${PEXPORTDEST}/${header}
+                         COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/${MODULE}/${header} ${PEXPORTDEST}/${header}
+                        DEPENDS ${CMAKE_SOURCE_DIR}/${MODULE}/${header})
+      list(APPEND _headersdep ${PEXPORTDEST}/${header})
       install(FILES ${header} DESTINATION include)
-  endforeach(header)
+    endforeach(header)
+    add_custom_target(${PACKAGE}-headers DEPENDS ${_headersdep})
+    add_dependencies(${PACKAGE} ${PACKAGE}-headers)
+  endif(EXPORT)
 
 endmacro(ALICE_CopyHeaders)
 
@@ -580,7 +586,6 @@ endmacro(ALICE_GenerateLinkDef)
 
 macro(ALICE_BuildPAR)
   
-  # 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})
@@ -593,7 +598,7 @@ macro(ALICE_BuildPAR)
     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}/' < Makefile > ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE}/Makefile
+                      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}
@@ -604,6 +609,7 @@ macro(ALICE_BuildPAR)
                       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)
 
@@ -615,6 +621,7 @@ 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)