From d88e0bed4f13eb18f328f38e9ad16fedc463c04a Mon Sep 17 00:00:00 2001
From: Jannis Linxweiler <linxweiler@irmb.tu-bs.de>
Date: Fri, 25 Oct 2019 11:17:44 +0200
Subject: [PATCH] adds cmake compiler file for llvm

---
 CMake/CMakeCompilerMacros.txt  |  2 +
 CMake/compilerflags/llvm.cmake | 68 ++++++++++++++++++++++++++++++++++
 2 files changed, 70 insertions(+)
 create mode 100644 CMake/compilerflags/llvm.cmake

diff --git a/CMake/CMakeCompilerMacros.txt b/CMake/CMakeCompilerMacros.txt
index 3a3f2c74e..1bf8aee4c 100644
--- a/CMake/CMakeCompilerMacros.txt
+++ b/CMake/CMakeCompilerMacros.txt
@@ -75,6 +75,8 @@ MACRO(SET_CAB_COMPILER)
 		   ELSE()
 		     SET( CAB_COMPILER "msvc19_32" )
 		   ENDIF()
+         ELSEIF(APPLE)
+            SET( CAB_COMPILER "llvm" )
          ELSE()
            EXEC_PROGRAM( ${CMAKE_CXX_COMPILER}                          
                           ARGS --version 
diff --git a/CMake/compilerflags/llvm.cmake b/CMake/compilerflags/llvm.cmake
new file mode 100644
index 000000000..3c30f9171
--- /dev/null
+++ b/CMake/compilerflags/llvm.cmake
@@ -0,0 +1,68 @@
+###############################################################################################################
+## 
+##  gcc74
+##
+###############################################################################################################
+
+MACRO(SET_COMPILER_SPECIFIC_FLAGS_INTERN build_type use64BitOptions)
+   #############################################################################################################
+   # Flags
+   #############################################################################################################
+   LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-O3 -fomit-frame-pointer -finline-functions -fPIC")
+ 
+   LIST(APPEND CAB_COMPILER_ADDTIONAL_C_COMPILER_FLAGS "-O3 -fomit-frame-pointer -finline-functions -fPIC")
+
+   #############################################################################################################
+   # 64Bit support
+   #############################################################################################################
+   IF( ${use64BitOptions} ) 
+     LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-m64" )
+     LIST(APPEND CAB_COMPILER_ADDTIONAL_C_COMPILER_FLAGS   "-m64" )
+   ENDIF()
+
+   #############################################################################################################
+   # OpenMP support
+   #############################################################################################################
+   IF(USE_OPENMP)
+     LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-fopenmp")
+     LIST(APPEND CAB_COMPILER_ADDTIONAL_C_COMPILER_FLAGS "-fopenmp")
+   ENDIF()
+
+   #############################################################################################################
+   # mt support
+   #############################################################################################################
+   LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-pthread")
+   LIST(APPEND CAB_COMPILER_ADDTIONAL_C_COMPILER_FLAGS "-pthread")
+
+   #############################################################################################################
+   # c++ 11 support
+   #############################################################################################################
+   LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-std=c++11")
+   LIST(APPEND CAB_COMPILER_ADDTIONAL_C_COMPILER_FLAGS "-std=c++11")
+
+   #############################################################################################################
+   # disable warning
+   #############################################################################################################
+   LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wno-deprecated") #deprecated header warning
+   LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wbackslash-newline-escape") #backslash and newline separated by space
+   LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wcomment") #'/*' within block comment
+
+   LIST(APPEND CAB_COMPILER_ADDTIONAL_C_COMPILER_FLAGS "-Wbackslash-newline-escape") #backslash and newline separated by space
+   
+   #############################################################################################################
+   # c++ 17 support
+   #############################################################################################################
+   #LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-std=c++17")
+   #LIST(APPEND CAB_COMPILER_ADDTIONAL_C_COMPILER_FLAGS "-std=c++17")
+   
+   #LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-fext-numeric-literals")
+   #LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-D_GLIBCXX_USE_CXX11_ABI=0")
+   #LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wregister")
+
+   
+
+   IF(NOT APPLE)
+      LIST(APPEND CAB_ADDITIONAL_LINK_PROPS "-lrt")
+   ENDIF()
+
+ENDMACRO(SET_COMPILER_SPECIFIC_FLAGS_INTERN build_type use64BitOptions)
-- 
GitLab