tesseract: switch to CMake
authorRosen Penev <redacted>
Sat, 4 Jul 2020 21:09:49 +0000 (14:09 -0700)
committerRosen Penev <redacted>
Wed, 8 Jul 2020 23:59:00 +0000 (16:59 -0700)
Allows simplifying the Makefile. Also faster compilation.

Added CMake patch to fix compilation.

Signed-off-by: Rosen Penev <redacted>
libs/leptonica/Makefile
utils/tesseract/Makefile
utils/tesseract/patches/010-cmake.patch [new file with mode: 0644]

index dccbb504cc805f261ca3032959b9ffd6a9a096a4..3fcad2d59c92cafefe3d2186418614e21c796b66 100644 (file)
@@ -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/
index dc8d2a459ebad71e6d71d9188ce03223e9681d60..b3aebe5a0d7662c69c41d50dd9c139b1dee2005f 100644 (file)
@@ -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 (file)
index 0000000..5b77e57
--- /dev/null
@@ -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}
+     )
git clone https://git.99rst.org/PROJECT