aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/tesseract
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/tesseract
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/tesseract')
-rw-r--r--vcpkg/ports/tesseract/fix-link-include-path.patch14
-rw-r--r--vcpkg/ports/tesseract/fix_static_link_icu.patch13
-rw-r--r--vcpkg/ports/tesseract/portfile.cmake108
-rw-r--r--vcpkg/ports/tesseract/target-curl.diff13
-rw-r--r--vcpkg/ports/tesseract/vcpkg.json43
5 files changed, 191 insertions, 0 deletions
diff --git a/vcpkg/ports/tesseract/fix-link-include-path.patch b/vcpkg/ports/tesseract/fix-link-include-path.patch
new file mode 100644
index 0000000..1415494
--- /dev/null
+++ b/vcpkg/ports/tesseract/fix-link-include-path.patch
@@ -0,0 +1,14 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 68da6c5..781fb97 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -820,7 +820,8 @@ target_include_directories(
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/textord>
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/viewer>
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/wordrec>
+- $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/training>)
++ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/training>
++ $<INSTALL_INTERFACE:include>)
+ if(BUILD_SHARED_LIBS)
+ target_compile_definitions(
+ libtesseract
diff --git a/vcpkg/ports/tesseract/fix_static_link_icu.patch b/vcpkg/ports/tesseract/fix_static_link_icu.patch
new file mode 100644
index 0000000..8e7c101
--- /dev/null
+++ b/vcpkg/ports/tesseract/fix_static_link_icu.patch
@@ -0,0 +1,13 @@
+diff --git a/src/training/CMakeLists.txt b/src/training/CMakeLists.txt
+index 429ed04..9878fa5 100644
+--- a/src/training/CMakeLists.txt
++++ b/src/training/CMakeLists.txt
+@@ -72,7 +72,7 @@ if(NOT SW_BUILD)
+ if(PKG_CONFIG_FOUND)
+ pkg_check_modules(ICU REQUIRED IMPORTED_TARGET icu-uc icu-i18n)
+ else()
+- find_package(ICU 52.1 COMPONENTS uc i18n)
++ find_package(ICU 72.1 COMPONENTS uc i18n dt)
+ endif()
+ if(ICU_FOUND)
+ message(">> ICU_FOUND ${ICU_FOUND} ${ICU_VERSION} ${ICU_LIBRARIES} ${ICU_INCLUDE_DIRS}")
diff --git a/vcpkg/ports/tesseract/portfile.cmake b/vcpkg/ports/tesseract/portfile.cmake
new file mode 100644
index 0000000..7335a9e
--- /dev/null
+++ b/vcpkg/ports/tesseract/portfile.cmake
@@ -0,0 +1,108 @@
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO tesseract-ocr/tesseract
+ REF "${VERSION}"
+ SHA512 37c9cc2ac1bcd26b783f76a0cd8ef266d2dd54746c73d983202d150bf885b50fd32d9f1745d1df65f4cddccd9fc24b1b871e8dea8dcba3454a27363297423cdd
+ PATCHES
+ fix_static_link_icu.patch
+ fix-link-include-path.patch
+ target-curl.diff
+)
+
+vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ FEATURES
+ training-tools BUILD_TRAINING_TOOLS
+)
+
+vcpkg_find_acquire_program(PKGCONFIG)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ ${FEATURE_OPTIONS}
+ -DUSE_SYSTEM_ICU=True
+ -DCMAKE_REQUIRE_FIND_PACKAGE_LibArchive=ON
+ -DCMAKE_REQUIRE_FIND_PACKAGE_CURL=ON
+ -DCMAKE_REQUIRE_FIND_PACKAGE_Leptonica=ON
+ -DCMAKE_DISABLE_FIND_PACKAGE_OpenCL=ON
+ -DLeptonica_DIR=YES
+ -DSW_BUILD=OFF
+ -DLEPT_TIFF_RESULT=ON
+ "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}"
+ MAYBE_UNUSED_VARIABLES
+ CMAKE_DISABLE_FIND_PACKAGE_OpenCL
+)
+
+vcpkg_cmake_install()
+vcpkg_copy_pdbs()
+
+vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/tesseract)
+
+vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/tesseract/TesseractConfig.cmake"
+ "find_dependency(Leptonica)"
+[[
+find_dependency(CURL)
+find_dependency(Leptonica)
+find_dependency(LibArchive)
+if(ANDROID)
+ find_dependency(CpuFeaturesNdkCompat CONFIG)
+endif()
+]]
+)
+
+vcpkg_copy_tools(TOOL_NAMES tesseract AUTO_CLEAN)
+vcpkg_fixup_pkgconfig()
+
+if("training-tools" IN_LIST FEATURES)
+ list(APPEND TRAINING_TOOLS
+ ambiguous_words classifier_tester combine_tessdata
+ cntraining dawg2wordlist mftraining shapeclustering
+ wordlist2dawg combine_lang_model lstmeval lstmtraining text2image
+ set_unicharset_properties unicharset_extractor merge_unicharsets
+ )
+ vcpkg_copy_tools(TOOL_NAMES ${TRAINING_TOOLS} AUTO_CLEAN)
+endif()
+
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
+
+# Install:
+file(GLOB API_HEADER_FILES LIST_DIRECTORIES false "${SOURCE_PATH}/src/api/*.h")
+file(INSTALL ${API_HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/tesseract/api")
+
+file(GLOB ARCH_HEADER_FILES LIST_DIRECTORIES false "${SOURCE_PATH}/src/arch/*.h")
+file(INSTALL ${ARCH_HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/tesseract/arch")
+
+file(GLOB CCMAIN_HEADER_FILES LIST_DIRECTORIES false "${SOURCE_PATH}/src/ccmain/*.h")
+file(INSTALL ${CCMAIN_HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/tesseract/ccmain")
+
+file(GLOB CCSTRUCT_HEADER_FILES LIST_DIRECTORIES false "${SOURCE_PATH}/src/ccstruct/*.h")
+file(INSTALL ${CCSTRUCT_HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/tesseract/ccstruct")
+
+file(GLOB CCUTIL_HEADER_FILES LIST_DIRECTORIES false "${SOURCE_PATH}/src/ccutil/*.h")
+file(INSTALL ${CCUTIL_HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/tesseract/ccutil")
+
+file(GLOB CLASSIFY_HEADER_FILES LIST_DIRECTORIES false "${SOURCE_PATH}/src/classify/*.h")
+file(INSTALL ${CLASSIFY_HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/tesseract/classify")
+
+file(GLOB CUTIL_HEADER_FILES LIST_DIRECTORIES false "${SOURCE_PATH}/src/cutil/*.h")
+file(INSTALL ${CUTIL_HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/tesseract/cutil")
+
+file(GLOB DICT_HEADER_FILES LIST_DIRECTORIES false "${SOURCE_PATH}/src/dict/*.h")
+file(INSTALL ${DICT_HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/tesseract/dict")
+
+file(GLOB LSTM_HEADER_FILES LIST_DIRECTORIES false "${SOURCE_PATH}/src/lstm/*.h")
+file(INSTALL ${LSTM_HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/tesseract/lstm")
+
+file(GLOB TEXTORD_HEADER_FILES LIST_DIRECTORIES false "${SOURCE_PATH}/src/textord/*.h")
+file(INSTALL ${TEXTORD_HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/tesseract/textord")
+
+file(GLOB VIEWER_HEADER_FILES LIST_DIRECTORIES false "${SOURCE_PATH}/src/viewer/*.h")
+file(INSTALL ${VIEWER_HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/tesseract/viewer")
+
+file(GLOB WORDREC_HEADER_FILES LIST_DIRECTORIES false "${SOURCE_PATH}/src/wordrec/*.h")
+file(INSTALL ${WORDREC_HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/tesseract/wordrec")
+
+# Handle copyright
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
diff --git a/vcpkg/ports/tesseract/target-curl.diff b/vcpkg/ports/tesseract/target-curl.diff
new file mode 100644
index 0000000..5e9b265
--- /dev/null
+++ b/vcpkg/ports/tesseract/target-curl.diff
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index faf7ac1..5066996 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -818,7 +818,7 @@ if(LibArchive_FOUND)
+ target_link_libraries(libtesseract PUBLIC ${LibArchive_LIBRARIES})
+ endif(LibArchive_FOUND)
+ if(CURL_FOUND)
+- if(NOT CURL_LIBRARIES)
++ if(TARGET CURL::libcurl)
+ target_link_libraries(libtesseract PUBLIC CURL::libcurl)
+ else()
+ target_link_libraries(libtesseract PUBLIC ${CURL_LIBRARIES})
diff --git a/vcpkg/ports/tesseract/vcpkg.json b/vcpkg/ports/tesseract/vcpkg.json
new file mode 100644
index 0000000..7cea01a
--- /dev/null
+++ b/vcpkg/ports/tesseract/vcpkg.json
@@ -0,0 +1,43 @@
+{
+ "name": "tesseract",
+ "version": "5.5.1",
+ "port-version": 1,
+ "description": "An OCR Engine that was developed at HP Labs between 1985 and 1995... and now at Google.",
+ "homepage": "https://github.com/tesseract-ocr/tesseract",
+ "license": "Apache-2.0",
+ "supports": "!uwp",
+ "dependencies": [
+ {
+ "name": "cpu-features",
+ "platform": "android"
+ },
+ {
+ "name": "curl",
+ "default-features": false
+ },
+ "leptonica",
+ {
+ "name": "libarchive",
+ "default-features": false
+ },
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ],
+ "features": {
+ "training-tools": {
+ "description": "build training tools",
+ "dependencies": [
+ "cairo",
+ "fontconfig",
+ "icu",
+ "pango"
+ ]
+ }
+ }
+}