From cb8b5e6d4b556a74463fedaeb53a902c36bbe6b4 Mon Sep 17 00:00:00 2001 From: eyck Date: Sun, 31 Dec 2017 10:56:09 +0000 Subject: [PATCH] Fixed conen intergation in CMake and added '-march=native' switch --- CMakeLists.txt | 6 ++++++ cmake/Conan.cmake | 18 ++++++++++-------- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d110f03..9fe055f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,6 +24,12 @@ set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) +include(CheckCXXCompilerFlag) +CHECK_CXX_COMPILER_FLAG("-march=native" COMPILER_SUPPORTS_MARCH_NATIVE) +if(COMPILER_SUPPORTS_MARCH_NATIVE) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native") +endif() + if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") set(warnings "-Wall -Wextra -Werror") set(CMAKE_CXX_FLAG_RELEASE "-O3 -DNDEBUG -D_GLIBCXX_USE_CXX11_ABI=0") diff --git a/cmake/Conan.cmake b/cmake/Conan.cmake index bd0fda7..cfbf2d4 100644 --- a/cmake/Conan.cmake +++ b/cmake/Conan.cmake @@ -25,19 +25,21 @@ macro(setup_conan) set(conanfile_cmake ${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) set(compiler_libcxx libstdc++11) - if(${CMAKE_BUILD_TYPE} STREQUAL RelWithDebInfo) - execute_process(COMMAND ${conan} install --build=missing - -s build_type=Release -s compiler.libcxx=${compiler_libcxx} - ${CMAKE_SOURCE_DIR} RESULT_VARIABLE return_code) + if("${CMAKE_BUILD_TYPE}" STREQUAL "") + set(CONAN_BUILD_TYPE Debug) + elseif("${CMAKE_BUILD_TYPE}" STREQUAL "RelWithDebInfo") + set(CONAN_BUILD_TYPE Release) else() - execute_process(COMMAND ${conan} install --build=missing - -s build_type=${CMAKE_BUILD_TYPE} -s compiler.libcxx=${compiler_libcxx} - ${CMAKE_SOURCE_DIR} RESULT_VARIABLE return_code) + set(CONAN_BUILD_TYPE ${CMAKE_BUILD_TYPE}) endif() + + execute_process(COMMAND ${conan} install --build=missing + -s build_type=${CONAN_BUILD_TYPE} -s compiler.libcxx=${compiler_libcxx} + ${CMAKE_SOURCE_DIR} RESULT_VARIABLE return_code) if(NOT ${return_code} EQUAL 0) message(FATAL_ERROR "conan install command failed.") endif() include(${conanfile_cmake}) conan_basic_setup(TARGETS) -endmacro() \ No newline at end of file +endmacro()