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