From 16765dcc76bfb89d37258d29b83e2083f12c9560 Mon Sep 17 00:00:00 2001 From: hristov Date: Fri, 14 Nov 2014 17:37:16 +0100 Subject: [PATCH] Converting THerwig to native cmake --- CMakeLists.txt | 1 + THerwig/CMakeLists.txt | 72 +++++++++++++++++++++++++++++++++---- THerwig/CMakelibTHerwig.pkg | 37 ------------------- 3 files changed, 66 insertions(+), 44 deletions(-) delete mode 100644 THerwig/CMakelibTHerwig.pkg diff --git a/CMakeLists.txt b/CMakeLists.txt index 2af07b5fa06..49384cfc368 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -121,6 +121,7 @@ add_subdirectory(STARLIGHT) add_subdirectory(STAT) add_subdirectory(STRUCT) add_subdirectory(T0) +add_subdirectory(THerwig) add_subdirectory(TOF) add_subdirectory(TPC) add_subdirectory(TRD) diff --git a/THerwig/CMakeLists.txt b/THerwig/CMakeLists.txt index 72c3d6ade1f..b4790730873 100644 --- a/THerwig/CMakeLists.txt +++ b/THerwig/CMakeLists.txt @@ -1,10 +1,68 @@ -# AliRoot Build System CMakeLists for THerwig -# -# Author: Johny Jose m(johny.jose@cern.ch) -# Port of previous Makefile build to cmake +# ************************************************************************** +# * 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. * +# ************************************************************************** -cmake_minimum_required(VERSION 2.8.8 FATAL_ERROR) +# Module +set(MODULE THerwig) -file(GLOB PACKAGES CMake*.pkg) +# Module include folder +include_directories(${AliRoot_SOURCE_DIR}/${MODULE} + ) -ALICE_BuildModule() +# Additional include folders in alphabetical order except ROOT +include_directories(${ROOT_INCLUDE_DIRS} + ${AliRoot_SOURCE_DIR}/EVGEN + ${AliRoot_SOURCE_DIR}/HERWIG + ${AliRoot_SOURCE_DIR}/LHAPDF + ${AliRoot_SOURCE_DIR}/STEER/STEER + ${AliRoot_SOURCE_DIR}/STEER/STEERBase + ) + +# Sources +set(SRCS + THerwig6.cxx + AliGenHerwig.cxx +) + +# Headers from sources +string(REPLACE ".cxx" ".h" HDRS "${SRCS}") + +# 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 HERWIG EVGEN LHAPDF STEER STEERBase ) +generate_rootmap("${MODULE}" "${LIBDEPS}" "${CMAKE_CURRENT_SOURCE_DIR}/${MODULE}LinkDef.h") + +# Add a library to the project using the specified source files +add_library(${MODULE} SHARED ${SRCS} G__${MODULE}.cxx) + +# Additional compilation flags +set_target_properties(${MODULE} PROPERTIES COMPILE_FLAGS "-O -g") + +# 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) +install(FILES ${HDRS} DESTINATION include) + +message(STATUS "${MODULE} enabled") diff --git a/THerwig/CMakelibTHerwig.pkg b/THerwig/CMakelibTHerwig.pkg deleted file mode 100644 index 083f461af97..00000000000 --- a/THerwig/CMakelibTHerwig.pkg +++ /dev/null @@ -1,37 +0,0 @@ -# -*- mode: CMake -*- -#--------------------------------------------------------------------------------# -# Package File for THerwig # -# Author : Johny Jose (johny.jose@cern.ch) # -# Variables Defined : # -# # -# SRCS - C++ source files # -# HDRS - C++ header files # -# DHDR - ROOT Dictionary Linkdef header file # -# CSRCS - C source files # -# CHDRS - C header files # -# EINCLUDE - Include directories # -# EDEFINE - Compiler definitions # -# ELIBS - Extra libraries to link # -# ELIBSDIR - Extra library directories # -# PACKFFLAGS - Fortran compiler flags for package # -# PACKCXXFLAGS - C++ compiler flags for package # -# PACKCFLAGS - C compiler flags for package # -# PACKSOFLAGS - Shared library linking flags # -# PACKLDFLAGS - Module linker flags # -# PACKBLIBS - Libraries to link (Executables only) # -# EXPORT - Header files to be exported # -# CINTHDRS - Dictionary header files # -# CINTAUTOLINK - Set automatic dictionary generation # -# ARLIBS - Archive Libraries and objects for linking (Executables only) # -# SHLIBS - Shared Libraries and objects for linking (Executables only) # -#--------------------------------------------------------------------------------# - -set ( SRCS THerwig6.cxx AliGenHerwig.cxx) - -set ( HDRS THerwig6.h AliGenHerwig.h) - -set ( DHDR THerwigLinkDef.h) - -set ( EXPORT THerwig6.h) - -set ( EINCLUDE HERWIG EVGEN LHAPDF STEER/STEER STEER/STEERBase) -- 2.43.0