getfem-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Getfem-commits] (no subject)


From: Konstantinos Poulios
Subject: [Getfem-commits] (no subject)
Date: Fri, 12 Apr 2024 10:17:16 -0400 (EDT)

branch: master
commit 30067565d5dd21989381d4cbd84dd3155b3e0c31
Author: Konstantinos Poulios <logari81@gmail.com>
AuthorDate: Fri Apr 12 16:16:02 2024 +0200

    Treat clang separately in autoconf system and other minor build system 
changes
---
 CMakeLists.txt |  2 +-
 configure.ac   | 36 ++++++++++++++++++++++++++++--------
 2 files changed, 29 insertions(+), 9 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0f8694be..b6dd7b7e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -60,7 +60,7 @@ set(CMAKE_INSTALL_PREFIX "/usr/local" CACHE PATH 
"Installation prefix")
 
 
 # General tests and configurations
-set(CMAKE_CXX_STANDARD 14)
+set(CMAKE_CXX_STANDARD 14 CACHE STRING "Set C++ standard version (default: 14))
 set(CMAKE_CXX_STANDARD_REQUIRED ON)
 check_include_file_cxx("cxxabi.h" GETFEM_HAVE_CXXABI_H)
 check_cxx_source_compiles(
diff --git a/configure.ac b/configure.ac
index 339025ba..8d03612d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -27,7 +27,7 @@ dnl thus, updating cache ./config.cache avoided.
 define([AC_CACHE_LOAD], )dnl
 define([AC_CACHE_SAVE], )dnl
 
-AC_INIT(getfem, 5.4.2)
+AC_INIT([getfem],[5.4.2])
 MAJOR_VERSION="5"
 MINOR_VERSION="4"
 PATCH_VERSION="2"
@@ -40,7 +40,7 @@ AC_DEFINE_UNQUOTED(GMM_VERSION,"${PACKAGE_VERSION}",[GMM 
version])
 AC_CONFIG_SRCDIR([install-sh])
 AC_CONFIG_MACRO_DIR([m4])
 AC_CONFIG_HEADERS([config_autogenerated_not_used.h 
src/getfem/getfem_arch_config.h src/gmm/gmm_arch_config.h])
-AC_PREREQ(2.61)
+AC_PREREQ([2.71])
 AC_ARG_PROGRAM
 
 dnl ------------------------------------------------------------------------
@@ -114,15 +114,12 @@ dnl AC_CXX_FULL_SPECIALIZATION_SYNTAX (c)Luc Maisonobe v 
1.1.1.1 (2001/07/26)
 dnl with some modification to test partial specialization
 AC_CACHE_CHECK(whether the compiler recognizes the partial specialization 
syntax,
 ac_cv_cxx_partial_specialization_syntax,
-[AC_DIAGNOSE([obsolete],[Instead of using `AC_LANG', `AC_LANG_SAVE', and 
`AC_LANG_RESTORE',
-you should use `AC_LANG_PUSH' and `AC_LANG_POP'.])dnl
-AC_LANG_SAVE
- AC_LANG([C++])
+[AC_LANG_PUSH([C++])
  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
 template<class T> class A        { public : int f () const { return 1; } };
 template<class T> class A<T*>    { public : int f () const { return 0; } };]], 
[[
 A<float*> a; return 
a.f();]])],[ac_cv_cxx_partial_specialization_syntax=yes],[ac_cv_cxx_partial_specialization_syntax=no])
- AC_LANG_POP([])
+ AC_LANG_POP([C++])
 ])
 if test "$ac_cv_cxx_partial_specialization_syntax" != yes; then
   echo "Your compiler ($CXX) does not support partial template specialization, 
trash it"
@@ -135,6 +132,29 @@ echo "you are compiling GetFEM on a $host"
 
 case $CXX in
        
+ clang++)
+       GLANGVER=`$CXX --version | head -n 1 | grep -o -E 
"[[:digit:]]+.[[:digit:]]+.[[:digit:]]+"`
+       echo "Using the clang++ compiler $GLANGVER"
+       AC_CHECK_CXX_FLAG([$with_optimization],CXXFLAGS)
+       AC_CHECK_CXX_FLAG([-fmessage-length=0],CXXFLAGS)
+       AC_CHECK_CXX_FLAG([-fvisibility-inlines-hidden],CXXFLAGS)
+       AC_CHECK_CXX_FLAG([-ftemplate-depth-100],CXXFLAGS)
+       AC_CHECK_CXX_FLAG([-std=c++14], CXXFLAGS, [AC_MSG_ERROR([Used clang++ 
version does not support option -std=c++14.])])
+       AC_CHECK_CXX_FLAG([-fPIC],CXXFLAGS)
+       AC_CHECK_CXX_FLAG([-Wall -W -Wextra],CXXFLAGS)
+       AC_CHECK_CXX_FLAG([-Wshadow],CXXFLAGS)
+       AC_CHECK_CXX_FLAG([-Wno-unknown-pragmas],CXXFLAGS)
+       AC_CHECK_CXX_FLAG([-Wno-variadic-macros],CXXFLAGS)
+       AC_CHECK_CXX_FLAG([-Wno-unused-but-set-variable],CXXFLAGS)
+       AC_CHECK_CXX_FLAG([-Wpointer-arith],CXXFLAGS)
+       AC_CHECK_CXX_FLAG([-Wcast-qual],CXXFLAGS)
+       AC_CHECK_CXX_FLAG([-Wwrite-strings],CXXFLAGS)
+       AC_CHECK_CXX_FLAG([-Wconversion],CXXFLAGS)
+       AC_CHECK_CXX_FLAG([-Wredundant-decls],CXXFLAGS)
+       AC_CHECK_CXX_FLAG([-Wno-long-long],CXXFLAGS)
+       AC_CHECK_CXX_FLAG([-rdynamic],SUPLDFLAGS)
+        CFLAGS="$CFLAGS $with_optimization -fPIC"
+       ;;
  *g++* | c++)
        GCCVER=`$CXX --version | head -1 | cut -d ' ' -f3`
        echo "Using the GNU g++ compiler $GCCVER"
@@ -142,7 +162,7 @@ case $CXX in
        AC_CHECK_CXX_FLAG([-fmessage-length=0],CXXFLAGS)
        AC_CHECK_CXX_FLAG([-fvisibility-inlines-hidden],CXXFLAGS)
        AC_CHECK_CXX_FLAG([-ftemplate-depth-100],CXXFLAGS)
-       AC_CHECK_CXX_FLAG([-std=c++14], 
CXXFLAGS,[AC_CHECK_CXX_FLAG([-std=c++0x],CXXFLAGS,[AC_MSG_ERROR([g++ do not 
support option -std=c++14. Update g++ to at least release 4.9])] )])
+       AC_CHECK_CXX_FLAG([-std=c++14], 
CXXFLAGS,[AC_CHECK_CXX_FLAG([-std=c++0x],CXXFLAGS,[AC_MSG_ERROR([Used g++ does 
not support option -std=c++14. Update g++ to at least release 4.9])] )])
        AC_CHECK_CXX_FLAG([-fPIC],CXXFLAGS)
        AC_CHECK_CXX_FLAG([-Wall -W -Wextra],CXXFLAGS)
        dnl AC_CHECK_CXX_FLAG([-pedantic],CXXFLAGS)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]