# ************************************************************************** # * Copyright(c) 1998-2014, ALICE Experiment at CERN, All rights reserved. * # * * # * Author: The ALICE Off-line Project. * # * Contributors are mentioned in the code where appropriate. * # * * # * Permission to use, copy, modify and distribute this software and its * # * documentation strictly for non-commercial purposes is hereby granted * # * without fee, provided that the above copyright notice appears in all * # * copies and that both the copyright notice and this permission notice * # * appear in the supporting documentation. The authors make no claims * # * about the suitability of this software for any purpose. It is * # * provided "as is" without express or implied warranty. * # ************************************************************************** # Module set(MODULE TTherminator) # Module include folder include_directories(${AliRoot_SOURCE_DIR}/${MODULE} ${AliRoot_SOURCE_DIR}/${MODULE}/Therminator ) # Additional include folders in alphabetical order except ROOT include_directories(${ROOT_INCLUDE_DIR} ${AliRoot_SOURCE_DIR}/EVGEN ${AliRoot_SOURCE_DIR}/STEER/STEER ${AliRoot_SOURCE_DIR}/STEER/STEERBase ) # Sources set(SRCS AliGenTherminator.cxx TTherminator.cxx Therminator/DecayChannel.cxx Therminator/DecayTable.cxx Therminator/Event.cxx Therminator/Hypersurface.cxx Therminator/Integrator.cxx Therminator/Parser.cxx Therminator/Particle.cxx Therminator/ParticleDB.cxx Therminator/ParticleDecayer.cxx Therminator/ParticleType.cxx Therminator/ReadPar.cxx ) # Headers from sources string(REPLACE ".cxx" ".h" HDRS "${SRCS}") set(HDRS ${HDRS} Therminator/THGlobal.h) # Generate the dictionary # It will create G_ARG1.cxx and G_ARG1.h / ARG1 = function first argument get_directory_property(incdirs INCLUDE_DIRECTORIES) generate_dictionary("${MODULE}" "${MODULE}LinkDef.h" "${HDRS}" "${incdirs}") # Generate the ROOT map # Dependecies set(LIBDEPS STEERBase STEER EVGEN Html TreePlayer XMLParser) generate_rootmap("${MODULE}" "${LIBDEPS}" "${CMAKE_CURRENT_SOURCE_DIR}/${MODULE}LinkDef.h") # Generate a PARfile target for this library # NOTE: TTherminator requires the "extra include" option of add_target_parfile() to be used, as some # header files are found in a subdirectory add_target_parfile(${MODULE} "${SRCS}" "${HDRS}" "${MODULE}LinkDef.h" "${LIBDEPS}" "Therminator") # Add a library to the project using the specified source files add_library(${MODULE} SHARED ${SRCS} G__${MODULE}.cxx ${FSRCS}) # Additional compilation flags set_target_properties(${MODULE} PROPERTIES COMPILE_FLAGS "") # Linking the library target_link_libraries(${MODULE} ${LIBDEPS}) # System dependent: Modify the way the library is build if(${CMAKE_SYSTEM} MATCHES Darwin) set_target_properties(${MODULE} PROPERTIES LINK_FLAGS "-undefined dynamic_lookup") endif(${CMAKE_SYSTEM} MATCHES Darwin) # Installation install(TARGETS ${MODULE} ARCHIVE DESTINATION lib LIBRARY DESTINATION lib) # This custom command installs headers preserving their relative subdirectories install_relative(FILES ${HDRS} DESTINATION include) message(STATUS "${MODULE} enabled")