]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - cmake/GenParFile.cmake
Changes for Root6 (Mikolaj)
[u/mrichter/AliRoot.git] / cmake / GenParFile.cmake
index 09c2b494f618466f97012b134f6e88c620d14222..15951abeb2f058e9576c3a30269282884e54211d 100644 (file)
@@ -2,7 +2,7 @@
 # library.
 #
 # Usage: in the CMakeLists.txt, for a given library, add the following:
-#   add_target_parfile(${MODULE} "${SRCS}" "${HDRS}" "${MODULE}LinkDef.h" "${LIBDEPS}")
+#   add_target_parfile(${MODULE} "${SRCS}" "${HDRS}" "${MODULE}LinkDef.h" "${LIBDEPS}" ["extrainclude1 extrainclude2..."])
 #
 # Arguments are, in order:
 #  - library's name: for libBLAHBLAH it will generate a target BLAHBLAH.par
@@ -11,6 +11,7 @@
 #  - headers
 #  - the LinkDef used by ROOT
 #  - dependent libraries: used to generate the rootmap
+#  - extra include paths (optional): passed during compilation
 #
 # To generate a parfile, if enabled in its CMakeLists.txt, go to the build directory and run:
 #   make BLAHBLAH.par
@@ -26,11 +27,18 @@ function(add_target_parfile PARMODULE PARSOURCES PARHEADERS PARLINKDEF PARLIBDEP
   # Export variables: used in configure_file()
   set(PARMODULE "${PARMODULE}")
   string(REPLACE ";" " " PARSOURCES_FLAT "${PARSOURCES}")
+  string(REPLACE ";" " " PARHEADERS_FLAT "${PARHEADERS}")
 
   #message(STATUS "[add_target_parfile] Library (space-separated): ${PARMODULE}")
   #message(STATUS "[add_target_parfile] Sources (list): ${PARSOURCES}")
+  #message(STATUS "[add_target_parfile] Headers (list): ${PARHEADERS}")
   #message(STATUS "[add_target_parfile] Dependencies (space-separated): ${PARLIBDEPS}")
 
+  if(NOT "${ARGV5}" STREQUAL "")
+    # Optional: extra includes, space-separated
+    set(PAREXTRAINCLUDES "${ARGV5}")
+    #message(STATUS "[add_target_parfile] Extra Includes (space-separated): ${PAREXTRAINCLUDES}")
+  endif()
 
   # PARfile output directory (the one we will tar)
   set(PARDIR ${CMAKE_CURRENT_BINARY_DIR}/PARfiles/${PARMODULE})
@@ -68,4 +76,11 @@ function(add_target_parfile PARMODULE PARSOURCES PARHEADERS PARLINKDEF PARLIBDEP
     WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
   )
 
+  # Install target
+  install(FILES ${PARDIR}/../${PARMODULE}.par DESTINATION PARfiles OPTIONAL)
+
+  # Add this module to the list of generated PARfiles
+  list(APPEND ALIPARFILES ${PARMODULE})
+  set(ALIPARFILES ${ALIPARFILES} CACHE INTERNAL "ALIPARFILES")
+
 endfunction()