X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=blobdiff_plain;f=STEER%2FCDB%2FCMakeLists.txt;h=b1732a2040f5cdf29602081bf65dfdf409e578ba;hp=51c6447cf2300e752ed6a25c3e52fee74c477317;hb=139cbc4652b08e089646b4eac9dccfc6567c5316;hpb=0224bae45b3fa90bf541c790956567ddea1cc520 diff --git a/STEER/CDB/CMakeLists.txt b/STEER/CDB/CMakeLists.txt index 51c6447cf23..b1732a2040f 100644 --- a/STEER/CDB/CMakeLists.txt +++ b/STEER/CDB/CMakeLists.txt @@ -17,11 +17,11 @@ set(MODULE CDB) # Module include folders -include_directories(${CMAKE_SOURCE_DIR}/STEER/${MODULE}) +include_directories(${AliRoot_SOURCE_DIR}/STEER/${MODULE}) # Additional include directories include_directories(${ROOT_INCLUDE_DIRS} - ${CMAKE_SOURCE_DIR}/STEER/STEERBase + ${AliRoot_SOURCE_DIR}/STEER/STEERBase ${CMAKE_BINARY_DIR}/version/ ) @@ -61,17 +61,30 @@ string(REPLACE ".cxx" ".h" HDRS "${SRCS}") get_directory_property(incdirs INCLUDE_DIRECTORIES) generate_dictionary("${MODULE}" "${MODULE}LinkDef.h" "${HDRS}" "${incdirs}") +set(ROOT_DEPENDENCIES Core GenVector Gpad Graf Gui Hist MathCore Matrix Minuit Net RIO Tree XMLParser) +set(ALIROOT_DEPENDENCIES STEERBase) + # Generate the ROOT map # Dependecies -set(LIBDEPS STEERBase) +set(LIBDEPS ${ALIROOT_DEPENDENCIES} ${ROOT_DEPENDENCIES}) generate_rootmap("${MODULE}" "${LIBDEPS}" "${CMAKE_CURRENT_SOURCE_DIR}/${MODULE}LinkDef.h") +# Create an object to be reused in case of static libraries +# Otherwise the sources will be compiled twice +add_library(${MODULE}-object OBJECT ${SRCS} G__${MODULE}.cxx) +# Follow headers dependencies +add_dependencies(${MODULE}-object ${ALIROOT_DEPENDENCIES}) +# Add a library to the project using the object +add_library(${MODULE} SHARED $) + +# Linking library +target_link_libraries(${MODULE} ${ALIROOT_DEPENDENCIES} ${ROOT_DEPENDENCIES}) -# Add a library to the project using the specified source files -add_library(${MODULE} SHARED ${SRCS} G__${MODULE}.cxx) +# Public include folders that will be propagated to the dependecies +target_include_directories(${MODULE} PUBLIC ${incdirs}) # Additional compilation flags -set_target_properties(${MODULE} PROPERTIES COMPILE_FLAGS "-O -g") +set_target_properties(${MODULE}-object PROPERTIES COMPILE_FLAGS "-O -g") # System dependent: Modify the way the library is build if(${CMAKE_SYSTEM} MATCHES Darwin) @@ -83,3 +96,23 @@ install(TARGETS ${MODULE} ARCHIVE DESTINATION lib LIBRARY DESTINATION lib) install(FILES ${HDRS} DESTINATION include) + +# Static version if DA enabled +if(ALIROOT_STATIC) + add_library(${MODULE}-static STATIC $) + set_target_properties(${MODULE}-static PROPERTIES OUTPUT_NAME ${MODULE}) + + # list of shared dependencies / the name of the variable containing the list of static ones + generate_static_dependencies("${ALIROOT_DEPENDENCIES}" "STATIC_ALIROOT_DEPENDENCIES") + target_link_libraries(${MODULE}-static ${STATIC_ALIROOT_DEPENDENCIES} Root RootExtra) + + # Public include folders that will be propagated to the dependecies + target_include_directories(${MODULE}-static PUBLIC ${incdirs}) + + set_target_properties(${MODULE}-static PROPERTIES LINK_FLAGS "-Wl,--whole-archive") + + # Installation + install(TARGETS ${MODULE}-static + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib) +endif(ALIROOT_STATIC)