]> git.uio.no Git - u/mrichter/AliRoot.git/blob - cmake/CMakelinuxx8664gcc.cmake
added protections, modified addtask macro for Track QA (M. Verweij)
[u/mrichter/AliRoot.git] / cmake / CMakelinuxx8664gcc.cmake
1 # -*- mode: cmake -*-
2
3 #--------------------------------------------------------------------------------#
4 # Linuxx8664gcc CMake System configuration file for the AliRoot Build System     #
5 #                                                                                # 
6 # Author: Johny Jose (johny.jose@cern.ch)                                        #
7 #                                                                                #
8 #--------------------------------------------------------------------------------#
9
10
11 cmake_minimum_required(VERSION 2.8.4 FATAL_ERROR)
12
13 #Retrieve Compiler Version
14
15
16 execute_process (COMMAND ${CMAKE_C_COMPILER} -dumpversion | cut -d. -f1 
17                  OUTPUT_VARIABLE CCMAJORV
18                  OUTPUT_STRIP_TRAILING_WHITESPACE) 
19 execute_process (COMMAND ${CMAKE_C_COMPILER} -dumpversion | cut -d. -f2
20                  OUTPUT_VARIABLE CCMINORV
21                  OUTPUT_STRIP_TRAILING_WHITESPACE)
22
23
24 # Global Optimization
25 set(OPT)
26
27 # ------- Setting optimization flags for default configuration -------
28
29 if((NOT CMAKE_BUILD_TYPE) OR (CMAKE_BUILD_TYPE STREQUAL "None"))
30     set(DEFAULT_CXX_FLAGS "-O -g")
31     set(OPT "${DEFAULT_CXX_FLAGS}")
32     message("-- Setting compiler flags for default configuration: ${DEFAULT_CXX_FLAGS}")
33 endif((NOT CMAKE_BUILD_TYPE) OR (CMAKE_BUILD_TYPE STREQUAL "None"))
34
35 # --------------------------------------------------------------------
36
37
38 set(NOOPT "-g")
39
40 set(CXXOPT ${OPT})
41 set(CXXNOPT ${NOOPT})
42 set(COPT ${OPT})
43 set(FOPT ${OPT})
44
45 #CERNLIB defines
46 set(CLIBDEFS "-DCERNLIB_LINUX -DCERNLIB_BLDLIB -DCERNLIB_CZ")
47 set(CLIBCXXOPTS)
48 set(CLIBCOPT)
49 set(CLIBFOPT ${CLIBDEFS})
50
51 set(CXXWARN "-Wall -Wno-long-long -W -Weffc++ -Wshadow -Woverloaded-virtual -ansi")
52
53 if(CCMAJORV STREQUAL "2")
54
55   set(CXXFLAGS "${OPT} -fPIC -pipe")
56   set(CXXFLAGSNO "${NOOPT} -fPIC -pipe")
57
58 elseif(CCMAJORV STREQUAL "3")
59
60   set(CXXFLAGS "${OPT} -fPIC -pipe -fmessage-length=0 -Dlinux")
61   add_definitions(-Dlinux)
62   set(CXXFLAGSNO "${NOOPT} -fPIC -pipe -fmessage-length=0")
63
64 elseif(CCMAJORV STREQUAL "4")
65   
66   set(CXXFLAGS "${OPT} -fPIC -pipe -fmessage-length=0 -Dlinux")
67   add_definitions(-Dlinux)
68   set(CXXFLAGSNO "${NOOPT} -fPIC -pipe -fmessage-length=0")
69
70 else ()
71
72   set(CXXFLAGS "${OPT} -pipe -fmessage-length=0 -Dlinux")
73   add_definitions(-Dlinux)
74   set(CXXFLAGSNO "${NOOPT} -pipe -fmessage-length=0") 
75
76 endif(CCMAJORV STREQUAL "2")
77
78 set(CFLAGS      "${OPT} -Wall -Werror -fPIC -pipe -Wno-long-long -pedantic-errors -ansi")
79 set(FFLAGS "${CLIBFOPT} ${FOPT} -fPIC -fno-second-underscore -fPIC -fno-f2c")
80
81 execute_process(COMMAND find /lib64 -name 'libNoVersion*.so' 
82                 COMMAND xargs --replace basename {} .so 
83                 COMMAND sed -e "s/lib64/ -l/"
84                 OUTPUT_VARIABLE LIBNOVER
85                 OUTPUT_STRIP_TRAILING_WHITESPACE)
86                 
87
88 set(SYSLIBS "-ldl -lcrypt -L/usr/X11R6/lib -lX11 ${LIBNOVER}")
89
90 if(${CMAKE_Fortran_COMPILER} MATCHES "g95")
91   
92   add_definitions(-DFORTRAN_G95)
93   execute_process(COMMAND ${CMAKE_Fortran_COMPILER} --print-search-dirs 
94                   OUTPUT_VARIABLE SHLIB
95                   OUTPUT_STRIP_TRAILING_WHITESPACE)
96   string(REGEX MATCH "^.*install:[^\n]*" SHLIB ${SHLIB})
97   string(REGEX REPLACE "^.*install: " "" SHLIB ${SHLIB})
98   set(SHLIB "-L${SHLIB} -lf95")
99
100 elseif(${CMAKE_Fortran_COMPILER} MATCHES "gfortran")
101   
102   set(FFLAGS "-DFORTRAN_GFORTRAN ${FFLAGS}")
103   execute_process(COMMAND ${CMAKE_Fortran_COMPILER} -print-file-name=libgfortran.so
104                   OUTPUT_VARIABLE _shlib
105                   OUTPUT_STRIP_TRAILING_WHITESPACE)
106   execute_process(COMMAND ${CMAKE_Fortran_COMPILER} -print-file-name=libgfortranbegin.a
107                   OUTPUT_VARIABLE SHLIB
108                   OUTPUT_STRIP_TRAILING_WHITESPACE)
109   set(SHLIB "${_shlib} ${SHLIB}")
110   set(SYSLIBS "${SYSLIBS} ${SHLIB}")
111
112 else()
113
114   set(SHLIB "-lg2c")
115   set(SYSLIBS "-lg2c")
116   
117 endif(${CMAKE_Fortran_COMPILER} MATCHES "g95")
118
119 set(LDFLAGS "${OPT}")
120 set(SOFLAGS "${OPT} -shared -Wl")
121 set(ALLIB)
122
123
124