blob: 8ef07497611998eee535699dc8e0ef67b0f38994 [file] [log] [blame]
##############################################################################
# In this file we handle all env and customer's settings
##############################################################################
##############################################################################
# Setup build and dependencies information
##############################################################################
SET(CMAKE_PREFIX_PATH "$ENV{DEPENDENCY_INSTALL_PREFIX}/lib" ${CMAKE_PREFIX_PATH})
SET(CMAKE_PREFIX_PATH "$ENV{DEPENDENCY_INSTALL_PREFIX}/lib64" ${CMAKE_PREFIX_PATH})
SET(CMAKE_PREFIX_PATH "$ENV{DEPENDENCY_INSTALL_PREFIX}/include" ${CMAKE_PREFIX_PATH})
##############################################################################
# Setup build flags
##############################################################################
OPTION(ENABLE_COVERAGE "enable code coverage." OFF)
IF(NOT CMAKE_BUILD_TYPE)
SET(CMAKE_BUILD_TYPE Debug CACHE STRING "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." FORCE)
ENDIF(NOT CMAKE_BUILD_TYPE)
IF(ENABLE_COVERAGE STREQUAL ON)
INCLUDE(CodeCoverage)
ENDIF(ENABLE_COVERAGE STREQUAL ON)
IF(CMAKE_BUILD_TYPE MATCHES Debug)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O0")
ENDIF()
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -fno-omit-frame-pointer -fno-strict-aliasing")
IF(ENABLE_AVX STREQUAL ON)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mavx -mno-avx2")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DAVX_OPT")
ELSE()
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mno-avx -mno-avx2")
ENDIF()
#c++11 is needed to provide thread saft singleton implementation.
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wno-deprecated-register")
#-Rpass-missed=loop-vectorize -Wall -Wconversion
IF(CMAKE_COMPILER_IS_CLANG)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-limit-debug-info -stdlib=libc++ -DUSE_CLANG")
IF(OS_LINUX)
SET(CLANG_LDFLAGS "-lc++abi -lc++" ${CLANG_LDFLAGS})
ENDIF(OS_LINUX)
ENDIF(CMAKE_COMPILER_IS_CLANG)
TRY_COMPILE(INT64T_EQUAL_LONGLONG
${CMAKE_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/CMake/CMakeTestCompileInt64tType.cc
OUTPUT_VARIABLE OUTPUT)
IF(INT64T_EQUAL_LONGLONG)
MESSAGE(STATUS "Checking whether int64_t is typedef to long long -- yes")
ELSE(INT64T_EQUAL_LONGLONG)
MESSAGE(STATUS "Checking whether int64_t is typedef to long long -- no")
ENDIF(INT64T_EQUAL_LONGLONG)