vcpkg/ports/leptonica/fix-build-and-pkgconfig.patch
2023-01-31 18:04:06 -08:00

148 lines
5.3 KiB
Diff

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3e09f53..61ce7b4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -70,19 +70,19 @@ if(NOT SW_BUILD)
endif()
find_package(JPEG)
if(JPEG_FOUND)
- set(libs_private "${libs_private} -ljpeg")
+ set(pkgs_private "${pkgs_private} libjpeg")
endif()
find_package(PNG)
if(PNG_FOUND)
- set(libs_private "${libs_private} -lpng")
+ set(pkgs_private "${pkgs_private} libpng")
endif()
find_package(TIFF)
if(TIFF_FOUND)
- set(libs_private "${libs_private} -ltiff")
+ set(pkgs_private "${pkgs_private} libtiff-4")
endif()
find_package(ZLIB)
if(ZLIB_FOUND)
- set(libs_private "${libs_private} -lz")
+ set(pkgs_private "${pkgs_private} zlib")
endif()
find_package(PkgConfig QUIET)
if(LIBWEBP_SUPPORT)
@@ -118,30 +118,16 @@ if(NOT SW_BUILD)
endif()
endif()
if(WEBP)
- set(libs_private "${libs_private} -lwebp")
+ set(pkgs_private "${pkgs_private} libwebp")
endif(WEBP)
if(WEBPMUX)
- set(libs_private "${libs_private} -lwebpmux")
+ set(pkgs_private "${pkgs_private} libwebpmux")
endif(WEBPMUX)
endif(LIBWEBP_SUPPORT)
if(OPENJPEG_SUPPORT)
- find_package(OpenJPEG)
- # we need absolute path in some cases on Windows
- find_library(JP2K_LIBRARY NAMES openjp2)
- if(OpenJPEG_FOUND AND JP2K_LIBRARY)
- set(JP2K_FOUND TRUE)
- set(JP2K_INCLUDE_DIRS ${OPENJPEG_INCLUDE_DIRS})
- get_filename_component(JP2K_HEADER_DIR "${JP2K_INCLUDE_DIRS}" NAME)
- else()
- if(PKG_CONFIG_FOUND)
- pkg_check_modules(JP2K libopenjp2>=2.0 QUIET)
- endif(PKG_CONFIG_FOUND)
- endif()
- if(JP2K_FOUND)
- set(JP2K_LIBRARIES ${JP2K_LIBRARY})
- set(libs_private "${libs_private} -lopenjp2")
- message(STATUS "FOUND OpenJPEG: ${JP2K_LIBRARIES}")
- endif()
+ find_package(PkgConfig REQUIRED)
+ pkg_check_modules(JP2K libopenjp2>=2.0 REQUIRED)
+ set(pkgs_private "${pkgs_private} libopenjp2")
endif(OPENJPEG_SUPPORT)
else() # SW_BUILD=ON
find_package(SW REQUIRED)
@@ -158,8 +144,7 @@ else() # SW_BUILD=ON
-DHAVE_LIBWEBP=1
-DHAVE_LIBWEBP_ANIM=1
-DHAVE_LIBZ=1
- -DHAVE_LIBJP2K=1
- -DLIBJP2K_HEADER="openjpeg.h")
+ -DHAVE_LIBJP2K=1)
endif()
set(libs_private "${libs_private} -lm")
@@ -299,7 +284,10 @@ get_target_property(leptonica_NAME leptonica NAME)
set(leptonica_VERSION ${VERSION_PLAIN})
get_target_property(leptonica_OUTPUT_NAME leptonica OUTPUT_NAME)
-configure_file(lept.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/lept.pc @ONLY)
+configure_file(lept.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/lept.pc.in @ONLY)
+# to resolve generator expression in OUTPUT_NAME
+file(GENERATE OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lept.pc INPUT ${CMAKE_CURRENT_BINARY_DIR}/lept.pc.in)
+
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/cmake/templates/LeptonicaConfig-version.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/LeptonicaConfig-version.cmake @ONLY)
diff --git a/cmake/Configure.cmake b/cmake/Configure.cmake
index b75cf19..4941187 100644
--- a/cmake/Configure.cmake
+++ b/cmake/Configure.cmake
@@ -96,7 +96,6 @@ endif()
if (JP2K_FOUND)
set(HAVE_LIBJP2K 1)
- set(LIBJP2K_HEADER <${JP2K_HEADER_DIR}/openjpeg.h>)
endif()
if (PNG_FOUND)
@@ -122,7 +121,6 @@ file(APPEND ${AUTOCONFIG_SRC} "
/* Define to 1 if you have libopenjp2. */
#cmakedefine HAVE_LIBJP2K 1
-#cmakedefine LIBJP2K_HEADER <${JP2K_HEADER_DIR}/openjpeg.h>
/* Define to 1 if you have jpeg. */
#cmakedefine HAVE_LIBJPEG 1
diff --git a/lept.pc.cmake b/lept.pc.cmake
index 9140d50..3e19307 100644
--- a/lept.pc.cmake
+++ b/lept.pc.cmake
@@ -6,6 +6,7 @@ includedir=${prefix}/include
Name: @leptonica_NAME@
Description: An open source C library for efficient image processing and image analysis operations
Version: @leptonica_VERSION@
+Requires.private: @pkgs_private@
Libs: -L${libdir} -l@leptonica_OUTPUT_NAME@
Libs.private: @libs_private@
Cflags: -I${includedir} -I${includedir}/leptonica
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index e2c2f15..3d7e852 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -19,13 +19,8 @@ string(REPLACE "-O3" "-O2" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
add_library (leptonica ${src} ${hdr})
set_target_properties (leptonica PROPERTIES VERSION 6.0.0)
set_target_properties (leptonica PROPERTIES SOVERSION 6)
-if (WIN32)
-set_target_properties (leptonica PROPERTIES OUTPUT_NAME leptonica-${VERSION_PLAIN})
-set_target_properties (leptonica PROPERTIES DEBUG_OUTPUT_NAME leptonica-${VERSION_PLAIN}d)
-else()
-set_target_properties (leptonica PROPERTIES OUTPUT_NAME leptonica)
-set_target_properties (leptonica PROPERTIES DEBUG_OUTPUT_NAME leptonica)
-endif()
+
+set_target_properties (leptonica PROPERTIES OUTPUT_NAME leptonica$<$<BOOL:${WIN32}>:-${VERSION_PLAIN}$<$<CONFIG:DEBUG>:d>>)
if (BUILD_SHARED_LIBS)
target_compile_definitions (leptonica PRIVATE -DLIBLEPT_EXPORTS)
@@ -41,7 +36,7 @@ if (JPEG_LIBRARIES)
endif()
if (JP2K_FOUND)
target_include_directories (leptonica PUBLIC ${JP2K_INCLUDE_DIRS})
- target_link_libraries (leptonica ${JP2K_LIBRARIES})
+ target_link_libraries (leptonica ${JP2K_LINK_LIBRARIES})
endif()
if (PNG_LIBRARIES)
target_include_directories (leptonica PUBLIC ${PNG_INCLUDE_DIRS})