diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/tesseract | |
Diffstat (limited to 'vcpkg/ports/tesseract')
| -rw-r--r-- | vcpkg/ports/tesseract/fix-link-include-path.patch | 14 | ||||
| -rw-r--r-- | vcpkg/ports/tesseract/fix_static_link_icu.patch | 13 | ||||
| -rw-r--r-- | vcpkg/ports/tesseract/portfile.cmake | 108 | ||||
| -rw-r--r-- | vcpkg/ports/tesseract/target-curl.diff | 13 | ||||
| -rw-r--r-- | vcpkg/ports/tesseract/vcpkg.json | 43 |
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" + ] + } + } +} |