重新编译leptonica,以支持jpg,tiff和png

This commit is contained in:
luoliangyi 2023-04-14 19:50:22 +08:00
parent 68a947ca67
commit 2e0ec17a62
3 changed files with 153 additions and 0 deletions

153
third_party/leptonica/src/CMakeLists.txt vendored Normal file
View File

@ -0,0 +1,153 @@
#
# leptonica
#
###############################################################################
#
# cmake settings
#
###############################################################################
cmake_minimum_required(VERSION 2.8.11)
# In-source builds are disabled.
if (${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
message(FATAL_ERROR
"CMake generation is not possible within the source directory!"
"\n Remove the CMakeCache.txt file and try again from another folder, e.g.:"
"\n "
"\n rm CMakeCache.txt"
"\n mkdir build"
"\n cd build"
"\n cmake .."
)
endif()
set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};${CMAKE_SOURCE_DIR}/cmake")
set(EXECUTABLE_OUTPUT_PATH "${CMAKE_BINARY_DIR}/bin")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${EXECUTABLE_OUTPUT_PATH}")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -O2")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -O2")
# Use solution folders.
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER "CMake Targets")
###############################################################################
#
# project settings
#
###############################################################################
project(leptonica C CXX)
set(VERSION_MAJOR 1)
set(VERSION_MINOR 74)
set(VERSION_PATCH 4)
set(VERSION_PLAIN ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH})
option(BUILD_PROG "Build utility programs" OFF)
if(NOT EXISTS ${PROJECT_SOURCE_DIR}/.cppan)
find_package(GIF)
find_package(JPEG)
find_package(PNG)
find_package(TIFF)
find_package(ZLIB)
find_package(PkgConfig)
if (PKG_CONFIG_FOUND)
pkg_check_modules(WEBP libwebp)
pkg_check_modules(JP2K libopenjp2)
endif()
else()
add_subdirectory(.cppan)
add_definitions(
-DHAVE_LIBGIF=1
-DHAVE_LIBJPEG=1
-DHAVE_LIBPNG=1
-DHAVE_LIBTIFF=1
-DHAVE_LIBWEBP=1
-DHAVE_LIBZ=1
-DHAVE_LIBJP2K=1
-DLIBJP2K_HEADER="openjpeg.h"
)
endif()
###############################################################################
#
# compiler and linker
#
###############################################################################
set(LIBRARY_TYPE STATIC)
if (STATIC)
set(LIBRARY_TYPE)
endif()
if (WIN32)
if (MSVC)
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W1")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")
endif()
endif()
###############################################################################
#
# configure
#
###############################################################################
set(AUTOCONFIG_SRC ${CMAKE_BINARY_DIR}/config_auto.h.in)
set(AUTOCONFIG ${CMAKE_BINARY_DIR}/src/config_auto.h)
include(Configure)
configure_file(${AUTOCONFIG_SRC} ${AUTOCONFIG} @ONLY)
set(INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/include" "${CMAKE_INSTALL_PREFIX}/include/leptonica")
configure_file(
${CMAKE_SOURCE_DIR}/cmake/templates/LeptonicaConfig-version.cmake.in
${CMAKE_BINARY_DIR}/LeptonicaConfig-version.cmake @ONLY)
configure_file(
${CMAKE_SOURCE_DIR}/cmake/templates/LeptonicaConfig.cmake.in
${CMAKE_BINARY_DIR}/LeptonicaConfig.cmake @ONLY)
###############################################################################
#
# build
#
###############################################################################
add_definitions(-DHAVE_CONFIG_H)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src)
include_directories(${CMAKE_CURRENT_BINARY_DIR}/src)
include_directories(/home/luoliangyi/sane/code_app/third_party/libjpeg/kylin/amd64/include)
include_directories(/home/luoliangyi/sane/code_app/third_party/libpng/kylin/amd64/include/libpng16)
include_directories(/home/luoliangyi/sane/code_app/third_party/libtiff/kylin/amd64/include)
if (BUILD_PROG)
add_subdirectory(prog)
endif()
add_subdirectory(src)
get_target_property(leptonica_NAME leptonica NAME)
get_target_property(leptonica_VERSION leptonica VERSION)
get_target_property(leptonica_OUTPUT_NAME leptonica OUTPUT_NAME)
configure_file(lept.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/lept.pc @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/lept.pc DESTINATION lib/pkgconfig)
install(FILES
${CMAKE_BINARY_DIR}/LeptonicaConfig.cmake
${CMAKE_BINARY_DIR}/LeptonicaConfig-version.cmake
DESTINATION cmake)
###############################################################################