diff --git a/CMakeLists.txt b/CMakeLists.txt index c5ecab372d..811243a199 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -372,6 +372,7 @@ add_definitions("-DCMAKE_BUILD") # packages # # ############################################################################## +include(CheckFunctions) if(SW_BUILD) find_package(SW REQUIRED) @@ -398,9 +399,19 @@ else() endif() if(NOT Leptonica_FOUND) message(FATAL_ERROR "Cannot find required library Leptonica. Quitting!") + else() + message(STATUS "Found leptonica version: ${Leptonica_VERSION}") endif(NOT Leptonica_FOUND) include_directories(${Leptonica_INCLUDE_DIRS}) + check_leptonica_tiff_support() + if (NOT LEPT_TIFF_RESULT EQUAL 0) + message(NOTICE "Leptonica was build without TIFF support! Disabling TIFF support...") + set(DISABLE_TIFF ON) + else() + message(STATUS "Leptonica was build with TIFF support.") + endif() + # Check for optional libraries. if(DISABLE_TIFF) set(HAVE_TIFFIO_H OFF) diff --git a/cmake/CheckFunctions.cmake b/cmake/CheckFunctions.cmake new file mode 100644 index 0000000000..0c15d8db10 --- /dev/null +++ b/cmake/CheckFunctions.cmake @@ -0,0 +1,49 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by +# applicable law or agreed to in writing, software distributed under the License +# is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the specific language +# governing permissions and limitations under the License. +# ############################################################################## +# +# macros and functions +# +# ############################################################################## + +# ############################################################################## +# FUNCTION check_leptonica_tiff_support +# ############################################################################## +function(check_leptonica_tiff_support) + # check if leptonica was build with tiff support set result to + # LEPT_TIFF_RESULT + set(TIFF_TEST + "#include \n" + "int main() {\n" + " l_uint8 *data = NULL;\n" + " size_t size = 0;\n" + " PIX* pix = pixCreate(3, 3, 4);\n" + " l_int32 ret_val = pixWriteMemTiff(&data, &size, pix, IFF_TIFF_G3);\n" + " pixDestroy(&pix);\n" + " lept_free(data);\n" + " return ret_val;}\n") + set(CMAKE_TRY_COMPILE_CONFIGURATION ${CMAKE_BUILD_TYPE}) + try_run( + LEPT_TIFF_RESULT + LEPT_TIFF_COMPILE + SOURCE_FROM_CONTENT tiff_test.cpp "${TIFF_TEST}" + CMAKE_FLAGS "-DINCLUDE_DIRECTORIES=${Leptonica_INCLUDE_DIRS}" + LINK_LIBRARIES ${Leptonica_LIBRARIES} + COMPILE_OUTPUT_VARIABLE + COMPILE_OUTPUT) + if(NOT LEPT_TIFF_COMPILE) + message(STATUS "COMPILE_OUTPUT: ${COMPILE_OUTPUT}") + message(STATUS "Leptonica_INCLUDE_DIRS: ${Leptonica_INCLUDE_DIRS}") + message(STATUS "Leptonica_LIBRARIES: ${Leptonica_LIBRARIES}") + message(STATUS "LEPT_TIFF_RESULT: ${LEPT_TIFF_RESULT}") + message(STATUS "LEPT_TIFF_COMPILE: ${LEPT_TIFF_COMPILE}") + message(WARNING "Failed to compile test") + endif() +endfunction(check_leptonica_tiff_support) + +# ##############################################################################