Feature/m1 and friends (#6)
* Initial run at m1 support * Fix task call
This commit is contained in:
parent
0b1403e40d
commit
cb4a695e38
|
@ -18,8 +18,8 @@ jobs:
|
|||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Install automake and pkg-config
|
||||
run: brew install automake pkg-config
|
||||
- name: Switch to Xcode 12
|
||||
run: sudo xcode-select --switch /Applications/Xcode_12_beta.app/Contents/Developer
|
||||
run: brew install automake pkg-config go-task/tap/go-task
|
||||
- name: Switch to Xcode 12.4
|
||||
run: sudo xcode-select --switch /Applications/Xcode_12.4.app/Contents/Developer
|
||||
- name: Build libtesseract
|
||||
run: sh build_all.sh
|
||||
run: task build-tesseract-xcframework
|
||||
|
|
|
@ -11,21 +11,28 @@ jobs:
|
|||
if: "!contains(github.event.head_commit.message, 'Do not upload')"
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Install automake and pkg-config
|
||||
run: brew install automake pkg-config
|
||||
- name: Switch to Xcode 12
|
||||
run: sudo xcode-select --switch /Applications/Xcode_12_beta.app/Contents/Developer
|
||||
- name: Build libtesseract
|
||||
run: sh build_all.sh
|
||||
- name: Install automake, pkg-config, and task
|
||||
run: brew install automake pkg-config go-task/tap/go-task
|
||||
- name: Switch to Xcode 12.4
|
||||
run: sudo xcode-select --switch /Applications/Xcode_12.4.app/Contents/Developer
|
||||
- name: Assign Tag Number to RELEASE_VERSION environment variable
|
||||
run: echo ::set-env name=RELEASE_VERSION::${GITHUB_REF#refs/*/*/}
|
||||
- name: Push artifact to Bintray
|
||||
run: go run publish.go -path ../build/libtesseract.xcframework -version $RELEASE_VERSION -bintray-key ${{ secrets.BINTRAY_KEY }}
|
||||
working-directory: publish
|
||||
- name: Build libtesseract
|
||||
run: task build-tesseract-xcframework-zip
|
||||
- name: Update Package.swift
|
||||
run: python3 update_package_swift.py --version $RELEASE_VERSION
|
||||
- name: Commit Package.swift update
|
||||
uses: EndBug/add-and-commit@v4
|
||||
with:
|
||||
add: 'Package.swift'
|
||||
message: 'Auto-updating Package.swift'
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Create draft release
|
||||
uses: ncipollo/release-action@v1
|
||||
with:
|
||||
artifact: "libtesseract-${{env.RELEASE_VERSION}}.xcframework.zip"
|
||||
draft: true
|
||||
allowUpdates: true
|
||||
tag: ${{env.RELEASE_VERSION}}
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
@ -93,4 +93,6 @@ leptonica-*
|
|||
tiff-*
|
||||
libpng-*
|
||||
4.*.zip
|
||||
tesseract-*
|
||||
tesseract-*
|
||||
.vscode
|
||||
.swiftpm
|
378
Makefile
378
Makefile
|
@ -1,378 +0,0 @@
|
|||
# Beware, this Makefile is a hot-mess hodgpodge that has accumulated cruft
|
||||
# and changes and additions over the last couple of years and
|
||||
# probably makes zero sense at first (and probably second and third) glance.
|
||||
# You will see references to "fat" libaries that haven't been renamed after
|
||||
# this was adapted to only build single architecture binaries.
|
||||
# Many dragons lie beyond this comment block
|
||||
PNG_VERSION := 1.6.36
|
||||
PNG_NAME := libpng-$(PNG_VERSION)
|
||||
JPEG_SRC_NAME := jpegsrc.v9c
|
||||
# folder name after the JPEG_SRC_NAME archive has been unpacked
|
||||
JPEG_DIR_NAME := jpeg-9c
|
||||
TIFF_NAME := tiff-4.0.10
|
||||
|
||||
TESSERACT_VERSION ?= 4.1.0
|
||||
TESSERACT_NAME := tesseract-$(TESSERACT_VERSION)
|
||||
LEPTONICA_VERSION ?= 1.79.0
|
||||
LEPTON_NAME := leptonica-$(LEPTONICA_VERSION)
|
||||
|
||||
|
||||
SRC_DIR = $(shell pwd)
|
||||
TESSERACT_SRC = $(SRC_DIR)/$(TESSERACT_NAME)
|
||||
LEPTON_SRC = $(SRC_DIR)/$(LEPTON_NAME)
|
||||
PNG_SRC = $(SRC_DIR)/$(PNG_NAME)
|
||||
JPEG_SRC = $(SRC_DIR)/$(JPEG_DIR_NAME)
|
||||
TIFF_SRC = $(SRC_DIR)/$(TIFF_NAME)
|
||||
|
||||
libtessfiles = libtesseract.a
|
||||
libleptfiles = liblept.a
|
||||
libpngfiles = libpng.a
|
||||
libjpegfiles = libjpeg.a
|
||||
libtifffiles = libtiff.a
|
||||
|
||||
libpngconfig = $(PNG_SRC)/configure
|
||||
libjpegconfig = $(JPEG_SRC)/configure
|
||||
libtiffconfig = $(TIFF_SRC)/configure
|
||||
libtessautogen = $(TESSERACT_SRC)/autogen.sh
|
||||
libtessconfig = $(TESSERACT_SRC)/configure
|
||||
libleptautogen = $(LEPTON_SRC)/autogen.sh
|
||||
libleptconfig = $(LEPTON_SRC)/configure
|
||||
|
||||
XCODE_DEVELOPER_PATH="`xcode-select -p`"
|
||||
XCODE_DEVELOPER_PATH_BIN=$(XCODE_DEVELOPER_PATH)/usr/bin
|
||||
TARGET_CXX="$(XCODE_DEVELOPER_PATH_BIN)/g++"
|
||||
TARGET_CXX_FOR_BUILD="$(XCODE_DEVELOPER_PATH_BIN)/g++"
|
||||
TARGET_CC="$(XCODE_DEVELOPER_PATH_BIN)/gcc"
|
||||
|
||||
# platform specific config
|
||||
ifeq ($(platform), ios)
|
||||
PLATFORM_PREFIX=ios
|
||||
sdk = $(shell xcrun --sdk iphoneos --show-sdk-path)
|
||||
platform_version_min = iphoneos-version-min="11.0"
|
||||
arch = arm64
|
||||
arch_name = arm-apple-darwin64
|
||||
host = $(arch_name)
|
||||
ARCHS ?= $(arch)
|
||||
else ifeq ($(platform), simulator)
|
||||
PLATFORM_PREFIX=simulator
|
||||
sdk = $(shell xcrun --sdk iphonesimulator --show-sdk-path)
|
||||
platform_version_min = ios-simulator-version-min="11.0"
|
||||
arch = x86_64
|
||||
arch_name = x86_64-apple-darwin
|
||||
host = $(arch_name)
|
||||
ARCHS ?= $(arch)
|
||||
else ifeq ($(platform), catalyst)
|
||||
PLATFORM_PREFIX=catalyst
|
||||
sdk = $(shell xcrun --sdk macosx --show-sdk-path)
|
||||
platform_version_min = iphoneos-version-min="13.0"
|
||||
arch = x86_64
|
||||
arch_name = x86_64-apple-ios13.0-macabi
|
||||
host = x86_64-apple-darwin
|
||||
ARCHS ?= $(arch)
|
||||
else ifeq ($(platform), macos)
|
||||
PLATFORM_PREFIX=macos
|
||||
sdk = $(shell xcrun --sdk macosx --show-sdk-path)
|
||||
platform_version_min = macosx-version-min="10.13"
|
||||
arch = x86_64
|
||||
arch_name = x86_64-apple-darwin
|
||||
host = $(arch_name)
|
||||
ARCHS ?= $(arch)
|
||||
endif
|
||||
|
||||
INCLUDE_DIR = $(shell pwd)/$(PLATFORM_PREFIX)/include
|
||||
LEPT_INC_DIR = $(INCLUDE_DIR)
|
||||
TESS_INC_DIR = $(INCLUDE_DIR)
|
||||
IMAGE_LIB_DIR = $(INCLUDE_DIR)
|
||||
IMAGE_INC_DIR = $(INCLUDE_DIR)
|
||||
LIB_FAT_DIR = $(INCLUDE_DIR)
|
||||
|
||||
libpngfolder = $(PNG_SRC)/$(arch)/
|
||||
libjpegfolder = $(JPEG_SRC)/$(arch)/
|
||||
libtifffolder = $(TIFF_SRC)/$(arch)/
|
||||
libleptfolder = $(LEPTON_SRC)/$(PLATFORM_PREFIX)/$(arch)/
|
||||
libtessfolder = $(TESSERACT_SRC)/$(PLATFORM_PREFIX)/$(arch)/
|
||||
|
||||
libpngmakefile = $(addprefix $(libpngfolder), Makefile)
|
||||
libjpegmakefile = $(addprefix $(libjpegfolder), Makefile)
|
||||
libtiffmakefile = $(addprefix $(libtifffolder), Makefile)
|
||||
libleptmakefile = $(addprefix $(libleptfolder), Makefile)
|
||||
libtessmakefile = $(addprefix $(libtessfolder), Makefile)
|
||||
|
||||
install_liblept = $(LIB_FAT_DIR)/$(libleptfiles)
|
||||
install_libtess = $(LIB_FAT_DIR)/$(libtessfiles)
|
||||
install_libpngfat = $(LIB_FAT_DIR)/$(libpngfiles)
|
||||
install_libjpegfat = $(LIB_FAT_DIR)/$(libjpegfiles)
|
||||
install_libtifffat = $(LIB_FAT_DIR)/$(libtifffiles)
|
||||
|
||||
libtess = $(addprefix $(libtessfolder)lib/, $(libtessfiles))
|
||||
liblept = $(addprefix $(libleptfolder)lib/, $(libleptfiles))
|
||||
libpng = $(addprefix $(libpngfolder)lib/, $(libpngfiles))
|
||||
libjpeg = $(addprefix $(libjpegfolder)lib/, $(libjpegfiles))
|
||||
libtiff = $(addprefix $(libtifffolder)lib/, $(libtifffiles))
|
||||
|
||||
dependant_libs = $(install_libpngfat) $(install_libjpegfat) $(install_libtifffat) $(install_liblept) $(install_libtess)
|
||||
|
||||
common_cflags = -arch $(arch) -pipe -no-cpp-precomp -isysroot $$SDKROOT -m$(platform_version_min) -O2
|
||||
|
||||
ifneq (,$(filter $(platform),ios simulator catalyst macos))
|
||||
.PHONY : all
|
||||
all : $(dependant_libs)
|
||||
else
|
||||
.PHONY : all
|
||||
all :
|
||||
$(MAKE) platform=ios
|
||||
$(MAKE) platform=simulator
|
||||
$(MAKE) platform=catalyst
|
||||
$(MAKE) platform=macos
|
||||
endif
|
||||
|
||||
#######################
|
||||
# Build libtiff and all of its dependencies
|
||||
#######################
|
||||
|
||||
$(install_libtifffat) : $(libtiff)
|
||||
mkdir -p $(@D)
|
||||
cp $(realpath $(addsuffix lib/$(@F), $(libtifffolder)) ) $@
|
||||
mkdir -p $(IMAGE_INC_DIR)
|
||||
cp -rvf $(firstword $(libtifffolder))include/*.h $(IMAGE_INC_DIR)
|
||||
|
||||
$(libtiff) : $(libtiffmakefile)
|
||||
cd $(abspath $(@D)/..) ; \
|
||||
$(MAKE) -sj8 && $(MAKE) install
|
||||
|
||||
$(TIFF_SRC)/%/Makefile : $(libtiffconfig)
|
||||
export SDKROOT="$(sdk)" ; \
|
||||
export CFLAGS="$(common_cflags) -fembed-bitcode" ; \
|
||||
export CPPFLAGS=$$CFLAGS ; \
|
||||
export CXXFLAGS="$$CFLAGS -Wno-deprecated-register"; \
|
||||
export LDFLAGS="-L$$SDKROOT/usr/lib/" ; \
|
||||
mkdir -p $(@D) ; \
|
||||
cd $(@D) ; \
|
||||
../configure CXX="$(TARGET_CXX) --target=$(arch_name)" CC="$(TARGET_CC) --target=$(arch_name)" --host=$(host) --enable-fast-install --enable-shared=no --prefix=`pwd` --without-x --with-jpeg-include-dir=$(abspath $(@D)/../../$(JPEG_DIR_NAME)/$(arch)/include) --with-jpeg-lib-dir=$(abspath $(@D)/../../$(JPEG_DIR_NAME)/$(arch)/lib)
|
||||
|
||||
|
||||
$(install_libpngfat) : $(libpng)
|
||||
mkdir -p $(@D)
|
||||
cp $(realpath $(addsuffix lib/$(@F), $(libpngfolder)) ) $@
|
||||
mkdir -p $(IMAGE_INC_DIR)/libpng
|
||||
cp -rvf $(firstword $(libpngfolder))include/*.h $(IMAGE_INC_DIR)
|
||||
|
||||
$(libpng) : $(libpngmakefile)
|
||||
cd $(abspath $(@D)/..) ; \
|
||||
$(MAKE) -sj8 && $(MAKE) install
|
||||
|
||||
$(PNG_SRC)/%/Makefile : $(libpngconfig)
|
||||
export SDKROOT="$(sdk)" ; \
|
||||
export CFLAGS="$(common_cflags) -fembed-bitcode" ; \
|
||||
export CPPFLAGS=$$CFLAGS ; \
|
||||
export CXXFLAGS="$$CFLAGS -Wno-deprecated-register"; \
|
||||
export LDFLAGS="-L$$SDKROOT/usr/lib/" ; \
|
||||
mkdir -p $(@D) ; \
|
||||
cd $(@D) ; \
|
||||
../configure CXX="$(TARGET_CXX) --target=$(arch_name)" CC="$(TARGET_CC) --target=$(arch_name)" --host=$(host) --enable-shared=no --prefix=`pwd`
|
||||
|
||||
$(install_libjpegfat) : $(libjpeg)
|
||||
mkdir -p $(@D)
|
||||
cp $(realpath $(addsuffix lib/$(@F), $(libjpegfolder)) ) $@
|
||||
mkdir -p $(IMAGE_INC_DIR)/libjpeg
|
||||
cp -rvf $(firstword $(libjpegfolder))include/*.h $(IMAGE_INC_DIR)
|
||||
|
||||
$(libjpeg) : $(libjpegmakefile)
|
||||
cd $(abspath $(@D)/..) ; \
|
||||
$(MAKE) -sj8 && $(MAKE) install
|
||||
|
||||
$(JPEG_SRC)/%/Makefile : $(libjpegconfig)
|
||||
export SDKROOT="$(sdk)" ; \
|
||||
export CFLAGS="$(common_cflags) -fembed-bitcode" ; \
|
||||
export CPPFLAGS=$$CFLAGS ; \
|
||||
export CXXFLAGS="$$CFLAGS -Wno-deprecated-register"; \
|
||||
export LDFLAGS="-L$$SDKROOT/usr/lib/" ; \
|
||||
mkdir -p $(@D) ; \
|
||||
cd $(@D) ; \
|
||||
../configure CXX="$(TARGET_CXX) --target=$(arch_name)" CC="$(TARGET_CC) --target=$(arch_name)" --host=$(host) --enable-shared=no --prefix=`pwd`
|
||||
|
||||
#######################
|
||||
# TESSERACT-OCR
|
||||
#######################
|
||||
$(install_libtess) : $(libtess)
|
||||
mkdir -p $(LIB_FAT_DIR)
|
||||
cp $(realpath $(addsuffix lib/$(@F), $(libtessfolder)) ) $@
|
||||
mkdir -p $(TESS_INC_DIR)
|
||||
cp -rvf $(firstword $(libtessfolder))include/tesseract/** $(TESS_INC_DIR)
|
||||
|
||||
$(libtess) : $(libtessmakefile)
|
||||
cd $(abspath $(@D)/..) && $(MAKE) -sj8 && $(MAKE) install
|
||||
|
||||
$(TESSERACT_SRC)/$(PLATFORM_PREFIX)/%/Makefile : $(libtessconfig) $(install_liblept)
|
||||
export LIBS="-lz -lpng -ljpeg -ltiff" ; \
|
||||
export SDKROOT="$(sdk)" ; \
|
||||
export CFLAGS="-I$(TESSERACT_SRC)/$(PLATFORM_PREFIX)/$(arch_name)/ $(common_cflags) -fembed-bitcode" ; \
|
||||
export CPPFLAGS=$$CFLAGS ; \
|
||||
export CXXFLAGS="-I$(TESSERACT_SRC)/$(PLATFORM_PREFIX)/$*/ $(common_cflags) -Wno-deprecated-register"; \
|
||||
export LDFLAGS="-L$$SDKROOT/usr/lib/ -L$(LIB_FAT_DIR) -L$(LEPTON_SRC)/$(PLATFORM_PREFIX)/$*/src/.libs" ; \
|
||||
export LIBLEPT_HEADERSDIR=$(TESSERACT_SRC)/$(PLATFORM_PREFIX)/$*/ ; \
|
||||
export PKG_CONFIG_PATH=$(LEPTON_SRC)/$(PLATFORM_PREFIX)/$*/ ; \
|
||||
export CXX="$(TARGET_CXX) --target=$(arch_name)" ; \
|
||||
export CXX_FOR_BUILD="$(TARGET_CXX_FOR_BUILD) --target=$(arch_name)" ; \
|
||||
export CC="$(TARGET_CC) --target=$(arch_name)" ; \
|
||||
mkdir -p $(@D) ; \
|
||||
cd $(@D) ; \
|
||||
ln -s $(LEPTON_SRC)/src/ leptonica ; \
|
||||
../../configure CXX="$(TARGET_CXX) --target=$(arch_name)" CC="$(TARGET_CC) --target=$(arch_name)" --host=$(host) --prefix=`pwd` --enable-shared=no --disable-graphics
|
||||
|
||||
$(libtessconfig) : $(libtessautogen)
|
||||
cd $(@D) && ./autogen.sh 2> /dev/null
|
||||
|
||||
#######################
|
||||
# LEPTONICA
|
||||
#######################
|
||||
$(install_liblept) : $(liblept)
|
||||
mkdir -p $(LIB_FAT_DIR)
|
||||
cp $(realpath $(addsuffix lib/$(@F), $(libleptfolder)) ) $@
|
||||
mkdir -p $(LEPT_INC_DIR)
|
||||
cp -rvf $(firstword $(libleptfolder))include/leptonica/** $(LEPT_INC_DIR)
|
||||
|
||||
$(liblept) : $(libleptmakefile)
|
||||
cd $(abspath $(@D)/..) ; \
|
||||
$(MAKE) -sj8 && $(MAKE) install
|
||||
|
||||
$(LEPTON_SRC)/$(PLATFORM_PREFIX)/%/Makefile : $(install_libtifffat) $(install_libpngfat) $(install_libjpegfat) $(libleptconfig)
|
||||
export LIBS="-lz -lpng -ljpeg -ltiff" ; \
|
||||
export SDKROOT="$(sdk)" ; \
|
||||
export CFLAGS="-I$(INCLUDE_DIR) $(common_cflags) -fembed-bitcode" ; \
|
||||
export CPPFLAGS=$$CFLAGS ; \
|
||||
export CXXFLAGS="-I$(INCLUDE_DIR) $(common_cflags) -Wno-deprecated-register"; \
|
||||
export LDFLAGS="-L$$SDKROOT/usr/lib/ -L$(LIB_FAT_DIR)" ; \
|
||||
export PKG_CONFIG_PATH=$(PNG_SRC)/$(arch)/:$(JPEG_SRC)/$(arch)/:$(TIFF_SRC)/$(arch)/ ; \
|
||||
export CXX="$(TARGET_CXX) --target=$(arch_name)" ; \
|
||||
export CXX_FOR_BUILD="$(TARGET_CXX_FOR_BUILD) --target=$(arch_name)" ; \
|
||||
export CC="$(TARGET_CC) --target=$(arch_name)" ; \
|
||||
mkdir -p $(@D) ; \
|
||||
cd $(@D) ; \
|
||||
../../configure CXX="$(TARGET_CXX) --target=$(arch_name)" CC="$(TARGET_CC) --target=$(arch_name)" --host=$(host) --prefix=`pwd` --enable-shared=no --disable-programs --with-zlib --with-libpng --with-jpeg --with-libtiff --without-giflib --without-libwebp --without-libwebpmux
|
||||
|
||||
$(libleptconfig) : $(libleptautogen)
|
||||
cd $(@D) && ./autogen.sh 2> /dev/null
|
||||
|
||||
#######################
|
||||
# Download dependencies
|
||||
#######################
|
||||
$(libtiffconfig) :
|
||||
curl http://download.osgeo.org/libtiff/$(TIFF_NAME).tar.gz | tar -xpf-
|
||||
|
||||
$(libjpegconfig) :
|
||||
curl http://www.ijg.org/files/$(JPEG_SRC_NAME).tar.gz | tar -xpf-
|
||||
|
||||
$(libpngconfig) :
|
||||
curl -L https://downloads.sourceforge.net/project/libpng/libpng16/$(PNG_VERSION)/$(PNG_NAME).tar.gz | tar -xpf-
|
||||
|
||||
$(libtessautogen) :
|
||||
curl -LO https://github.com/tesseract-ocr/tesseract/archive/$(TESSERACT_VERSION).zip && unzip -a $(TESSERACT_VERSION).zip
|
||||
|
||||
$(libleptautogen) :
|
||||
curl http://leptonica.org/source/$(LEPTON_NAME).tar.gz | tar -xpf- ; \
|
||||
|
||||
|
||||
#######################
|
||||
# Clean
|
||||
#######################
|
||||
.PHONY : clean
|
||||
clean : cleanpng cleantiff cleanjpeg cleanlept cleantess
|
||||
|
||||
.PHONY : distclean
|
||||
distclean : distcleanimages distcleanlept distcleantess
|
||||
|
||||
.PHONY : mostlyclean
|
||||
mostlyclean : mostlycleanpng mostlycleantiff mostlycleanjpeg mostlycleanlept mostlycleantess
|
||||
|
||||
.PHONY : cleanpng
|
||||
cleanpng :
|
||||
for folder in $(realpath $(libpngfolder) ); do \
|
||||
cd $$folder; \
|
||||
$(MAKE) clean; \
|
||||
done
|
||||
|
||||
.PHONY : cleanjpeg
|
||||
cleanjpeg :
|
||||
for folder in $(realpath $(libjpegfolder) ); do \
|
||||
cd $$folder; \
|
||||
$(MAKE) clean; \
|
||||
done
|
||||
|
||||
.PHONY : cleantiff
|
||||
cleantiff :
|
||||
for folder in $(realpath $(libtifffolder) ); do \
|
||||
cd $$folder; \
|
||||
$(MAKE) clean; \
|
||||
done
|
||||
|
||||
.PHONY : cleanlept
|
||||
cleanlept :
|
||||
for folder in $(realpath $(libleptfolder) ); do \
|
||||
cd $$folder; \
|
||||
$(MAKE) clean; \
|
||||
done ;
|
||||
|
||||
.PHONY : cleantess
|
||||
cleantess :
|
||||
for folder in $(realpath $(libtessfolder) ); do \
|
||||
cd $$folder; \
|
||||
$(MAKE) clean; \
|
||||
done ;
|
||||
|
||||
.PHONY : mostlycleanlept
|
||||
mostlycleanlept :
|
||||
for folder in $(realpath $(libleptfolder) ); do \
|
||||
cd $$folder; \
|
||||
$(MAKE) mostlyclean; \
|
||||
done ;
|
||||
|
||||
.PHONY : mostlycleantess
|
||||
mostlycleantess :
|
||||
for folder in $(realpath $(libtessfolder) ); do \
|
||||
cd $$folder; \
|
||||
$(MAKE) mostlyclean; \
|
||||
done ;
|
||||
|
||||
.PHONY : mostlycleanpng
|
||||
mostlycleanpng :
|
||||
for folder in $(realpath $(libpngfolder) ); do \
|
||||
cd $$folder; \
|
||||
$(MAKE) mostlyclean; \
|
||||
done
|
||||
|
||||
.PHONY : mostlycleantiff
|
||||
mostlycleantiff :
|
||||
for folder in $(realpath $(libtifffolder) ); do \
|
||||
cd $$folder; \
|
||||
$(MAKE) mostlyclean; \
|
||||
done
|
||||
|
||||
.PHONY : mostlycleanjpeg
|
||||
mostlycleanjpeg :
|
||||
for folder in $(realpath $(libjpegfolder) ); do \
|
||||
cd $$folder; \
|
||||
$(MAKE) mostlyclean; \
|
||||
done
|
||||
|
||||
.PHONY : distcleanimages
|
||||
distcleanimages :
|
||||
-rm -rf $(shell pwd)/*/include
|
||||
-rm -rf $(PNG_SRC)
|
||||
-rm -rf $(JPEG_SRC)
|
||||
-rm -rf $(TIFF_SRC)
|
||||
|
||||
PHONY : distcleanlept
|
||||
distcleanlept :
|
||||
-rm -rf $(LEPT_INC_DIR)/leptonica
|
||||
-rm -rf $(install_liblept)
|
||||
-rm -rf $(LEPTON_SRC)
|
||||
|
||||
.PHONY : distcleantess
|
||||
distcleantess :
|
||||
-rm -rf $(TESS_INC_DIR)/tesseract
|
||||
-rm -rf $(install_libtess)
|
||||
-rm -rf $(TESSERACT_SRC)
|
||||
|
||||
.PHONY : FORCE
|
||||
FORCE :
|
|
@ -0,0 +1,646 @@
|
|||
version: '3'
|
||||
|
||||
vars:
|
||||
SRC_DIR:
|
||||
sh: pwd
|
||||
|
||||
PNG_VERSION: 1.6.36
|
||||
PNG_NAME: libpng-{{.PNG_VERSION}}
|
||||
PNG_SRC: "{{.SRC_DIR}}/{{.PNG_NAME}}"
|
||||
PNG_ARCHIVE: libpng.a
|
||||
PNG_CONFIG: "{{.PNG_SRC}}/configure"
|
||||
|
||||
JPEG_SRC_NAME: jpegsrc.v9c
|
||||
JPEG_DIR_NAME: jpeg-9c # folder name after the JPEG_SRC_NAME archive has been unpacked
|
||||
JPEG_SRC: "{{.SRC_DIR}}/{{.JPEG_DIR_NAME}}"
|
||||
JPEG_ARCHIVE: libjpeg.a
|
||||
JPEG_CONFIG: "{{.JPEG_SRC}}/configure"
|
||||
|
||||
TIFF_NAME: tiff-4.0.10
|
||||
TIFF_SRC: "{{.SRC_DIR}}/{{.TIFF_NAME}}"
|
||||
TIFF_ARCHIVE: libtiff.a
|
||||
TIFF_CONFIG: "{{.TIFF_SRC}}/configure"
|
||||
|
||||
TESSERACT_VERSION: 4.1.0
|
||||
TESSERACT_NAME: tesseract-{{.TESSERACT_VERSION}}
|
||||
TESSERACT_SRC: "{{.SRC_DIR}}/{{.TESSERACT_NAME}}"
|
||||
TESSERACT_ARCHIVE: libtesseract.a
|
||||
TESSERACT_AUTOGEN: "{{.TESSERACT_SRC}}/autogen.sh"
|
||||
TESSERACT_CONFIG: "{{.TESSERACT_SRC}}/configure"
|
||||
|
||||
LEPTONICA_VERSION: 1.79.0
|
||||
LEPTONICA_NAME: leptonica-{{.LEPTONICA_VERSION}}
|
||||
LEPTONICA_SRC: "{{.SRC_DIR}}/{{.LEPTONICA_NAME}}"
|
||||
LEPTONICA_ARCHIVE: liblept.a
|
||||
LEPTONICA_AUTOGEN: "{{.LEPTONICA_SRC}}/autogen.sh"
|
||||
LEPTONICA_CONFIG: "{{.LEPTONICA_SRC}}/configure"
|
||||
|
||||
LIBTESSERACT_PROJECT: libtesseract.xcodeproj
|
||||
|
||||
IOS_VERSION_MIN: iphoneos-version-min=11.0
|
||||
IOS_ARCH_NAME: arm-apple-darwin64
|
||||
IOS_HOST: "{{.IOS_ARCH_NAME}}"
|
||||
IOS_PLATFORM_PREFIX: ios
|
||||
IOS_ARCH: arm64
|
||||
IOS_SDK:
|
||||
sh: xcrun --sdk iphoneos --show-sdk-path
|
||||
|
||||
IOS_FRAMEWORK: "{{.SRC_DIR}}/build/Release-iphoneos/libtesseract.framework"
|
||||
|
||||
IOS_SIMULATOR_VERSION_MIN: ios-simulator-version-min=11.0
|
||||
IOS_SIMULATOR_PLATFORM_PREFIX: simulator
|
||||
IOS_SIMULATOR_SDK:
|
||||
sh: xcrun --sdk iphonesimulator --show-sdk-path
|
||||
|
||||
IOS_SIMULATOR_ARM_ARCH_NAME: arm-apple-darwin64
|
||||
IOS_SIMULATOR_ARM_HOST: "{{.IOS_SIMULATOR_ARM_ARCH_NAME}}"
|
||||
IOS_SIMULATOR_ARM_ARCH: arm64
|
||||
|
||||
IOS_SIMULATOR_X86_ARCH_NAME: x86_64-apple-darwin
|
||||
IOS_SIMULATOR_X86_HOST: "{{.IOS_SIMULATOR_X86_ARCH_NAME}}"
|
||||
IOS_SIMULATOR_X86_ARCH: x86_64
|
||||
|
||||
IOS_SIMULATOR_FRAMEWORK: "{{.SRC_DIR}}/build/Release-iphonesimulator/libtesseract.framework"
|
||||
|
||||
MACOS_VERSION_MIN: macosx-version-min=10.13
|
||||
MACOS_PLATFORM_PREFIX: macos
|
||||
MACOS_SDK:
|
||||
sh: xcrun --sdk macosx --show-sdk-path
|
||||
|
||||
MACOS_ARM_ARCH_NAME: arm-apple-darwin64
|
||||
MACOS_ARM_ARCH: arm64
|
||||
MACOS_ARM_HOST: "{{.MACOS_ARM_ARCH_NAME}}"
|
||||
|
||||
MACOS_X86_ARCH_NAME: x86_64-apple-darwin
|
||||
MACOS_X86_ARCH: x86_64
|
||||
MACOS_X86_HOST: "{{.MACOS_X86_ARCH_NAME}}"
|
||||
|
||||
MACOS_FRAMEWORK: "{{.SRC_DIR}}/build/Release/libtesseract.framework"
|
||||
|
||||
CATALYST_VERSION_MIN: iphoneos-version-min=13.0
|
||||
CATALYST_PLATFORM_PREFIX: catalyst
|
||||
CATALYST_SDK:
|
||||
sh: xcrun --sdk macosx --show-sdk-path
|
||||
|
||||
CATALYST_ARM_ARCH_NAME: arm64-apple-ios-macabi
|
||||
CATALYST_ARM_ARCH: arm64
|
||||
CATALYST_ARM_HOST: arm-apple-darwin64
|
||||
|
||||
CATALYST_X86_ARCH_NAME: x86_64-apple-ios-macabi
|
||||
CATALYST_X86_ARCH: x86_64
|
||||
CATALYST_X86_HOST: x86_64-apple-darwin
|
||||
|
||||
CATALYST_FRAMEWORK: "{{.SRC_DIR}}/build/Release-maccatalyst/libtesseract.framework"
|
||||
|
||||
env:
|
||||
TARGET_CXX: /usr/bin/clang++
|
||||
TARGET_CXX_FOR_BUILD: /usr/bin/clang++
|
||||
TARGET_CC: /usr/bin/clang
|
||||
|
||||
tasks:
|
||||
clean-build-folder:
|
||||
cmds:
|
||||
- rm -rf {{.SRC_DIR}}/build
|
||||
|
||||
clean-artifacts:
|
||||
cmds:
|
||||
- rm -rf {{.SRC_DIR}}/include/*.h *.a
|
||||
|
||||
clean-sources:
|
||||
cmds:
|
||||
- task: clean-artifacts
|
||||
- rm -rf {{.PNG_SRC}} {{.TIFF_SRC}} {{.JPEG_SRC}} {{.LEPTONICA_SRC}} {{.TESSERACT_SRC}}
|
||||
|
||||
build-tesseract-xcframework-zip:
|
||||
cmds:
|
||||
- task: build-tesseract-xcframework
|
||||
- zip -r {{.SRC_DIR}}/libtesseract-{{.RELEASE_VERSION}}.xcframework.zip {{.SRC_DIR}}/build/libtesseract.xcframework
|
||||
|
||||
build-tesseract-xcframework:
|
||||
cmds:
|
||||
- task: clean-build-folder
|
||||
- task: clean-sources
|
||||
- task: build-tesseract-catalyst-framework
|
||||
- task: clean-sources
|
||||
- task: build-tesseract-macos-framework
|
||||
- task: clean-sources
|
||||
- task: build-tesseract-ios-simulator-framework
|
||||
- task: clean-sources
|
||||
- task: build-tesseract-ios-framework
|
||||
- task: clean-sources
|
||||
- |
|
||||
xcodebuild -create-xcframework \
|
||||
-framework {{.IOS_FRAMEWORK}} \
|
||||
-framework {{.IOS_SIMULATOR_FRAMEWORK}} \
|
||||
-framework {{.MACOS_FRAMEWORK}} \
|
||||
-framework {{.CATALYST_FRAMEWORK}} \
|
||||
-output {{.SRC_DIR}}/build/libtesseract.xcframework
|
||||
status:
|
||||
- test -f {{.SRC_DIR}}/build/libtesseract.xcframework
|
||||
|
||||
build-tesseract-catalyst-framework:
|
||||
cmds:
|
||||
- task: build-tesseract-catalyst
|
||||
- cp {{.SRC_DIR}}/{{.CATALYST_PLATFORM_PREFIX}}/combined.a .
|
||||
- cp -r {{.SRC_DIR}}/{{.CATALYST_PLATFORM_PREFIX}}/include/*h {{.SRC_DIR}}/include
|
||||
- sed -ie 's/.*fract1.*//' {{.SRC_DIR}}/include/allheaders.h
|
||||
- |
|
||||
xcodebuild -project {{.LIBTESSERACT_PROJECT}} \
|
||||
-scheme 'libtesseract iOS' \
|
||||
-sdk macosx \
|
||||
-destination 'platform=macOS,variant=Mac Catalyst' \
|
||||
-configuration 'Release' \
|
||||
SYMROOT=`pwd`/build \
|
||||
-derivedDataPath {{.SRC_DIR}}/DerivedData \
|
||||
BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
|
||||
build
|
||||
status:
|
||||
- test -f {{.CATALYST_FRAMEWORK}}
|
||||
|
||||
build-tesseract-catalyst:
|
||||
cmds:
|
||||
- task: install-libtesseract
|
||||
vars:
|
||||
SDK: "{{.CATALYST_SDK}}"
|
||||
PLATFORM_VERSION_MIN: "{{.CATALYST_VERSION_MIN}}"
|
||||
HOST: "{{.CATALYST_ARM_HOST}}"
|
||||
ARCH_NAME: "{{.CATALYST_ARM_ARCH_NAME}}"
|
||||
ARCH: "{{.CATALYST_ARM_ARCH}}"
|
||||
PLATFORM_PREFIX: "{{.CATALYST_PLATFORM_PREFIX}}"
|
||||
- task: install-libtesseract
|
||||
vars:
|
||||
SDK: "{{.CATALYST_SDK}}"
|
||||
PLATFORM_VERSION_MIN: "{{.CATALYST_VERSION_MIN}}"
|
||||
HOST: "{{.CATALYST_X86_HOST}}"
|
||||
ARCH_NAME: "{{.CATALYST_X86_ARCH_NAME}}"
|
||||
ARCH: "{{.CATALYST_X86_ARCH}}"
|
||||
PLATFORM_PREFIX: "{{.CATALYST_PLATFORM_PREFIX}}"
|
||||
- |
|
||||
xcrun lipo \
|
||||
{{.SRC_DIR}}/{{.CATALYST_PLATFORM_PREFIX}}/{{.CATALYST_ARM_ARCH_NAME}}/combined.a \
|
||||
{{.SRC_DIR}}/{{.CATALYST_PLATFORM_PREFIX}}/{{.CATALYST_X86_ARCH_NAME}}/combined.a \
|
||||
-create -output {{.SRC_DIR}}/{{.CATALYST_PLATFORM_PREFIX}}/combined.a
|
||||
status:
|
||||
- test -f {{.SRC_DIR}}/{{.CATALYST_PLATFORM_PREFIX}}/combined.a
|
||||
|
||||
build-tesseract-macos-framework:
|
||||
cmds:
|
||||
- task: build-tesseract-macos
|
||||
- cp {{.SRC_DIR}}/{{.MACOS_PLATFORM_PREFIX}}/combined.a .
|
||||
- cp -r {{.SRC_DIR}}/{{.MACOS_PLATFORM_PREFIX}}/include/*h {{.SRC_DIR}}/include
|
||||
- sed -ie 's/.*fract1.*//' {{.SRC_DIR}}/include/allheaders.h
|
||||
- |
|
||||
xcodebuild -project {{.LIBTESSERACT_PROJECT}} \
|
||||
-scheme 'libtesseract macOS' \
|
||||
-sdk macosx \
|
||||
-destination 'generic/platform=macOS' \
|
||||
-configuration 'Release' \
|
||||
SYMROOT=`pwd`/build \
|
||||
-derivedDataPath {{.SRC_DIR}}/DerivedData \
|
||||
BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
|
||||
build
|
||||
status:
|
||||
- test -f {{.MACOS_FRAMEWORK}}
|
||||
|
||||
build-tesseract-macos:
|
||||
cmds:
|
||||
- task: install-libtesseract
|
||||
vars:
|
||||
SDK: "{{.MACOS_SDK}}"
|
||||
PLATFORM_VERSION_MIN: "{{.MACOS_VERSION_MIN}}"
|
||||
HOST: "{{.MACOS_ARM_HOST}}"
|
||||
ARCH_NAME: "{{.MACOS_ARM_ARCH_NAME}}"
|
||||
ARCH: "{{.MACOS_ARM_ARCH}}"
|
||||
PLATFORM_PREFIX: "{{.MACOS_PLATFORM_PREFIX}}"
|
||||
- task: install-libtesseract
|
||||
vars:
|
||||
SDK: "{{.MACOS_SDK}}"
|
||||
PLATFORM_VERSION_MIN: "{{.MACOS_VERSION_MIN}}"
|
||||
HOST: "{{.MACOS_X86_HOST}}"
|
||||
ARCH_NAME: "{{.MACOS_X86_ARCH_NAME}}"
|
||||
ARCH: "{{.MACOS_X86_ARCH}}"
|
||||
PLATFORM_PREFIX: "{{.MACOS_PLATFORM_PREFIX}}"
|
||||
- |
|
||||
xcrun lipo \
|
||||
{{.SRC_DIR}}/{{.MACOS_PLATFORM_PREFIX}}/{{.MACOS_ARM_ARCH_NAME}}/combined.a \
|
||||
{{.SRC_DIR}}/{{.MACOS_PLATFORM_PREFIX}}/{{.MACOS_X86_ARCH_NAME}}/combined.a \
|
||||
-create -output {{.SRC_DIR}}/{{.MACOS_PLATFORM_PREFIX}}/combined.a
|
||||
status:
|
||||
- test -f {{.SRC_DIR}}/{{.MACOS_PLATFORM_PREFIX}}/combined.a
|
||||
|
||||
build-tesseract-ios-simulator-framework:
|
||||
cmds:
|
||||
- task: build-tesseract-ios-simulator
|
||||
- cp {{.SRC_DIR}}/{{.IOS_SIMULATOR_PLATFORM_PREFIX}}/combined.a .
|
||||
- cp -r {{.SRC_DIR}}/{{.IOS_SIMULATOR_PLATFORM_PREFIX}}/include/*h {{.SRC_DIR}}/include
|
||||
- |
|
||||
xcodebuild -project {{.LIBTESSERACT_PROJECT}} \
|
||||
-scheme 'libtesseract iOS' \
|
||||
-sdk iphonesimulator \
|
||||
-destination 'generic/platform=iOS Simulator' \
|
||||
-configuration 'Release' \
|
||||
SYMROOT=`pwd`/build \
|
||||
-derivedDataPath {{.SRC_DIR}}/DerivedData \
|
||||
BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
|
||||
build
|
||||
status:
|
||||
- test -f {{.IOS_SIMULATOR_FRAMEWORK}}
|
||||
|
||||
build-tesseract-ios-simulator:
|
||||
cmds:
|
||||
- task: install-libtesseract
|
||||
vars:
|
||||
SDK: "{{.IOS_SIMULATOR_SDK}}"
|
||||
PLATFORM_VERSION_MIN: "{{.IOS_SIMULATOR_VERSION_MIN}}"
|
||||
HOST: "{{.IOS_SIMULATOR_ARM_HOST}}"
|
||||
ARCH_NAME: "{{.IOS_SIMULATOR_ARM_ARCH_NAME}}"
|
||||
ARCH: "{{.IOS_SIMULATOR_ARM_ARCH}}"
|
||||
PLATFORM_PREFIX: "{{.IOS_SIMULATOR_PLATFORM_PREFIX}}"
|
||||
- task: install-libtesseract
|
||||
vars:
|
||||
SDK: "{{.IOS_SIMULATOR_SDK}}"
|
||||
PLATFORM_VERSION_MIN: "{{.IOS_SIMULATOR_VERSION_MIN}}"
|
||||
HOST: "{{.IOS_SIMULATOR_X86_HOST}}"
|
||||
ARCH_NAME: "{{.IOS_SIMULATOR_X86_ARCH_NAME}}"
|
||||
ARCH: "{{.IOS_SIMULATOR_X86_ARCH}}"
|
||||
PLATFORM_PREFIX: "{{.IOS_SIMULATOR_PLATFORM_PREFIX}}"
|
||||
- |
|
||||
xcrun lipo \
|
||||
{{.SRC_DIR}}/{{.IOS_SIMULATOR_PLATFORM_PREFIX}}/{{.IOS_SIMULATOR_ARM_ARCH_NAME}}/combined.a \
|
||||
{{.SRC_DIR}}/{{.IOS_SIMULATOR_PLATFORM_PREFIX}}/{{.IOS_SIMULATOR_X86_ARCH_NAME}}/combined.a \
|
||||
-create -output {{.SRC_DIR}}/{{.IOS_SIMULATOR_PLATFORM_PREFIX}}/combined.a
|
||||
status:
|
||||
- test -f {{.SRC_DIR}}/{{.IOS_SIMULATOR_PLATFORM_PREFIX}}/combined.a
|
||||
|
||||
build-tesseract-ios-framework:
|
||||
cmds:
|
||||
- task: build-tesseract-ios
|
||||
- cp {{.SRC_DIR}}/{{.IOS_PLATFORM_PREFIX}}/combined.a .
|
||||
- cp -r {{.SRC_DIR}}/{{.IOS_PLATFORM_PREFIX}}/include/*h {{.SRC_DIR}}/include
|
||||
- |
|
||||
xcodebuild -project {{.LIBTESSERACT_PROJECT}} \
|
||||
-scheme 'libtesseract iOS' \
|
||||
-sdk iphoneos \
|
||||
-destination 'generic/platform=iOS' \
|
||||
-configuration 'Release' \
|
||||
SYMROOT=`pwd`/build \
|
||||
-derivedDataPath {{.SRC_DIR}}/DerivedData \
|
||||
BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
|
||||
build
|
||||
status:
|
||||
- test -f {{.IOS_FRAMEWORK}}
|
||||
|
||||
build-tesseract-ios:
|
||||
cmds:
|
||||
- task: install-libtesseract
|
||||
vars:
|
||||
SDK: "{{.IOS_SDK}}"
|
||||
PLATFORM_VERSION_MIN: "{{.IOS_VERSION_MIN}}"
|
||||
HOST: "{{.IOS_HOST}}"
|
||||
ARCH_NAME: "{{.IOS_ARCH_NAME}}"
|
||||
ARCH: "{{.IOS_ARCH}}"
|
||||
PLATFORM_PREFIX: "{{.IOS_PLATFORM_PREFIX}}"
|
||||
- cp {{.SRC_DIR}}/{{.IOS_PLATFORM_PREFIX}}/{{.IOS_ARCH_NAME}}/combined.a {{.SRC_DIR}}/{{.IOS_PLATFORM_PREFIX}}
|
||||
status:
|
||||
- test -f {{.SRC_DIR}}/{{.IOS_PLATFORM_PREFIX}}/combined.a
|
||||
|
||||
install-libtesseract:
|
||||
cmds:
|
||||
- task: compile-libtesseract
|
||||
vars:
|
||||
SDK: "{{.SDK}}"
|
||||
PLATFORM_VERSION_MIN: "{{.PLATFORM_VERSION_MIN}}"
|
||||
ARCH: "{{.ARCH}}"
|
||||
ARCH_NAME: "{{.ARCH_NAME}}"
|
||||
HOST: "{{.HOST}}"
|
||||
PLATFORM_PREFIX: "{{.PLATFORM_PREFIX}}"
|
||||
- mkdir -p {{.SRC_DIR}}/{{.PLATFORM_PREFIX}}/{{.ARCH_NAME}}
|
||||
- mkdir -p {{.SRC_DIR}}/{{.PLATFORM_PREFIX}}/include
|
||||
- cp {{.TESSERACT_SRC}}/{{.ARCH_NAME}}/lib/{{.TESSERACT_ARCHIVE}} {{.SRC_DIR}}/{{.PLATFORM_PREFIX}}/{{.ARCH_NAME}}
|
||||
- cp -rvf {{.TESSERACT_SRC}}/{{.ARCH_NAME}}/include/tesseract/*.h {{.SRC_DIR}}/{{.PLATFORM_PREFIX}}/include
|
||||
- |
|
||||
libtool -static -o {{.SRC_DIR}}/{{.PLATFORM_PREFIX}}/{{.ARCH_NAME}}/combined.a \
|
||||
{{.SRC_DIR}}/{{.PLATFORM_PREFIX}}/{{.ARCH_NAME}}/{{.JPEG_ARCHIVE}} \
|
||||
{{.SRC_DIR}}/{{.PLATFORM_PREFIX}}/{{.ARCH_NAME}}/{{.LEPTONICA_ARCHIVE}} \
|
||||
{{.SRC_DIR}}/{{.PLATFORM_PREFIX}}/{{.ARCH_NAME}}/{{.PNG_ARCHIVE}} \
|
||||
{{.SRC_DIR}}/{{.PLATFORM_PREFIX}}/{{.ARCH_NAME}}/{{.TIFF_ARCHIVE}} \
|
||||
{{.SRC_DIR}}/{{.PLATFORM_PREFIX}}/{{.ARCH_NAME}}/{{.TESSERACT_ARCHIVE}}
|
||||
status:
|
||||
- test -f {{.SRC_DIR}}/{{.PLATFORM_PREFIX}}/{{.ARCH_NAME}}/combined.a
|
||||
|
||||
compile-libtesseract:
|
||||
cmds:
|
||||
- task: configure-libtesseract
|
||||
vars:
|
||||
SDK: "{{.SDK}}"
|
||||
PLATFORM_VERSION_MIN: "{{.PLATFORM_VERSION_MIN}}"
|
||||
ARCH: "{{.ARCH}}"
|
||||
ARCH_NAME: "{{.ARCH_NAME}}"
|
||||
HOST: "{{.HOST}}"
|
||||
PLATFORM_PREFIX: "{{.PLATFORM_PREFIX}}"
|
||||
- |
|
||||
cd {{.TESSERACT_SRC}}/{{.ARCH_NAME}}
|
||||
make -sj8
|
||||
make install
|
||||
status:
|
||||
- test -f {{.TESSERACT_SRC}}/{{.ARCH_NAME}}/lib/{{.TESSERACT_ARCHIVE}}
|
||||
|
||||
configure-libtesseract:
|
||||
deps:
|
||||
- task: autogen-libtesseract
|
||||
- task: install-liblept
|
||||
vars:
|
||||
SDK: "{{.SDK}}"
|
||||
PLATFORM_VERSION_MIN: "{{.PLATFORM_VERSION_MIN}}"
|
||||
ARCH: "{{.ARCH}}"
|
||||
ARCH_NAME: "{{.ARCH_NAME}}"
|
||||
HOST: "{{.HOST}}"
|
||||
PLATFORM_PREFIX: "{{.PLATFORM_PREFIX}}"
|
||||
cmds:
|
||||
- |
|
||||
export LIBS="-lz -lpng -ljpeg -ltiff"
|
||||
export SDKROOT="{{.SDK}}"
|
||||
export CFLAGS="-I{{.TESSERACT_SRC}}/{{.ARCH_NAME}}/ -arch {{.ARCH}} -pipe -no-cpp-precomp -isysroot $SDKROOT -m{{.PLATFORM_VERSION_MIN}} -O2 -fembed-bitcode"
|
||||
export CPPFLAGS=$CFLAGS
|
||||
export CXXFLAGS="-I{{.TESSERACT_SRC}}/{{.ARCH_NAME}}/ -arch {{.ARCH}} -pipe -no-cpp-precomp -isysroot $SDKROOT -m{{.PLATFORM_VERSION_MIN}} -O2 -Wno-deprecated-register"
|
||||
export LDFLAGS="-L$SDKROOT/usr/lib/ -L{{.SRC_DIR}}/{{.PLATFORM_PREFIX}}/{{.ARCH_NAME}} -L{{.LEPTONICA_SRC}}/{{.ARCH_NAME}}/src/.libs"
|
||||
export LIBLEPT_HEADERSDIR={{.TESSERACT_SRC}}/{{.ARCH_NAME}}/
|
||||
export PKG_CONFIG_PATH={{.LEPTONICA_SRC}}/{{.ARCH_NAME}}/
|
||||
export CXX="{{.TARGET_CXX}} --target={{.ARCH_NAME}}"
|
||||
export CXX_FOR_BUILD="{{.TARGET_CXX_FOR_BUILD}} --target={{.ARCH_NAME}}"
|
||||
export CC="{{.TARGET_CC}} --target={{.ARCH_NAME}}"
|
||||
mkdir -p {{.TESSERACT_SRC}}/{{.ARCH_NAME}}
|
||||
cd {{.TESSERACT_SRC}}/{{.ARCH_NAME}}
|
||||
ln -s {{.LEPTONICA_SRC}}/src/ leptonica
|
||||
../configure --host={{.HOST}} --prefix=`pwd` --enable-shared=no --disable-graphics
|
||||
status:
|
||||
- test -f {{.TESSERACT_SRC}}/{{.ARCH_NAME}}/Makefile
|
||||
|
||||
autogen-libtesseract:
|
||||
deps: [download-libtesseract]
|
||||
cmds:
|
||||
- |
|
||||
cd {{.TESSERACT_SRC}}
|
||||
./autogen.sh 2> /dev/null
|
||||
status:
|
||||
- test -f {{.TESSERACT_CONFIG}}
|
||||
|
||||
download-libtesseract:
|
||||
cmds:
|
||||
- curl -LO https://github.com/tesseract-ocr/tesseract/archive/{{.TESSERACT_VERSION}}.zip
|
||||
- unzip -a {{.TESSERACT_VERSION}}.zip
|
||||
status:
|
||||
- test -d {{.TESSERACT_SRC}}
|
||||
|
||||
install-liblept:
|
||||
cmds:
|
||||
- task: compile-liblept
|
||||
vars:
|
||||
SDK: "{{.SDK}}"
|
||||
PLATFORM_VERSION_MIN: "{{.PLATFORM_VERSION_MIN}}"
|
||||
ARCH: "{{.ARCH}}"
|
||||
ARCH_NAME: "{{.ARCH_NAME}}"
|
||||
HOST: "{{.HOST}}"
|
||||
PLATFORM_PREFIX: "{{.PLATFORM_PREFIX}}"
|
||||
- mkdir -p {{.SRC_DIR}}/{{.PLATFORM_PREFIX}}/{{.ARCH_NAME}}
|
||||
- mkdir -p {{.SRC_DIR}}/{{.PLATFORM_PREFIX}}/include
|
||||
- cp {{.LEPTONICA_SRC}}/{{.ARCH_NAME}}/lib/{{.LEPTONICA_ARCHIVE}} {{.SRC_DIR}}/{{.PLATFORM_PREFIX}}/{{.ARCH_NAME}}
|
||||
- cp -rvf {{.LEPTONICA_SRC}}/{{.ARCH_NAME}}/include/leptonica/*.h {{.SRC_DIR}}/{{.PLATFORM_PREFIX}}/include
|
||||
status:
|
||||
- test -f {{.SRC_DIR}}/{{.PLATFORM_PREFIX}}/{{.ARCH_NAME}}/{{.LEPTONICA_ARCHIVE}}
|
||||
|
||||
compile-liblept:
|
||||
cmds:
|
||||
- task: configure-liblept
|
||||
vars:
|
||||
SDK: "{{.SDK}}"
|
||||
PLATFORM_VERSION_MIN: "{{.PLATFORM_VERSION_MIN}}"
|
||||
ARCH: "{{.ARCH}}"
|
||||
ARCH_NAME: "{{.ARCH_NAME}}"
|
||||
HOST: "{{.HOST}}"
|
||||
PLATFORM_PREFIX: "{{.PLATFORM_PREFIX}}"
|
||||
- |
|
||||
cd {{.LEPTONICA_SRC}}/{{.ARCH_NAME}}
|
||||
make -sj8
|
||||
make install
|
||||
status:
|
||||
- test -f {{.LEPTONICA_SRC}}/{{.ARCH_NAME}}/lib/{{.LEPTONICA_ARCHIVE}}
|
||||
|
||||
configure-liblept:
|
||||
deps: # These are set up as deps so they can be executed concurrently
|
||||
- task: install-libpng
|
||||
vars:
|
||||
SDK: "{{.SDK}}"
|
||||
PLATFORM_VERSION_MIN: "{{.PLATFORM_VERSION_MIN}}"
|
||||
ARCH: "{{.ARCH}}"
|
||||
ARCH_NAME: "{{.ARCH_NAME}}"
|
||||
HOST: "{{.HOST}}"
|
||||
PLATFORM_PREFIX: "{{.PLATFORM_PREFIX}}"
|
||||
- task: install-libjpeg
|
||||
vars:
|
||||
SDK: "{{.SDK}}"
|
||||
PLATFORM_VERSION_MIN: "{{.PLATFORM_VERSION_MIN}}"
|
||||
ARCH: "{{.ARCH}}"
|
||||
ARCH_NAME: "{{.ARCH_NAME}}"
|
||||
HOST: "{{.HOST}}"
|
||||
PLATFORM_PREFIX: "{{.PLATFORM_PREFIX}}"
|
||||
cmds:
|
||||
- task: install-libtiff
|
||||
vars:
|
||||
SDK: "{{.SDK}}"
|
||||
PLATFORM_VERSION_MIN: "{{.PLATFORM_VERSION_MIN}}"
|
||||
ARCH: "{{.ARCH}}"
|
||||
ARCH_NAME: "{{.ARCH_NAME}}"
|
||||
HOST: "{{.HOST}}"
|
||||
PLATFORM_PREFIX: "{{.PLATFORM_PREFIX}}"
|
||||
- task: autogen-liblept
|
||||
- |
|
||||
export SDKROOT={{.SDK}}
|
||||
export CFLAGS="-I{{.SRC_DIR}}/{{.PLATFORM_PREFIX}}/include -arch {{.ARCH}} -pipe -no-cpp-precomp -isysroot $SDKROOT -m{{.PLATFORM_VERSION_MIN}} -O2 -fembed-bitcode"
|
||||
export CPPFLAGS=$CFLAGS
|
||||
export CXXFLAGS="-I{{.SRC_DIR}}/{{.PLATFORM_PREFIX}}/include -arch {{.ARCH}} -pipe -no-cpp-precomp -isysroot $SDKROOT -m{{.PLATFORM_VERSION_MIN}} -O2 -Wno-deprecated-register"
|
||||
export LDFLAGS="-L$SDKROOT/usr/lib -L{{.SRC_DIR}}/{{.PLATFORM_PREFIX}}/{{.ARCH_NAME}}"
|
||||
export PKG_CONFIG_PATH={{.PNG_SRC}}/{{.ARCH_NAME}}/:{{.JPEG_SRC}}/{{.ARCH_NAME}}/:{{.TIFF_SRC}}/{{.ARCH_NAME}}/
|
||||
export CXX="{{.TARGET_CXX}} --target={{.ARCH_NAME}}"
|
||||
export CXX_FOR_BUILD="{{.TARGET_CXX_FOR_BUILD}} --target={{.ARCH_NAME}}"
|
||||
export CC="{{.TARGET_CC}} --target={{.ARCH_NAME}}"
|
||||
mkdir -p {{.LEPTONICA_SRC}}/{{.ARCH_NAME}}
|
||||
cd {{.LEPTONICA_SRC}}/{{.ARCH_NAME}}
|
||||
../configure --host={{.HOST}} --prefix=`pwd` --enable-shared=no --disable-programs --with-zlib --with-libpng --with-jpeg --with-libtiff --without-giflib --without-libwebp --without-libwebpmux --without-libopenjpeg
|
||||
status:
|
||||
- test -f {{.LEPTONICA_SRC}}/{{.ARCH_NAME}}/Makefile
|
||||
|
||||
autogen-liblept:
|
||||
deps: [download-liblept]
|
||||
cmds:
|
||||
- |
|
||||
cd {{.LEPTONICA_SRC}}
|
||||
./autogen.sh 2> /dev/null
|
||||
status:
|
||||
- test -f {{.LEPTONICA_CONFIG}}
|
||||
|
||||
download-liblept:
|
||||
cmds:
|
||||
- curl http://leptonica.org/source/{{.LEPTONICA_NAME}}.tar.gz | tar -xpf-
|
||||
status:
|
||||
- test -d {{.LEPTONICA_SRC}}
|
||||
|
||||
install-libpng:
|
||||
cmds:
|
||||
- task: compile-libpng
|
||||
vars:
|
||||
ARCH_NAME: "{{.ARCH_NAME}}"
|
||||
ARCH: "{{.ARCH}}"
|
||||
SDK: "{{.SDK}}"
|
||||
HOST: "{{.HOST}}"
|
||||
PLATFORM_VERSION_MIN: "{{.PLATFORM_VERSION_MIN}}"
|
||||
- mkdir -p {{.SRC_DIR}}/{{.PLATFORM_PREFIX}}/{{.ARCH_NAME}}
|
||||
- mkdir -p {{.SRC_DIR}}/{{.PLATFORM_PREFIX}}/include
|
||||
- cp {{.PNG_SRC}}/{{.ARCH_NAME}}/lib/{{.PNG_ARCHIVE}} {{.SRC_DIR}}/{{.PLATFORM_PREFIX}}/{{.ARCH_NAME}}
|
||||
- cp -rvf {{.PNG_SRC}}/{{.ARCH_NAME}}/include/libpng16/*.h {{.SRC_DIR}}/{{.PLATFORM_PREFIX}}/include
|
||||
status:
|
||||
- test -f {{.SRC_DIR}}/{{.PLATFORM_PREFIX}}/{{.ARCH_NAME}}/{{.PNG_ARCHIVE}}
|
||||
|
||||
compile-libpng:
|
||||
cmds:
|
||||
- task: configure-libpng
|
||||
vars:
|
||||
SDK: "{{.SDK}}"
|
||||
PLATFORM_VERSION_MIN: "{{.PLATFORM_VERSION_MIN}}"
|
||||
ARCH_NAME: "{{.ARCH_NAME}}"
|
||||
ARCH: "{{.ARCH}}"
|
||||
HOST: "{{.HOST}}"
|
||||
- |
|
||||
cd {{.PNG_SRC}}/{{.ARCH_NAME}}
|
||||
make -sj8
|
||||
make install
|
||||
status:
|
||||
- test -f {{.PNG_SRC}}/{{.ARCH_NAME}}/lib/{{.PNG_ARCHIVE}}
|
||||
|
||||
configure-libpng:
|
||||
deps: [download-libpng]
|
||||
cmds:
|
||||
- |
|
||||
export SDKROOT={{.SDK}}
|
||||
export CFLAGS="-arch {{.ARCH}} -pipe -no-cpp-precomp -isysroot $SDKROOT -m{{.PLATFORM_VERSION_MIN}} -O2 -fembed-bitcode"
|
||||
export CPPFLAGS=$CFLAGS
|
||||
export CXXFLAGS="$CFLAGS -Wno-deprecated-register"
|
||||
export LDFLAGS="-L$SDKROOT/usr/lib"
|
||||
mkdir -p {{.PNG_SRC}}/{{.ARCH_NAME}}
|
||||
cd {{.PNG_SRC}}/{{.ARCH_NAME}}
|
||||
../configure CXX="{{.TARGET_CXX}} --target={{.ARCH_NAME}}" CC="{{.TARGET_CC}} --target={{.ARCH_NAME}}" --host={{.HOST}} --enable-shared=no --prefix=`pwd`
|
||||
status:
|
||||
- test -f {{.PNG_SRC}}/{{.ARCH_NAME}}/Makefile
|
||||
|
||||
download-libpng:
|
||||
cmds:
|
||||
- curl -L https://downloads.sourceforge.net/project/libpng/libpng16/{{.PNG_VERSION}}/{{.PNG_NAME}}.tar.gz | tar -xpf-
|
||||
status:
|
||||
- test -d {{.PNG_SRC}}
|
||||
|
||||
install-libjpeg:
|
||||
cmds:
|
||||
- task: compile-libjpeg
|
||||
vars:
|
||||
ARCH_NAME: "{{.ARCH_NAME}}"
|
||||
ARCH: "{{.ARCH}}"
|
||||
SDK: "{{.SDK}}"
|
||||
HOST: "{{.HOST}}"
|
||||
PLATFORM_VERSION_MIN: "{{.PLATFORM_VERSION_MIN}}"
|
||||
- mkdir -p {{.SRC_DIR}}/{{.PLATFORM_PREFIX}}/{{.ARCH_NAME}}
|
||||
- mkdir -p {{.SRC_DIR}}/{{.PLATFORM_PREFIX}}/include
|
||||
- cp {{.JPEG_SRC}}/{{.ARCH_NAME}}/lib/{{.JPEG_ARCHIVE}} {{.SRC_DIR}}/{{.PLATFORM_PREFIX}}/{{.ARCH_NAME}}
|
||||
- cp -rvf {{.JPEG_SRC}}/{{.ARCH_NAME}}/include/*.h {{.SRC_DIR}}/{{.PLATFORM_PREFIX}}/include
|
||||
status:
|
||||
- test -f {{.SRC_DIR}}/{{.PLATFORM_PREFIX}}/{{.ARCH_NAME}}/{{.JPEG_ARCHIVE}}
|
||||
|
||||
compile-libjpeg:
|
||||
cmds:
|
||||
- task: configure-libjpeg
|
||||
vars:
|
||||
SDK: "{{.SDK}}"
|
||||
PLATFORM_VERSION_MIN: "{{.PLATFORM_VERSION_MIN}}"
|
||||
ARCH_NAME: "{{.ARCH_NAME}}"
|
||||
ARCH: "{{.ARCH}}"
|
||||
HOST: "{{.HOST}}"
|
||||
- |
|
||||
cd {{.JPEG_SRC}}/{{.ARCH_NAME}}
|
||||
make -sj8
|
||||
make install
|
||||
status:
|
||||
- test -f {{.JPEG_SRC}}/{{.ARCH_NAME}}/lib/{{.JPEG_ARCHIVE}}
|
||||
|
||||
configure-libjpeg:
|
||||
deps: [download-libjpeg]
|
||||
cmds:
|
||||
- |
|
||||
export SDKROOT={{.SDK}}
|
||||
export CFLAGS="-arch {{.ARCH}} -pipe -no-cpp-precomp -isysroot $SDKROOT -m{{.PLATFORM_VERSION_MIN}} -O2 -fembed-bitcode"
|
||||
export CPPFLAGS=$CFLAGS
|
||||
export CXXFLAGS="$CFLAGS -Wno-deprecated-register"
|
||||
export LDFLAGS="-L$SDKROOT/usr/lib"
|
||||
mkdir -p {{.JPEG_SRC}}/{{.ARCH_NAME}}
|
||||
cd {{.JPEG_SRC}}/{{.ARCH_NAME}}
|
||||
../configure CXX="{{.TARGET_CXX}} --target={{.ARCH_NAME}}" CC="{{.TARGET_CC}} --target={{.ARCH_NAME}}" --host={{.HOST}} --enable-shared=no --prefix=`pwd`
|
||||
status:
|
||||
- test -f {{.JPEG_SRC}}/{{.ARCH_NAME}}/Makefile
|
||||
|
||||
download-libjpeg:
|
||||
cmds:
|
||||
- curl http://www.ijg.org/files/{{.JPEG_SRC_NAME}}.tar.gz | tar -xpf-
|
||||
status:
|
||||
- test -d {{.JPEG_SRC}}
|
||||
|
||||
install-libtiff:
|
||||
cmds:
|
||||
- task: compile-libtiff
|
||||
vars:
|
||||
ARCH_NAME: "{{.ARCH_NAME}}"
|
||||
ARCH: "{{.ARCH}}"
|
||||
SDK: "{{.SDK}}"
|
||||
HOST: "{{.HOST}}"
|
||||
PLATFORM_VERSION_MIN: "{{.PLATFORM_VERSION_MIN}}"
|
||||
- mkdir -p {{.SRC_DIR}}/{{.PLATFORM_PREFIX}}/{{.ARCH_NAME}}
|
||||
- mkdir -p {{.SRC_DIR}}/{{.PLATFORM_PREFIX}}/include
|
||||
- cp {{.TIFF_SRC}}/{{.ARCH_NAME}}/lib/{{.TIFF_ARCHIVE}} {{.SRC_DIR}}/{{.PLATFORM_PREFIX}}/{{.ARCH_NAME}}
|
||||
- cp -rvf {{.TIFF_SRC}}/{{.ARCH_NAME}}/include/*.h {{.SRC_DIR}}/{{.PLATFORM_PREFIX}}/include
|
||||
status:
|
||||
- test -f {{.SRC_DIR}}/{{.PLATFORM_PREFIX}}/{{.ARCH_NAME}}/{{.TIFF_ARCHIVE}}
|
||||
|
||||
compile-libtiff:
|
||||
cmds:
|
||||
- task: configure-libtiff
|
||||
vars:
|
||||
SDK: "{{.SDK}}"
|
||||
PLATFORM_VERSION_MIN: "{{.PLATFORM_VERSION_MIN}}"
|
||||
ARCH_NAME: "{{.ARCH_NAME}}"
|
||||
ARCH: "{{.ARCH}}"
|
||||
HOST: "{{.HOST}}"
|
||||
- |
|
||||
cd {{.TIFF_SRC}}/{{.ARCH_NAME}}
|
||||
make -sj8
|
||||
make install
|
||||
status:
|
||||
- test -f {{.TIFF_SRC}}/{{.ARCH_NAME}}/lib/{{.TIFF_ARCHIVE}}
|
||||
|
||||
configure-libtiff:
|
||||
deps:
|
||||
- task: download-libtiff
|
||||
cmds:
|
||||
- |
|
||||
export SDKROOT={{.SDK}}
|
||||
export CFLAGS="-arch {{.ARCH}} -pipe -no-cpp-precomp -isysroot $SDKROOT -m{{.PLATFORM_VERSION_MIN}} -O2 -fembed-bitcode"
|
||||
export CPPFLAGS=$CFLAGS
|
||||
export CXXFLAGS="$CFLAGS -Wno-deprecated-register"
|
||||
export LDFLAGS="-L$SDKROOT/usr/lib"
|
||||
mkdir -p {{.TIFF_SRC}}/{{.ARCH_NAME}}
|
||||
cd {{.TIFF_SRC}}/{{.ARCH_NAME}}
|
||||
../configure CXX="{{.TARGET_CXX}} --target={{.ARCH_NAME}}" CC="{{.TARGET_CC}} --target={{.ARCH_NAME}}" --host={{.HOST}} --enable-fast-install --enable-shared=no --prefix=`pwd` --without-x --with-jpeg-include-dir={{.JPEG_SRC}}/{{.ARCH_NAME}}/include --with-jpeg-lib-dir={{.JPEG_SRC}}/{{.ARCH_NAME}}/lib
|
||||
status:
|
||||
- test -f {{.TIFF_SRC}}/{{.ARCH_NAME}}/Makefile
|
||||
|
||||
download-libtiff:
|
||||
cmds:
|
||||
- curl http://download.osgeo.org/libtiff/{{.TIFF_NAME}}.tar.gz | tar -xpf-
|
||||
status:
|
||||
- test -d {{.TIFF_SRC}}
|
9
build.sh
9
build.sh
|
@ -1,9 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
build() {
|
||||
make platform=$1
|
||||
cp -r $1/include/*.h include
|
||||
cp -r $1/include/*.a .
|
||||
|
||||
libtool -static -o combined.a libjpeg.a liblept.a libpng.a libtiff.a libtesseract.a
|
||||
}
|
76
build_all.sh
76
build_all.sh
|
@ -1,76 +0,0 @@
|
|||
#!/bin/sh
|
||||
set -e
|
||||
source build.sh
|
||||
|
||||
make distclean
|
||||
rm -rf include/*.h *.a
|
||||
build ios
|
||||
|
||||
rm -rf build/
|
||||
|
||||
xcodebuild -project libtesseract.xcodeproj \
|
||||
-scheme 'libtesseract iOS' \
|
||||
-sdk iphoneos \
|
||||
-destination 'generic/platform=iOS' \
|
||||
-configuration 'Release' \
|
||||
SYMROOT=$(pwd)/build \
|
||||
-derivedDataPath ./DerivedData \
|
||||
BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
|
||||
build
|
||||
|
||||
rm include/*.h *.a
|
||||
|
||||
build simulator
|
||||
|
||||
xcodebuild -project libtesseract.xcodeproj \
|
||||
-scheme 'libtesseract iOS' \
|
||||
-sdk iphonesimulator \
|
||||
-destination 'generic/platform=iOS Simulator' \
|
||||
-configuration 'Release' \
|
||||
SYMROOT=$(pwd)/build \
|
||||
-derivedDataPath ./DerivedData \
|
||||
BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
|
||||
build
|
||||
|
||||
rm include/*.h combined.a
|
||||
|
||||
make distclean
|
||||
build catalyst
|
||||
|
||||
# There is an issue with the macro expansion for fract1 on macOS that causes the xcframework to not be useable
|
||||
sed -ie 's/.*fract1.*//' include/allheaders.h
|
||||
|
||||
xcodebuild -project libtesseract.xcodeproj \
|
||||
-scheme 'libtesseract iOS' \
|
||||
-sdk macosx \
|
||||
-destination 'platform=macOS,variant=Mac Catalyst' \
|
||||
-configuration 'Release' \
|
||||
SYMROOT=$(pwd)/build \
|
||||
-derivedDataPath ./DerivedData \
|
||||
BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
|
||||
build
|
||||
|
||||
rm include/*.h combined.a
|
||||
|
||||
make distclean
|
||||
build macos
|
||||
|
||||
# There is an issue with the macro expansion for fract1 on macOS that causes the xcframework to not be useable
|
||||
sed -ie 's/.*fract1.*//' include/allheaders.h
|
||||
|
||||
xcodebuild -project libtesseract.xcodeproj \
|
||||
-scheme 'libtesseract macOS' \
|
||||
-sdk macosx \
|
||||
-destination 'platform=OS X,arch=x86_64' \
|
||||
-configuration 'Release' \
|
||||
SYMROOT=$(pwd)/build \
|
||||
-derivedDataPath ./DerivedData \
|
||||
BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
|
||||
build
|
||||
|
||||
xcodebuild -create-xcframework \
|
||||
-framework 'build/Release-iphoneos/libtesseract.framework' \
|
||||
-framework 'build/Release-iphonesimulator/libtesseract.framework' \
|
||||
-framework 'build/Release-maccatalyst/libtesseract.framework' \
|
||||
-framework 'build/Release/libtesseract.framework' \
|
||||
-output 'build/libtesseract.xcframework'
|
|
@ -0,0 +1,39 @@
|
|||
import subprocess
|
||||
import argparse
|
||||
|
||||
def write_package_swift(version):
|
||||
libtesseract_zip = f"libtesseract-{version}.xcframework.zip"
|
||||
download_url = f"https://github.com/SwiftyTesseract/libtesseract/releases/download/{version}/{libtesseract_zip}"
|
||||
checksum_result = subprocess.run(["swift", "package", "compute-checksum", libtesseract_zip], stdout=subprocess.PIPE)
|
||||
checksum = checksum_result.stdout.decode("utf-8").strip("\n")
|
||||
|
||||
with open("Package.swift", "w") as package_swift:
|
||||
package_swift.write(f"""// swift-tools-version:5.3
|
||||
|
||||
import PackageDescription
|
||||
|
||||
let package = Package(
|
||||
name: "libtesseract",
|
||||
products: [
|
||||
.library(
|
||||
name: "libtesseract",
|
||||
targets: ["libtesseract"]
|
||||
),
|
||||
],
|
||||
dependencies: [],
|
||||
targets: [
|
||||
.binaryTarget(
|
||||
name: "libtesseract",
|
||||
url: "{download_url}",
|
||||
checksum: "{checksum}"
|
||||
)
|
||||
]
|
||||
)
|
||||
|
||||
""")
|
||||
|
||||
if __name__ == "__main__":
|
||||
parser = argparse.ArgumentParser(description="Update libtesseract Package.swift")
|
||||
parser.add_argument("--version", required=True, help="The version to update Package.swift for")
|
||||
args = parser.parse_args()
|
||||
write_package_swift(args.version)
|
Loading…
Reference in New Issue