]>
Commit | Line | Data |
---|---|---|
36799128 | 1 | # ************************************************************************** |
2 | # * Copyright(c) 1998-2014, ALICE Experiment at CERN, All rights reserved. * | |
3 | # * * | |
4 | # * Author: The ALICE Off-line Project. * | |
5 | # * Contributors are mentioned in the code where appropriate. * | |
6 | # * * | |
7 | # * Permission to use, copy, modify and distribute this software and its * | |
8 | # * documentation strictly for non-commercial purposes is hereby granted * | |
9 | # * without fee, provided that the above copyright notice appears in all * | |
10 | # * copies and that both the copyright notice and this permission notice * | |
11 | # * appear in the supporting documentation. The authors make no claims * | |
12 | # * about the suitability of this software for any purpose. It is * | |
13 | # * provided "as is" without express or implied warranty. * | |
14 | # ************************************************************************** | |
15 | ||
f4809a5d | 16 | # AliRoot Build System Module to find and configure FASTJET |
36799128 | 17 | # Author: Marco van Leeuwen |
18 | # FastJet installation is pointed during cmake configuration -DFASTJET | |
19 | # Variables set during Find: | |
20 | # - FASTJET_CONFIG - fastjet-config location | |
21 | # - FASTJET_VERSION | |
22 | # - FASTJET_VERSION_MAJOR | |
23 | # - FASTJET_VERSION_MINOR | |
24 | # - FASTJET_VERSION_PATCH | |
25 | # - FASTJET_INCLUDE_DIR - fastjet headers location | |
5e8fe0e0 | 26 | # - FASTJET_LIBS_DIR - fastjet libraries location |
36799128 | 27 | # - FASTJET_DEFINITIONS - fastjet definition flags |
28 | # - FASTJET_CXXFLAGS - fastjet compilation flags | |
5e8fe0e0 | 29 | # - FASTJET_LIBS - fastjet libraries - array |
36799128 | 30 | |
31 | set(FASTJET_FOUND FALSE) | |
32 | ||
33 | if(FASTJET) | |
34 | # Check for fastjet-config script | |
35 | find_program(FASTJET_CONFIG NAMES fastjet-config PATHS ${FASTJET}/bin NO_DEFAULT_PATH) | |
36 | if(NOT FASTJET_CONFIG) | |
37 | message(FATAL_ERROR "Could not find fastjet-config executable") | |
38 | endif(NOT FASTJET_CONFIG) | |
9f4ff23c | 39 | mark_as_advanced(FASTJET_CONFIG) |
36799128 | 40 | |
41 | # Check for header installation | |
42 | find_path(FASTJETHH include/fastjet/PseudoJet.hh PATHS ${FASTJET}) | |
43 | ||
44 | if (FASTJETHH-NOTFOUND) | |
45 | message(FATAL_ERROR "Header file fastjet/PseudoJet.hh not found in ${FASTJET}/include. Please check your FASTJET installation") | |
46 | endif(FASTJETHH-NOTFOUND) | |
9f4ff23c | 47 | mark_as_advanced(FASTJETHH) |
f4809a5d | 48 | |
36799128 | 49 | # FastJet version |
50 | execute_process(COMMAND ${FASTJET_CONFIG} --version OUTPUT_VARIABLE FASTJET_VERSION ERROR_VARIABLE error OUTPUT_STRIP_TRAILING_WHITESPACE ) | |
51 | if(error) | |
52 | message(FATAL_ERROR "Error retrieving FastJet version : ${error}") | |
53 | endif(error) | |
54 | ||
55 | # Extract major, minor, and patch versions from | |
56 | string(REGEX REPLACE "^([0-9]+)\\.[0-9]+\\.[0-9]+.*" "\\1" FASTJET_VERSION_MAJOR "${FASTJET_VERSION}") | |
57 | string(REGEX REPLACE "^[0-9]+\\.([0-9])+\\.[0-9]+.*" "\\1" FASTJET_VERSION_MINOR "${FASTJET_VERSION}") | |
58 | string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" FASTJET_VERSION_PATCH "${FASTJET_VERSION}") | |
6112f260 | 59 | |
60 | if(FASTJET_VERSION_MAJOR LESS 3) | |
168930f9 | 61 | message(FATAL_ERROR "FastJet ${FASTJET_VERSION_MAJOR}.${FASTJET_VERSION_MINOR}.${FASTJET_VERSION_PATCH} version is not suported. Please install a version >= 3.0.*") |
62 | endif() | |
63 | ||
4a52b01a | 64 | if(FASTJET_VERSION_MINOR GREATER 0) |
168930f9 | 65 | message(FATAL_ERROR "FastJet ${FASTJET_VERSION_MAJOR}.${FASTJET_VERSION_MINOR}.${FASTJET_VERSION_PATCH} version is not suported. Please install a version >= 3.0.*") |
6112f260 | 66 | endif() |
36799128 | 67 | |
68 | # Extracting compilation flags | |
69 | execute_process(COMMAND ${FASTJET_CONFIG} --cxxflags OUTPUT_VARIABLE FASTJET_CXXFLAGS ERROR_VARIABLE error OUTPUT_STRIP_TRAILING_WHITESPACE ) | |
70 | if(error) | |
71 | message(FATAL_ERROR "Error retrieving FastJet compilation flags : ${error}") | |
72 | endif(error) | |
e8557193 | 73 | |
74 | # Extracting the include path from the CXX flags | |
75 | set(FASTJET_INCLUDE_DIR) | |
76 | if(FASTJET_CXXFLAGS) | |
77 | string(STRIP ${FASTJET_CXXFLAGS} FASTJET_CXXFLAGS) | |
78 | string(REGEX MATCHALL "[-][I]([^ ])+" incfolders ${FASTJET_CXXFLAGS}) | |
79 | ||
80 | foreach(incfolder ${incfolders}) | |
81 | string(REPLACE "-I" "" incfolder ${incfolder}) | |
82 | set(FASTJET_INCLUDE_DIR ${incfolder} ${FASTJET_INCLUDE_DIR}) | |
83 | endforeach() | |
84 | endif(FASTJET_CXXFLAGS) | |
36799128 | 85 | |
86 | # Extracting libraries and linking options | |
5e8fe0e0 | 87 | execute_process(COMMAND ${FASTJET_CONFIG} --libs OUTPUT_VARIABLE FASTJET_CONFIGLIBS ERROR_VARIABLE error OUTPUT_STRIP_TRAILING_WHITESPACE ) |
36799128 | 88 | if(error) |
89 | message(FATAL_ERROR "Error retrieving FastJet libs : ${error}") | |
90 | endif(error) | |
e8557193 | 91 | |
92 | # Extracting the list of needed libraries during linking and the linking folders | |
93 | set(FASTJET_LIBS) | |
94 | set(FASTJET_LIBS_DIR) | |
95 | if(FASTJET_CONFIGLIBS) | |
96 | string(STRIP ${FASTJET_CONFIGLIBS} FASTJET_CONFIGLIBS) | |
97 | ||
98 | # Extracting the list of libraries needed during linking | |
99 | # -l strings | |
100 | string(REGEX MATCHALL "[-][l]([^ ])+" fjlibs "${FASTJET_CONFIGLIBS}") | |
101 | ||
102 | foreach(flib ${fjlibs}) | |
103 | string(REPLACE "-l" "" flib "${flib}") | |
104 | set(FASTJET_LIBS ${FASTJET_LIBS} ${flib}) | |
105 | endforeach() | |
5e8fe0e0 | 106 | |
e8557193 | 107 | # Extracting the list of libraries folders |
108 | # -L strings | |
109 | string(REGEX MATCHALL "[-][L]([^ ])+" fjlibdirs "${FASTJET_CONFIGLIBS}") | |
110 | ||
111 | foreach(fjlibdir ${fjlibdirs}) | |
112 | string(REPLACE "-L" "" fjlibdir ${fjlibdir}) | |
113 | set(FASTJET_LIBS_DIR ${fjlibdir} ${FASTJET_LIBS_DIR}) | |
114 | endforeach() | |
115 | endif() | |
36799128 | 116 | |
117 | set(FASTJET_FOUND TRUE) | |
36799128 | 118 | set(FASTJET_DEFINITIONS "-DHAVE_FASTJET") |
119 | message(STATUS "FastJet ${FASTJET_VERSION_MAJOR}.${FASTJET_VERSION_MINOR}.${FASTJET_VERSION_PATCH} installation found: ${FASTJET}") | |
120 | else() | |
121 | message(STATUS "FastJet not found: disabling dependencies") | |
122 | endif(FASTJET) |