From f4d9c5424041c228b4f48f8a323c40e203dd1687 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sl=C3=A1vek=20Banko?= Date: Sat, 18 Feb 2017 15:14:13 +0100 Subject: likscan: Prefer pkg-config for libsane detection MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Slávek Banko --- libkscan/ConfigureChecks.cmake | 76 +++++++++++++++++++++++------------------- 1 file changed, 42 insertions(+), 34 deletions(-) diff --git a/libkscan/ConfigureChecks.cmake b/libkscan/ConfigureChecks.cmake index a26c495d..79f66b2f 100644 --- a/libkscan/ConfigureChecks.cmake +++ b/libkscan/ConfigureChecks.cmake @@ -9,46 +9,54 @@ # ################################################# -if( NOT HAVE_SANE ) - message( STATUS "checking for 'sane'..." ) +if( NOT SANE_FOUND ) + pkg_search_module( SANE sane-backends ) endif( ) -# find sane-config -find_program( SANE_EXECUTABLE NAMES sane-config ) -if( NOT SANE_EXECUTABLE ) - tde_message_fatal( "sane-config is NOT found.\n sane library is installed?" ) -endif( ) +if( NOT SANE_FOUND ) + message( STATUS "checking for 'sane'..." ) -macro( __run_sane_config __type __var ) - execute_process( - COMMAND ${SANE_EXECUTABLE} --${__type} - OUTPUT_VARIABLE ${__var} - RESULT_VARIABLE __result - OUTPUT_STRIP_TRAILING_WHITESPACE ) - if( _result ) - tde_message_fatal( "Unable to run ${SANE_EXECUTABLE}!\n sane library is correctly installed?\n Path to sane-config is corect?" ) + # find sane-config + find_program( SANE_EXECUTABLE NAMES sane-config ) + if( NOT SANE_EXECUTABLE ) + tde_message_fatal( "sane-config is NOT found.\n sane library is installed?" ) endif( ) -endmacro( ) -__run_sane_config( version SANE_VERSION ) -__run_sane_config( cflags SANE_INCLUDE_DIRS ) -__run_sane_config( libs SANE_LIBRARIES ) + macro( __run_sane_config __type __var ) + execute_process( + COMMAND ${SANE_EXECUTABLE} --${__type} + OUTPUT_VARIABLE ${__var} + RESULT_VARIABLE __result + OUTPUT_STRIP_TRAILING_WHITESPACE ) + if( _result ) + tde_message_fatal( "Unable to run ${SANE_EXECUTABLE}!\n sane library is correctly installed?\n Path to sane-config is corect?" ) + endif( ) + endmacro( ) -# cleanup -if( SANE_INCLUDE_DIRS ) - string( REGEX REPLACE "(^| )-I" ";" SANE_INCLUDE_DIRS "${SANE_INCLUDE_DIRS}" ) -endif( ) -if( SANE_LIBRARIES ) - ## remove all spaces and replace whitespace with ';' - string( REGEX REPLACE "[ ]+" ";" SANE_LIBRARIES "${SANE_LIBRARIES}" ) - ## remove all non-library information - string( REGEX REPLACE ";[-][^l]([^ ;])+" "" SANE_LIBRARIES "${SANE_LIBRARIES}" ) - ## remove multiple ';' - string( REGEX REPLACE "[;]+" ";" SANE_LIBRARIES "${SANE_LIBRARIES}" ) - ## remove '-l' - string( REGEX REPLACE "-l" "" SANE_LIBRARIES "${SANE_LIBRARIES}" ) -endif( ) + __run_sane_config( version SANE_VERSION ) + __run_sane_config( cflags SANE_INCLUDE_DIRS ) + __run_sane_config( libs SANE_LIBRARIES ) -if( NOT HAVE_SANE ) + # cleanup + if( SANE_INCLUDE_DIRS ) + string( REGEX REPLACE "(^| )-I" ";" SANE_INCLUDE_DIRS "${SANE_INCLUDE_DIRS}" ) + else( ) + set( SANE_INCLUDE_DIRS "/usr/include" ) + endif( ) + if( SANE_LIBRARIES ) + ## remove all spaces and replace whitespace with ';' + string( REGEX REPLACE "[ ]+" ";" SANE_LIBRARIES "${SANE_LIBRARIES}" ) + ## remove all non-library information + string( REGEX REPLACE ";[-][^l]([^ ;])+" "" SANE_LIBRARIES "${SANE_LIBRARIES}" ) + ## remove multiple ';' + string( REGEX REPLACE "[;]+" ";" SANE_LIBRARIES "${SANE_LIBRARIES}" ) + ## remove '-l' + string( REGEX REPLACE "-l" "" SANE_LIBRARIES "${SANE_LIBRARIES}" ) + endif( ) message( STATUS " found 'sane', version ${SANE_VERSION}" ) + + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args( SANE DEFAULT_MSG + SANE_LIBRARIES + SANE_INCLUDE_DIRS ) endif( ) -- cgit v1.2.3