mirror of
https://gitlab.freedesktop.org/uchardet/uchardet.git
synced 2025-12-06 16:56:40 +08:00
"ENABLE_SSE2" may be misleading since having it ON does not necessarily mean that SSE2 flags will be actually set. It only means that the support will be checked (then set only when supported). Also adding the warning about possible performance decrease.
75 lines
2.1 KiB
CMake
75 lines
2.1 KiB
CMake
######## Project settings
|
|
cmake_minimum_required(VERSION 2.8.5)
|
|
include(CheckCCompilerFlag)
|
|
set (PACKAGE_NAME uchardet)
|
|
project (${PACKAGE_NAME} CXX C)
|
|
enable_testing()
|
|
|
|
######## Package information
|
|
set (PACKAGE_URL https://www.freedesktop.org/wiki/Software/uchardet/)
|
|
set (PACKAGE_BUGREPORT https://bugs.freedesktop.org/enter_bug.cgi?product=uchardet)
|
|
set (UCHARDET_VERSION_MAJOR 0)
|
|
set (UCHARDET_VERSION_MINOR 0)
|
|
set (UCHARDET_VERSION_REVISION 6)
|
|
|
|
if (CMAKE_BUILD_TYPE MATCHES Debug)
|
|
set (version_suffix .debug)
|
|
endif (CMAKE_BUILD_TYPE MATCHES Debug)
|
|
|
|
set (
|
|
UCHARDET_VERSION
|
|
${UCHARDET_VERSION_MAJOR}.${UCHARDET_VERSION_MINOR}.${UCHARDET_VERSION_REVISION}${version_suffix}
|
|
)
|
|
set(CMAKE_CXX_STANDARD 11)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
######## Windows
|
|
|
|
#if (WIN32)
|
|
# set(CMAKE_SHARED_LIBRARY_PREFIX ${CMAKE_INSTALL_PREFIX})
|
|
# set(CMAKE_STATIC_LIBRARY_PREFIX ${CMAKE_INSTALL_PREFIX})
|
|
#endif (WIN32)
|
|
|
|
######## Directory
|
|
|
|
include(GNUInstallDirs)
|
|
|
|
######## Configuration
|
|
|
|
option(BUILD_BINARY "Build executable" 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)
|
|
|
|
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)
|
|
|
|
configure_file(
|
|
uchardet.pc.in
|
|
uchardet.pc
|
|
@ONLY
|
|
)
|
|
|
|
install(
|
|
FILES
|
|
${CMAKE_BINARY_DIR}/uchardet.pc
|
|
DESTINATION
|
|
${CMAKE_INSTALL_LIBDIR}/pkgconfig
|
|
)
|
|
|
|
######## Subdirectories
|
|
|
|
add_subdirectory(src)
|
|
add_subdirectory(doc)
|
|
add_subdirectory(test)
|