]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - cmake/CMakelinuxx8664gcc.cmake
CMake: Propagate compilation flags to the dictionary generation
[u/mrichter/AliRoot.git] / cmake / CMakelinuxx8664gcc.cmake
index ab2d1a5bec2755a3c655a7ed4a0da0d64ce611f1..57708a77c3ec3aef3b476e834b5eaf7ddb96fbb5 100644 (file)
@@ -1,3 +1,5 @@
+# -*- mode: cmake -*-
+
 #--------------------------------------------------------------------------------#
 # Linuxx8664gcc CMake System configuration file for the AliRoot Build System     #
 #                                                                                # 
@@ -6,21 +8,35 @@
 #--------------------------------------------------------------------------------#
 
 
-cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
+cmake_minimum_required(VERSION 2.8.8 FATAL_ERROR)
 
 #Retrieve Compiler Version
 
 
-execute_process (COMMAND ${CMAKE_C_COMPILER} -dumpversion | cut -d. -f1 
+execute_process (COMMAND ${CMAKE_C_COMPILER} -dumpversion
+                 COMMAND cut -d. -f1
                  OUTPUT_VARIABLE CCMAJORV
                  OUTPUT_STRIP_TRAILING_WHITESPACE) 
-execute_process (COMMAND ${CMAKE_C_COMPILER} -dumpversion | cut -d. -f2
+execute_process (COMMAND ${CMAKE_C_COMPILER} -dumpversion
+                 COMMAND cut -d. -f2
                  OUTPUT_VARIABLE CCMINORV
                  OUTPUT_STRIP_TRAILING_WHITESPACE)
 
 
 # Global Optimization
-set(OPT "-O -g")
+set(OPT)
+
+# ------- Setting optimization flags for default configuration -------
+
+if((NOT CMAKE_BUILD_TYPE) OR (CMAKE_BUILD_TYPE STREQUAL "None"))
+    set(DEFAULT_CXX_FLAGS "-g")
+    set(OPT "${DEFAULT_CXX_FLAGS}")
+    message("-- Setting compiler flags for default configuration: ${DEFAULT_CXX_FLAGS}")
+endif((NOT CMAKE_BUILD_TYPE) OR (CMAKE_BUILD_TYPE STREQUAL "None"))
+
+# --------------------------------------------------------------------
+
+
 set(NOOPT "-g")
 
 set(CXXOPT ${OPT})
@@ -34,7 +50,7 @@ set(CLIBCXXOPTS)
 set(CLIBCOPT)
 set(CLIBFOPT ${CLIBDEFS})
 
-set(CXXWARN "-Wall -Wno-long-long -W -Weffc++ -Wshadow -Woverloaded-virtual -ansi")
+set(CXXWARN "-Wall -Wno-long-long -W -Weffc++ -Wshadow -Woverloaded-virtual")
 
 if(CCMAJORV STREQUAL "2")
 
@@ -52,6 +68,10 @@ elseif(CCMAJORV STREQUAL "4")
   set(CXXFLAGS "${OPT} -fPIC -pipe -fmessage-length=0 -Dlinux")
   add_definitions(-Dlinux)
   set(CXXFLAGSNO "${NOOPT} -fPIC -pipe -fmessage-length=0")
+  if(CCMINORV STRGREATER 5) 
+    message("-- GCC version > 4.5 - mask default -Wl,--as-needed")
+    set(XTRA_LDFLAGS "-Wl,--no-as-needed")
+  endif() 
 
 else ()
 
@@ -71,6 +91,7 @@ execute_process(COMMAND find /lib64 -name 'libNoVersion*.so'
                 OUTPUT_STRIP_TRAILING_WHITESPACE)
                 
 
+#set(SYSLIBS "-ldl -lcrypt -L/usr/X11R6/lib -lX11 -lGL -lGLU ${LIBNOVER}")
 set(SYSLIBS "-ldl -lcrypt -L/usr/X11R6/lib -lX11 ${LIBNOVER}")
 
 if(${CMAKE_Fortran_COMPILER} MATCHES "g95")
@@ -85,11 +106,11 @@ if(${CMAKE_Fortran_COMPILER} MATCHES "g95")
 
 elseif(${CMAKE_Fortran_COMPILER} MATCHES "gfortran")
   
-  set(FFLAGS "-DFORTRAN_GFORTRAN ${FFLAGS}")
-  execute_process(COMMAND ${CMAKE_Fortran_COMPILER} -m32 -print-file-name=libgfortran.so
+  set(FFLAGS "-DFORTRAN_GFORTRAN ${FFLAGS} -fPIC")
+  execute_process(COMMAND ${CMAKE_Fortran_COMPILER} -print-file-name=libgfortran.so
                   OUTPUT_VARIABLE _shlib
                   OUTPUT_STRIP_TRAILING_WHITESPACE)
-  execute_process(COMMAND ${CMAKE_Fortran_COMPILER} -m32 -print-file-name=libgfortranbegin.a
+  execute_process(COMMAND ${CMAKE_Fortran_COMPILER} -print-file-name=libgfortranbegin.a
                   OUTPUT_VARIABLE SHLIB
                   OUTPUT_STRIP_TRAILING_WHITESPACE)
   set(SHLIB "${_shlib} ${SHLIB}")
@@ -102,8 +123,8 @@ else()
   
 endif(${CMAKE_Fortran_COMPILER} MATCHES "g95")
 
-set(LDFLAGS "${OPT}")
-set(SOFLAGS "${OPT} -shared -Wl")
+set(LDFLAGS "${OPT} ${XTRA_LDFLAGS} ")
+set(SOFLAGS "${OPT}  ${XTRA_LDFLAGS} -shared")
 set(ALLIB)