mirror of
https://gitlab.freedesktop.org/uchardet/uchardet.git
synced 2025-12-06 16:56:40 +08:00
Merge pull request #30 from Coacher/use-gnuinstalldirs-cmake-module
Use GNUInstallDirs cmake module, fix library filename bug, minor cleanups.
This commit is contained in:
commit
74b4f6a62b
@ -1,5 +1,5 @@
|
|||||||
######## Project settings
|
######## Project settings
|
||||||
cmake_minimum_required(VERSION 2.8)
|
cmake_minimum_required(VERSION 2.8.5)
|
||||||
set (PACKAGE_NAME uchardet)
|
set (PACKAGE_NAME uchardet)
|
||||||
project (${PACKAGE_NAME} CXX C)
|
project (${PACKAGE_NAME} CXX C)
|
||||||
enable_testing()
|
enable_testing()
|
||||||
@ -12,7 +12,7 @@ set (UCHARDET_VERSION_MINOR 0)
|
|||||||
set (UCHARDET_VERSION_REVISION 5)
|
set (UCHARDET_VERSION_REVISION 5)
|
||||||
|
|
||||||
if (CMAKE_BUILD_TYPE MATCHES Debug)
|
if (CMAKE_BUILD_TYPE MATCHES Debug)
|
||||||
set (version_suffix .Debug)
|
set (version_suffix .debug)
|
||||||
endif (CMAKE_BUILD_TYPE MATCHES Debug)
|
endif (CMAKE_BUILD_TYPE MATCHES Debug)
|
||||||
|
|
||||||
set (
|
set (
|
||||||
@ -29,43 +29,16 @@ set (
|
|||||||
|
|
||||||
######## Directory
|
######## Directory
|
||||||
|
|
||||||
set (DIR_PREFIX ${CMAKE_INSTALL_PREFIX})
|
include(GNUInstallDirs)
|
||||||
set (DIR_LIBRARY ${DIR_PREFIX}/${CMAKE_SHARED_LIBRARY_PREFIX})
|
|
||||||
set (DIR_LIBRARY_STATIC ${DIR_PREFIX}/${CMAKE_STATIC_LIBRARY_PREFIX})
|
|
||||||
set (DIR_INCLUDE ${DIR_PREFIX}/include)
|
|
||||||
set (DIR_SHARE ${DIR_PREFIX}/share)
|
|
||||||
set (DIR_ETC ${DIR_PREFIX}/etc)
|
|
||||||
|
|
||||||
set (CMAKE_INSTALL_BINDIR bin CACHE STRING "Install location of executables")
|
|
||||||
|
|
||||||
if (DEFINED CMAKE_INSTALL_LIBDIR)
|
|
||||||
set (DIR_LIBRARY ${CMAKE_INSTALL_LIBDIR})
|
|
||||||
set (DIR_LIBRARY_STATIC ${CMAKE_INSTALL_LIBDIR})
|
|
||||||
endif (DEFINED CMAKE_INSTALL_LIBDIR)
|
|
||||||
|
|
||||||
if (DEFINED SHARE_INSTALL_PREFIX)
|
|
||||||
set (DIR_SHARE ${SHARE_INSTALL_PREFIX})
|
|
||||||
endif (DEFINED SHARE_INSTALL_PREFIX)
|
|
||||||
|
|
||||||
if (DEFINED INCLUDE_INSTALL_DIR)
|
|
||||||
set (DIR_INCLUDE ${INCLUDE_INSTALL_DIR})
|
|
||||||
endif (DEFINED INCLUDE_INSTALL_DIR)
|
|
||||||
|
|
||||||
if (DEFINED SYSCONF_INSTALL_DIR)
|
|
||||||
set (DIR_ETC ${SYSCONF_INSTALL_DIR})
|
|
||||||
endif (DEFINED SYSCONF_INSTALL_DIR)
|
|
||||||
|
|
||||||
set (DIR_SHARE_UCHARDET ${DIR_SHARE}/${PACKAGE_NAME})
|
|
||||||
set (DIR_SHARE_LOCALE ${DIR_SHARE}/locale)
|
|
||||||
|
|
||||||
######## Configuration
|
######## Configuration
|
||||||
|
|
||||||
option(BUILD_SHARED_LIBS "Build shared library and link executable against it"
|
option(BUILD_BINARY "Build executable" ON)
|
||||||
ON)
|
option(BUILD_SHARED_LIBS "Build shared library and link executable to it" ON)
|
||||||
|
|
||||||
if (BUILD_SHARED_LIBS)
|
if (BUILD_SHARED_LIBS)
|
||||||
option(BUILD_STATIC "Build static library" ON)
|
option(BUILD_STATIC "Build static library" ON)
|
||||||
endif (BUILD_SHARED_LIBS)
|
endif (BUILD_SHARED_LIBS)
|
||||||
option(BUILD_BINARY "Build executable" ON)
|
|
||||||
|
|
||||||
configure_file(
|
configure_file(
|
||||||
uchardet.pc.in
|
uchardet.pc.in
|
||||||
@ -77,7 +50,7 @@ install(
|
|||||||
FILES
|
FILES
|
||||||
${CMAKE_BINARY_DIR}/uchardet.pc
|
${CMAKE_BINARY_DIR}/uchardet.pc
|
||||||
DESTINATION
|
DESTINATION
|
||||||
${DIR_LIBRARY}/pkgconfig
|
${CMAKE_INSTALL_LIBDIR}/pkgconfig
|
||||||
)
|
)
|
||||||
|
|
||||||
######## Subdirectories
|
######## Subdirectories
|
||||||
|
|||||||
@ -2,5 +2,5 @@ install(
|
|||||||
FILES
|
FILES
|
||||||
uchardet.1
|
uchardet.1
|
||||||
DESTINATION
|
DESTINATION
|
||||||
${DIR_SHARE}/man/man1
|
${CMAKE_INSTALL_MANDIR}/man1
|
||||||
)
|
)
|
||||||
|
|||||||
@ -41,56 +41,18 @@ set(
|
|||||||
uchardet.cpp
|
uchardet.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
set (UCHARDET_TARGET libuchardet)
|
set (UCHARDET_LIBRARY libuchardet)
|
||||||
|
set (UCHARDET_LIBRARY libuchardet PARENT_SCOPE)
|
||||||
|
|
||||||
if (BUILD_STATIC AND BUILD_SHARED_LIBS)
|
if (BUILD_STATIC AND BUILD_SHARED_LIBS)
|
||||||
set (UCHARDET_STATIC_TARGET libuchardet_static)
|
set (UCHARDET_STATIC_LIBRARY libuchardet_static)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
add_definitions(
|
add_definitions(
|
||||||
-DPKGDATADIR="${DIR_SHARE_UCHARDET}"
|
|
||||||
-DLOCALEDIR="${DIR_SHARE_LOCALE}"
|
|
||||||
-DVERSION="${UCHARDET_VERSION}"
|
-DVERSION="${UCHARDET_VERSION}"
|
||||||
-DPACKAGE_NAME="${PACKAGE_NAME}"
|
|
||||||
-Wall
|
-Wall
|
||||||
)
|
)
|
||||||
|
|
||||||
add_library(
|
|
||||||
${UCHARDET_TARGET}
|
|
||||||
${UCHARDET_SOURCES}
|
|
||||||
)
|
|
||||||
|
|
||||||
if (UCHARDET_STATIC_TARGET)
|
|
||||||
add_library(
|
|
||||||
${UCHARDET_STATIC_TARGET}
|
|
||||||
STATIC
|
|
||||||
${UCHARDET_SOURCES}
|
|
||||||
)
|
|
||||||
endif (UCHARDET_STATIC_TARGET)
|
|
||||||
|
|
||||||
set_target_properties(
|
|
||||||
${UCHARDET_TARGET}
|
|
||||||
PROPERTIES
|
|
||||||
LINKER_LANGUAGE
|
|
||||||
CXX
|
|
||||||
OUTPUT_NAME
|
|
||||||
uchardet
|
|
||||||
VERSION
|
|
||||||
0.0.0
|
|
||||||
SOVERSION
|
|
||||||
0
|
|
||||||
)
|
|
||||||
|
|
||||||
if (UCHARDET_STATIC_TARGET)
|
|
||||||
set_target_properties(
|
|
||||||
${UCHARDET_STATIC_TARGET}
|
|
||||||
PROPERTIES
|
|
||||||
LINKER_LANGUAGE
|
|
||||||
CXX
|
|
||||||
OUTPUT_NAME
|
|
||||||
uchardet
|
|
||||||
)
|
|
||||||
endif (UCHARDET_STATIC_TARGET)
|
|
||||||
|
|
||||||
if (CMAKE_BUILD_TYPE MATCHES Debug)
|
if (CMAKE_BUILD_TYPE MATCHES Debug)
|
||||||
add_definitions(
|
add_definitions(
|
||||||
-O0
|
-O0
|
||||||
@ -98,40 +60,77 @@ if (CMAKE_BUILD_TYPE MATCHES Debug)
|
|||||||
)
|
)
|
||||||
endif (CMAKE_BUILD_TYPE MATCHES Debug)
|
endif (CMAKE_BUILD_TYPE MATCHES Debug)
|
||||||
|
|
||||||
|
add_library(
|
||||||
|
${UCHARDET_LIBRARY}
|
||||||
|
${UCHARDET_SOURCES}
|
||||||
|
)
|
||||||
|
|
||||||
|
if (UCHARDET_STATIC_LIBRARY)
|
||||||
|
add_library(
|
||||||
|
${UCHARDET_STATIC_LIBRARY}
|
||||||
|
STATIC
|
||||||
|
${UCHARDET_SOURCES}
|
||||||
|
)
|
||||||
|
endif (UCHARDET_STATIC_LIBRARY)
|
||||||
|
|
||||||
|
set_target_properties(
|
||||||
|
${UCHARDET_LIBRARY}
|
||||||
|
PROPERTIES
|
||||||
|
LINKER_LANGUAGE
|
||||||
|
CXX
|
||||||
|
OUTPUT_NAME
|
||||||
|
${PACKAGE_NAME}
|
||||||
|
VERSION
|
||||||
|
${UCHARDET_VERSION}
|
||||||
|
SOVERSION
|
||||||
|
${UCHARDET_VERSION_MAJOR}
|
||||||
|
)
|
||||||
|
|
||||||
|
if (UCHARDET_STATIC_LIBRARY)
|
||||||
|
set_target_properties(
|
||||||
|
${UCHARDET_STATIC_LIBRARY}
|
||||||
|
PROPERTIES
|
||||||
|
LINKER_LANGUAGE
|
||||||
|
CXX
|
||||||
|
OUTPUT_NAME
|
||||||
|
${PACKAGE_NAME}
|
||||||
|
)
|
||||||
|
endif (UCHARDET_STATIC_LIBRARY)
|
||||||
|
|
||||||
if (NOT WIN32)
|
if (NOT WIN32)
|
||||||
install(
|
install(
|
||||||
TARGETS
|
TARGETS
|
||||||
${UCHARDET_TARGET}
|
${UCHARDET_LIBRARY}
|
||||||
LIBRARY DESTINATION
|
LIBRARY DESTINATION
|
||||||
${DIR_LIBRARY}
|
${CMAKE_INSTALL_LIBDIR}
|
||||||
ARCHIVE DESTINATION
|
ARCHIVE DESTINATION
|
||||||
${DIR_LIBRARY}
|
${CMAKE_INSTALL_LIBDIR}
|
||||||
)
|
)
|
||||||
else (NOT WIN32)
|
else (NOT WIN32)
|
||||||
install(
|
install(
|
||||||
TARGETS
|
TARGETS
|
||||||
${UCHARDET_TARGET}
|
${UCHARDET_LIBRARY}
|
||||||
RUNTIME DESTINATION
|
RUNTIME DESTINATION
|
||||||
${CMAKE_INSTALL_BINDIR}
|
${CMAKE_INSTALL_BINDIR}
|
||||||
ARCHIVE DESTINATION
|
ARCHIVE DESTINATION
|
||||||
${DIR_LIBRARY}
|
${CMAKE_INSTALL_LIBDIR}
|
||||||
)
|
)
|
||||||
endif (NOT WIN32)
|
endif (NOT WIN32)
|
||||||
|
|
||||||
if (UCHARDET_STATIC_TARGET)
|
if (UCHARDET_STATIC_LIBRARY)
|
||||||
install(
|
install(
|
||||||
TARGETS
|
TARGETS
|
||||||
${UCHARDET_STATIC_TARGET}
|
${UCHARDET_STATIC_LIBRARY}
|
||||||
ARCHIVE DESTINATION
|
ARCHIVE DESTINATION
|
||||||
${DIR_LIBRARY_STATIC}
|
${CMAKE_INSTALL_LIBDIR}
|
||||||
)
|
)
|
||||||
endif (UCHARDET_STATIC_TARGET)
|
endif (UCHARDET_STATIC_LIBRARY)
|
||||||
|
|
||||||
install(
|
install(
|
||||||
FILES
|
FILES
|
||||||
${UCHARDET_HEADERS}
|
${UCHARDET_HEADERS}
|
||||||
DESTINATION
|
DESTINATION
|
||||||
${DIR_INCLUDE}/uchardet
|
${CMAKE_INSTALL_INCLUDEDIR}/${PACKAGE_NAME}
|
||||||
)
|
)
|
||||||
|
|
||||||
include(symbols.cmake)
|
include(symbols.cmake)
|
||||||
|
|||||||
@ -11,7 +11,7 @@ set(
|
|||||||
set (LINK_FLAGS "")
|
set (LINK_FLAGS "")
|
||||||
|
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
# Create a symbols_list file for the darwin linker.
|
# Create a symbols_list file for the Darwin linker.
|
||||||
string(REPLACE ";" "\n_" _symbols "${UCHARDET_SYMBOLS}")
|
string(REPLACE ";" "\n_" _symbols "${UCHARDET_SYMBOLS}")
|
||||||
set(_symbols_list "${CMAKE_CURRENT_BINARY_DIR}/symbols.list")
|
set(_symbols_list "${CMAKE_CURRENT_BINARY_DIR}/symbols.list")
|
||||||
file(WRITE ${_symbols_list} "_${_symbols}\n")
|
file(WRITE ${_symbols_list} "_${_symbols}\n")
|
||||||
@ -19,7 +19,7 @@ if (APPLE)
|
|||||||
set(LINK_FLAGS
|
set(LINK_FLAGS
|
||||||
"${LINK_FLAGS} -Wl,-exported_symbols_list,'${_symbols_list}'")
|
"${LINK_FLAGS} -Wl,-exported_symbols_list,'${_symbols_list}'")
|
||||||
elseif (CMAKE_CXX_COMPILER_ID STREQUAL GNU)
|
elseif (CMAKE_CXX_COMPILER_ID STREQUAL GNU)
|
||||||
# Create a version script for GNU ld.
|
# Create a version script for the GNU ld.
|
||||||
set(_symbols "{ global: ${UCHARDET_SYMBOLS}; local: *; };")
|
set(_symbols "{ global: ${UCHARDET_SYMBOLS}; local: *; };")
|
||||||
set(_version_script "${CMAKE_CURRENT_BINARY_DIR}/version.script")
|
set(_version_script "${CMAKE_CURRENT_BINARY_DIR}/version.script")
|
||||||
file(WRITE ${_version_script} "${_symbols}\n")
|
file(WRITE ${_version_script} "${_symbols}\n")
|
||||||
@ -28,7 +28,7 @@ elseif (CMAKE_CXX_COMPILER_ID STREQUAL GNU)
|
|||||||
endif (APPLE)
|
endif (APPLE)
|
||||||
|
|
||||||
set_target_properties(
|
set_target_properties(
|
||||||
${UCHARDET_TARGET}
|
${UCHARDET_LIBRARY}
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
LINK_FLAGS
|
LINK_FLAGS
|
||||||
"${LINK_FLAGS}"
|
"${LINK_FLAGS}"
|
||||||
|
|||||||
@ -3,19 +3,21 @@ set(
|
|||||||
uchardet.cpp
|
uchardet.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
|
set(UCHARDET_BINARY uchardet)
|
||||||
|
|
||||||
add_executable(
|
add_executable(
|
||||||
uchardet
|
${UCHARDET_BINARY}
|
||||||
${UCHARDET_SOURCES}
|
${UCHARDET_SOURCES}
|
||||||
)
|
)
|
||||||
|
|
||||||
target_link_libraries(
|
target_link_libraries(
|
||||||
uchardet
|
${UCHARDET_BINARY}
|
||||||
${UCHARDET_TARGET}
|
${UCHARDET_LIBRARY}
|
||||||
)
|
)
|
||||||
|
|
||||||
install(
|
install(
|
||||||
TARGETS
|
TARGETS
|
||||||
uchardet
|
${UCHARDET_BINARY}
|
||||||
RUNTIME DESTINATION
|
RUNTIME DESTINATION
|
||||||
${CMAKE_INSTALL_BINDIR}
|
${CMAKE_INSTALL_BINDIR}
|
||||||
)
|
)
|
||||||
|
|||||||
@ -10,7 +10,7 @@ add_executable(
|
|||||||
|
|
||||||
target_link_libraries(
|
target_link_libraries(
|
||||||
uchardet-tests
|
uchardet-tests
|
||||||
libuchardet
|
${UCHARDET_LIBRARY}
|
||||||
)
|
)
|
||||||
|
|
||||||
set_target_properties(
|
set_target_properties(
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user