Skip to content

Commit

Permalink
Add better default flags
Browse files Browse the repository at this point in the history
  • Loading branch information
certik committed Aug 13, 2019
1 parent e057d55 commit ae8a742
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 0 deletions.
4 changes: 4 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
cmake_minimum_required(VERSION 3.5 FATAL_ERROR)

set(CMAKE_USER_MAKE_RULES_OVERRIDE ${CMAKE_SOURCE_DIR}/cmake/UserOverride.cmake)

project(lfortran C CXX)

set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)

if (NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release
CACHE STRING "Build type (Debug, Release)" FORCE)
Expand Down
26 changes: 26 additions & 0 deletions cmake/UserOverride.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# This overrides the default CMake Debug and Release compiler options.
# The user can still specify different options by setting the
# CMAKE_CXX_FLAGS_[RELEASE,DEBUG] variables (on the command line or in the
# CMakeList.txt). This files serves as better CMake defaults and should only be
# modified if the default values are to be changed. Project specific compiler
# flags should be set in the CMakeList.txt by setting the CMAKE_CXX_FLAGS_*
# variables.

if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
# g++
set(common "-Wall -Wextra -Wno-unused-parameter -fno-common")
set(CMAKE_CXX_FLAGS_RELEASE_INIT "${common} -O3 -march=native -funroll-loops -DNDEBUG")
set(CMAKE_CXX_FLAGS_DEBUG_INIT "${common} -g -ggdb")
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
# icpc
set(common "-Wall -fno-common")
set(CMAKE_CXX_FLAGS_RELEASE_INIT "${common} -xHOST -O3")
set(CMAKE_CXX_FLAGS_DEBUG_INIT "${common} -g -O0")
elseif (CMAKE_CXX_COMPILER_ID MATCHES Clang)
# clang
set(common "-Wall -Wextra -Wno-unused-parameter")
set(CMAKE_CXX_FLAGS_RELEASE_INIT "${common} -O3 -march=native -funroll-loops -DNDEBUG")
set(CMAKE_CXX_FLAGS_DEBUG_INIT "${common} -g -ggdb")
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "PGI")
# pgcpp
endif ()

0 comments on commit ae8a742

Please sign in to comment.