diff --git a/CMakeLists.txt b/CMakeLists.txt index 84270e3..61f5fdf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,6 @@ ######## Project settings cmake_minimum_required(VERSION 2.8.5) +include(CheckCCompilerFlag) set (PACKAGE_NAME uchardet) project (${PACKAGE_NAME} CXX C) enable_testing() @@ -37,11 +38,22 @@ include(GNUInstallDirs) option(BUILD_BINARY "Build executable" ON) option(BUILD_SHARED_LIBS "Build shared library and link executable to it" ON) +option(ENABLE_SSE2 "Enable SSE2 extensions if the compiler supports it" ON) if (BUILD_SHARED_LIBS) option(BUILD_STATIC "Build static library" ON) endif (BUILD_SHARED_LIBS) +CHECK_C_COMPILER_FLAG(-msse2 SUPPORTS_CFLAG_SSE2) +CHECK_C_COMPILER_FLAG(-mfpmath=sse SUPPORTS_CFLAG_SSE_MATH) +if (ENABLE_SSE2 AND SUPPORTS_CFLAG_SSE2 AND SUPPORTS_CFLAG_SSE_MATH) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse2 -mfpmath=sse") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse2 -mfpmath=sse") +else (ENABLE_SSE2 AND SUPPORTS_CFLAG_SSE2 AND SUPPORTS_CFLAG_SSE_MATH) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ffloat-store") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ffloat-store") +endif (ENABLE_SSE2 AND SUPPORTS_CFLAG_SSE2 AND SUPPORTS_CFLAG_SSE_MATH) + configure_file( uchardet.pc.in uchardet.pc