aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRosen Penev <rosenp@gmail.com>2020-07-04 14:09:49 -0700
committerRosen Penev <rosenp@gmail.com>2020-07-08 16:59:00 -0700
commitea5405bfa682827885ffbcbd1ccc3cd0d21eb1f1 (patch)
tree3bdc6efeb92edbe43557994a463b4ff1d1184c4a
parentb3000441dc7335a7b768cb7b36e615dd511be806 (diff)
tesseract: switch to CMake
Allows simplifying the Makefile. Also faster compilation. Added CMake patch to fix compilation. Signed-off-by: Rosen Penev <rosenp@gmail.com>
-rw-r--r--libs/leptonica/Makefile2
-rw-r--r--utils/tesseract/Makefile18
-rw-r--r--utils/tesseract/patches/010-cmake.patch44
3 files changed, 55 insertions, 9 deletions
diff --git a/libs/leptonica/Makefile b/libs/leptonica/Makefile
index dccbb504c..3fcad2d59 100644
--- a/libs/leptonica/Makefile
+++ b/libs/leptonica/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=leptonica
PKG_VERSION:=1.78.0
-PKG_RELEASE:=2
+PKG_RELEASE:=3
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://www.leptonica.org/source/
diff --git a/utils/tesseract/Makefile b/utils/tesseract/Makefile
index dc8d2a459..b3aebe5a0 100644
--- a/utils/tesseract/Makefile
+++ b/utils/tesseract/Makefile
@@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=tesseract
PKG_VERSION:=4.0.0
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/tesseract-ocr/tesseract/tar.gz/$(PKG_VERSION)?
@@ -19,12 +19,10 @@ PKG_LICENSE:=Apache-2.0
PKG_LICENSE_FILES:=LICENSE
PKG_BUILD_PARALLEL:=1
-PKG_FIXUP:=autoreconf
-PKG_INSTALL:=1
+CMAKE_BINARY_SUBDIR:=openwrt-build
include $(INCLUDE_DIR)/package.mk
-
-TARGET_LDFLAGS += -Wl,-rpath-link=$(STAGING_DIR)/usr/lib
+include $(INCLUDE_DIR)/cmake.mk
define Package/tesseract
MENU:=1
@@ -36,11 +34,17 @@ define Package/tesseract
endef
TARGET_CFLAGS:=$(filter-out -O%,$(TARGET_CFLAGS)) -O3
+
+CMAKE_OPTIONS += \
+ -DBUILD_TRAINING_TOOLS=OFF
+
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_INSTALL_DIR)/usr/include/tesseract $(1)/usr/include/
$(INSTALL_DIR) $(1)/usr/lib
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libtesseract.{a,so*} $(1)/usr/lib/
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libtesseract.so* $(1)/usr/lib/
+ $(INSTALL_DIR) $(1)/usr/lib/cmake
+ $(CP) $(PKG_INSTALL_DIR)/usr/cmake/*.cmake $(1)/usr/lib/cmake/
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/tesseract.pc $(1)/usr/lib/pkgconfig/
endef
@@ -50,8 +54,6 @@ define Package/tesseract/install
$(CP) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/bin/
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/lib*.so.* $(1)/usr/lib/
- $(INSTALL_DIR) $(1)/usr/share
- $(CP) $(PKG_INSTALL_DIR)/usr/share/* $(1)/usr/share/
endef
$(eval $(call BuildPackage,tesseract))
diff --git a/utils/tesseract/patches/010-cmake.patch b/utils/tesseract/patches/010-cmake.patch
new file mode 100644
index 000000000..5b77e57bf
--- /dev/null
+++ b/utils/tesseract/patches/010-cmake.patch
@@ -0,0 +1,44 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -224,41 +224,6 @@ set(tesseract_src ${tesseract_src}
+ src/api/pdfrenderer.cpp
+ )
+
+-if (WIN32)
+- if (MSVC)
+- include_directories(src/vs2010/tesseract)
+- set(tesseract_hdr
+- ${tesseract_hdr}
+- ${CMAKE_CURRENT_SOURCE_DIR}/src/vs2010/tesseract/resource.h)
+- set(tesseract_rsc ${CMAKE_BINARY_DIR}/vs2010/tesseract/libtesseract.rc)
+- set_source_files_properties(
+- ${CMAKE_CURRENT_SOURCE_DIR}/src/arch/dotproductsse.cpp
+- PROPERTIES COMPILE_DEFINITIONS __SSE4_1__)
+- set_source_files_properties(
+- ${CMAKE_CURRENT_SOURCE_DIR}/src/arch/intsimdmatrixsse.cpp
+- PROPERTIES COMPILE_DEFINITIONS __SSE4_1__)
+- set_source_files_properties(
+- ${CMAKE_CURRENT_SOURCE_DIR}/src/arch/dotproductavx.cpp
+- PROPERTIES COMPILE_FLAGS "/arch:AVX")
+- set_source_files_properties(
+- ${CMAKE_CURRENT_SOURCE_DIR}/src/arch/intsimdmatrixavx2.cpp
+- PROPERTIES COMPILE_FLAGS "/arch:AVX2")
+- endif()
+-else()
+- set_source_files_properties(
+- ${CMAKE_CURRENT_SOURCE_DIR}/src/arch/dotproductsse.cpp
+- PROPERTIES COMPILE_FLAGS "-msse4.1")
+- set_source_files_properties(
+- ${CMAKE_CURRENT_SOURCE_DIR}/src/arch/intsimdmatrixsse.cpp
+- PROPERTIES COMPILE_FLAGS "-msse4.1")
+- set_source_files_properties(
+- ${CMAKE_CURRENT_SOURCE_DIR}/src/arch/dotproductavx.cpp
+- PROPERTIES COMPILE_FLAGS "-mavx")
+- set_source_files_properties(
+- ${CMAKE_CURRENT_SOURCE_DIR}/src/arch/intsimdmatrixavx2.cpp
+- PROPERTIES COMPILE_FLAGS "-mavx2")
+-endif()
+-
+ add_library (libtesseract ${LIBRARY_TYPE} ${tesseract_src} ${tesseract_hdr}
+ ${tesseract_rsc}
+ )