libtesseract/Taskfile.yml

668 lines
25 KiB
YAML

version: '3'
vars:
SRC_DIR:
sh: pwd
PNG_VERSION: 1.6.37
PNG_NAME: libpng-{{.PNG_VERSION}}
PNG_SRC: "{{.SRC_DIR}}/{{.PNG_NAME}}"
PNG_ARCHIVE: libpng.a
PNG_CONFIG: "{{.PNG_SRC}}/configure"
JPEG_SRC_NAME: jpegsrc.v9e
JPEG_DIR_NAME: jpeg-9e # 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.3.0
TIFF_SRC: "{{.SRC_DIR}}/{{.TIFF_NAME}}"
TIFF_ARCHIVE: libtiff.a
TIFF_CONFIG: "{{.TIFF_SRC}}/configure"
TESSERACT_VERSION: 4.1.3
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.82.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-ios-xcframework-zip:
cmds:
- task: build-tesseract-ios-xcframework
- zip -r libtesseract-ios-{{.TESSERACT_VERSION}}.xcframework.zip libtesseract.xcframework
build-tesseract-xcframework-zip:
cmds:
- task: build-tesseract-xcframework
- zip -r libtesseract-{{.TESSERACT_VERSION}}.xcframework.zip libtesseract.xcframework
build-tesseract-ios-xcframework:
cmds:
- task: clean-build-folder
- 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}} \
-output {{.SRC_DIR}}/libtesseract.xcframework
status:
- test -f {{.SRC_DIR}}/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}}/libtesseract.xcframework
status:
- test -f {{.SRC_DIR}}/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 --disable-legacy --without-curl
status:
- test -f {{.TESSERACT_SRC}}/{{.ARCH_NAME}}/Makefile
autogen-libtesseract:
deps: [download-libtesseract]
cmds:
- |
cd {{.TESSERACT_SRC}}
patch configure.ac ../patch/optional_libcurl.patch
./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}}