You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
2.1 KiB
54 lines
2.1 KiB
7 years ago
|
Add configuration option to enable SSE2.
|
||
|
Add -ffloat-store flag on x86 without SSE2.
|
||
|
|
||
|
Gentoo bug: https://bugs.gentoo.org/631852
|
||
|
Upstream bug: https://bugs.freedesktop.org/show_bug.cgi?id=101033
|
||
|
|
||
|
This patch is an aggregation of the following upstream commits:
|
||
|
5996bbd995aed5045cc22e4d1fab08c989377983
|
||
|
77bf71ea365a19ac55c59cf10399b566a02d82c1
|
||
|
939482ab2b5a6585bdd2e5251f3f2f113d64686f
|
||
|
cd617d181de03a7a13c2020e6c73cd14585e24b6
|
||
|
|
||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||
|
index 84270e3..e212b4a 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()
|
||
|
@@ -35,13 +36,27 @@ include(GNUInstallDirs)
|
||
|
|
||
|
######## Configuration
|
||
|
|
||
|
-option(BUILD_BINARY "Build executable" ON)
|
||
|
-option(BUILD_SHARED_LIBS "Build shared library and link executable to it" ON)
|
||
|
+option(BUILD_BINARY "Build the CLI tool." ON)
|
||
|
+option(BUILD_SHARED_LIBS "Build shared library and link executable to it." ON)
|
||
|
+option(CHECK_SSE2 "Check and enable SSE2 extensions if supported. Disabling SSE on platforms which support it may decrease performances." ON)
|
||
|
|
||
|
if (BUILD_SHARED_LIBS)
|
||
|
option(BUILD_STATIC "Build static library" ON)
|
||
|
endif (BUILD_SHARED_LIBS)
|
||
|
|
||
|
+string(TOLOWER ${CMAKE_SYSTEM_PROCESSOR} TARGET_ARCHITECTURE)
|
||
|
+if (TARGET_ARCHITECTURE MATCHES ".*(x86)|(amd).*")
|
||
|
+ CHECK_C_COMPILER_FLAG(-msse2 SUPPORTS_CFLAG_SSE2)
|
||
|
+ CHECK_C_COMPILER_FLAG(-mfpmath=sse SUPPORTS_CFLAG_SSE_MATH)
|
||
|
+ if (CHECK_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 (CHECK_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 (CHECK_SSE2 AND SUPPORTS_CFLAG_SSE2 AND SUPPORTS_CFLAG_SSE_MATH)
|
||
|
+endif (TARGET_ARCHITECTURE MATCHES ".*(x86)|(amd).*")
|
||
|
+
|
||
|
configure_file(
|
||
|
uchardet.pc.in
|
||
|
uchardet.pc
|