#--------------------------------------------------------------------------------#
-cmake_minimum_required(VERSION 2.8.4 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)
# ------- Setting optimization flags for default configuration -------
if((NOT CMAKE_BUILD_TYPE) OR (CMAKE_BUILD_TYPE STREQUAL "None"))
- set(DEFAULT_CXX_FLAGS "-O -g")
+ 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(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")
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 ()
elseif(${CMAKE_Fortran_COMPILER} MATCHES "gfortran")
- set(FFLAGS "-DFORTRAN_GFORTRAN ${FFLAGS}")
+ set(FFLAGS "-DFORTRAN_GFORTRAN ${FFLAGS} -fPIC")
execute_process(COMMAND ${CMAKE_Fortran_COMPILER} -print-file-name=libgfortran.so
OUTPUT_VARIABLE _shlib
OUTPUT_STRIP_TRAILING_WHITESPACE)
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)