From fe57d86aafe154c2aa57a55eb49fdd6733b73ed8 Mon Sep 17 00:00:00 2001
From: Viktor Klochkov <v.klochkov@gsi.de>
Date: Fri, 19 Jul 2019 10:59:13 +0200
Subject: [PATCH] build type

---
 .gitignore     |  3 +++
 CMakeLists.txt | 24 ++++++++++++++++++++++--
 2 files changed, 25 insertions(+), 2 deletions(-)
 create mode 100644 .gitignore

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..1ff9628
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+build/*
+install/*
+Doxygen/*
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7bb0e99..359f4c8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,10 +1,30 @@
 cmake_minimum_required(VERSION 2.8)
 project(Centrality)
 set(CMAKE_MACOSX_RPATH 1)
-set(CMAKE_cpp_STANDARD 11)
-set(CMAKE_BUILD_TYPE debug)
 set(PROJECT_VERSION 1.0)
 
+if(NOT DEFINED CMAKE_CXX_STANDARD)
+  set(CMAKE_CXX_STANDARD 11)
+endif()
+
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+message(STATUS "Using C++${CMAKE_CXX_STANDARD}")
+
+# by default build optimized code with debug symbols
+if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
+    set(CMAKE_BUILD_TYPE RELWITHDEBINFO)
+endif ()
+
+# in DEBUG mode make verbose Makefile
+if (CMAKE_BUILD_TYPE MATCHES DEBUG)
+    set(CMAKE_VERBOSE_MAKEFILE ON)
+endif ()
+
+set(CMAKE_CXX_FLAGS_DEBUG "-O0 -ggdb -DDEBUG -D__DEBUG -Wall")
+set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELEASE} -ggdb")
+set(CMAKE_CXX_FLAGS_RELEASE "-O3 -march=native -ftree-vectorize -ffast-math -DNODEBUG")
+message(STATUS "Using CXX flags for ${CMAKE_BUILD_TYPE}: ${CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}}")
+
 set(SOURCES
         src/BordersFinder.cpp
         src/BordersFinderHelper.cpp
-- 
GitLab