From afb8ab85263204810178b99d412e465fb7ae3933 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sl=C3=A1vek=20Banko?= Date: Tue, 18 Oct 2022 17:29:04 +0200 Subject: [PATCH] Prefer pkg-config for gpgme and gpg-error detection. Use LARGEFILES_DEFINITIONS instead of hard-coded _FILE_OFFSET_BITS=64. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Slávek Banko (cherry picked from commit 29a136eee18797885e199733bc3150ca4c4d0db2) --- ConfigureChecks.cmake | 130 +++++++++++++++++++++--------------------- 1 file changed, 66 insertions(+), 64 deletions(-) diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake index c025f5ee..67500f42 100644 --- a/ConfigureChecks.cmake +++ b/ConfigureChecks.cmake @@ -67,88 +67,90 @@ if( WITH_GNOKII AND (BUILD_KADDRESSBOOK OR BUILD_KMOBILE) ) endif( ) -if( BUILD_LIBTDENETWORK OR BUILD_CERTMANAGER OR BUILD_KMAIL OR BUILD_KADDRESSBOOK OR BUILD_KONTACT ) +if( (BUILD_LIBTDENETWORK OR BUILD_CERTMANAGER OR BUILD_KMAIL OR BUILD_KADDRESSBOOK OR BUILD_KONTACT) AND NOT HAVE_GPGME_0_4_BRANCH ) - if( NOT HAVE_GPGME_0_4_BRANCH ) - message( STATUS "checking for 'gpgme'" ) - endif( ) + message( STATUS "checking for 'gpgme'" ) - # find gpgme-config - find_program( GPGME_EXECUTABLE NAMES gpgme-config ) - if( NOT GPGME_EXECUTABLE ) - tde_message_fatal( "gpgme-config was NOT found.\n gpgme library is installed?" ) - endif( ) + # check for gpgme + pkg_search_module( GPGME gpgme ) + if( NOT GPGME_FOUND ) - # find gpg-error-config - find_program( GPG_ERR_EXECUTABLE NAMES gpgrt-config gpg-error-config ) - if( NOT GPG_ERR_EXECUTABLE ) - tde_message_fatal( "gpgrt-config or gpg-error-config was NOT found.\n gpg-error library is installed?" ) - endif( ) + # find gpgme-config + find_program( GPGME_EXECUTABLE NAMES gpgme-config ) + if( NOT GPGME_EXECUTABLE ) + tde_message_fatal( "gpgme-config was NOT found.\n gpgme library is installed?" ) + endif( ) - macro( __run_gpgme_config __type __var ) - execute_process( - COMMAND ${GPGME_EXECUTABLE} --${__type} - OUTPUT_VARIABLE ${__var} - RESULT_VARIABLE __result - OUTPUT_STRIP_TRAILING_WHITESPACE ) - if( _result ) - tde_message_fatal( "Unable to run ${GPGME_EXECUTABLE}!\n gpgme library incorrectly installed?\n Path to gpgme-config incorrect?" ) + macro( __run_gpgme_config __type __var ) + execute_process( + COMMAND ${GPGME_EXECUTABLE} --${__type} + OUTPUT_VARIABLE ${__var} + RESULT_VARIABLE __result + OUTPUT_STRIP_TRAILING_WHITESPACE ) + if( _result ) + tde_message_fatal( "Unable to run ${GPGME_EXECUTABLE}!\n gpgme library incorrectly installed?\n Path to gpgme-config incorrect?" ) + endif( ) + endmacro( ) + + __run_gpgme_config( version GPGME_VERSION ) + __run_gpgme_config( cflags GPGME_INCLUDE_DIRS ) + __run_gpgme_config( libs GPGME_LIBRARIES ) + + if( GPGME_INCLUDE_DIRS ) + string( REGEX REPLACE "(^| +)-I" ";" GPGME_INCLUDE_DIRS "${GPGME_INCLUDE_DIRS}" ) endif( ) - endmacro( ) - - macro( __run_gpgerr_config __type __var ) - execute_process( - COMMAND ${GPG_ERR_EXECUTABLE} --${__type} - OUTPUT_VARIABLE ${__var} - RESULT_VARIABLE __result - OUTPUT_STRIP_TRAILING_WHITESPACE ) - if( _result ) - tde_message_fatal( "Unable to run ${GPG_ERR_EXECUTABLE}!\n gpg-error library incorrectly installed?\n Path to gpgme-config are incorrect?" ) + if( GPGME_LIBRARIES ) + string( REGEX REPLACE "(^| +)-l" ";" GPGME_LIBRARIES "${GPGME_LIBRARIES}" ) endif( ) - endmacro( ) - __run_gpgme_config( version GPGME_VERSION ) - __run_gpgme_config( cflags GPGME_INCLUDE_DIRS ) - __run_gpgme_config( libs GPGME_LIBRARIES ) + endif() - __run_gpgerr_config( version GPGERR_VERSION ) - __run_gpgerr_config( cflags GPGERR_INCLUDE_DIRS ) - __run_gpgerr_config( libs GPGERR_LIBRARIES ) + # check for gpg-error + pkg_search_module( GPGERR gpg-error ) + if( NOT GPGERR_FOUND ) - # cleanup - if( GPGME_INCLUDE_DIRS ) - string( REGEX REPLACE "(^| +)-I" ";" GPGME_INCLUDE_DIRS "${GPGME_INCLUDE_DIRS}" ) - endif( ) - if( GPGME_LIBRARIES ) - string( REGEX REPLACE "(^| +)-l" ";" GPGME_LIBRARIES "${GPGME_LIBRARIES}" ) - endif( ) - if( GPGERR_INCLUDE_DIRS ) - string( REGEX REPLACE "(^| +)-I" ";" GPGERR_INCLUDE_DIRS "${GPGERR_INCLUDE_DIRS}" ) - endif( ) - if( GPGERR_LIBRARIES ) - string( REGEX REPLACE "(^| +)-l" ";" GPGERR_LIBRARIES "${GPGERR_LIBRARIES}" ) - endif( ) - set( GPGME_INCLUDE_DIRS "${GPGME_INCLUDE_DIRS};${GPGERR_INCLUDE_DIRS}" CACHE INTERNAL "" FORCE ) - set( GPGME_LIBRARIES "${GPGME_LIBRARIES};${GPGERR_LIBRARIES}" CACHE INTERNAL "" FORCE ) + # find gpg-error-config + find_program( GPG_ERR_EXECUTABLE NAMES gpgrt-config gpg-error-config ) + if( NOT GPG_ERR_EXECUTABLE ) + tde_message_fatal( "gpgrt-config or gpg-error-config was NOT found.\n gpg-error library is installed?" ) + endif( ) - # assuming that all newer system have gpgme >= 0.4 - set( HAVE_GPGME_0_4_BRANCH 1 CACHE INTERNAL "" ) + macro( __run_gpgerr_config __type __var ) + execute_process( + COMMAND ${GPG_ERR_EXECUTABLE} --${__type} + OUTPUT_VARIABLE ${__var} + RESULT_VARIABLE __result + OUTPUT_STRIP_TRAILING_WHITESPACE ) + if( _result ) + tde_message_fatal( "Unable to run ${GPG_ERR_EXECUTABLE}!\n gpg-error library incorrectly installed?\n Path to gpgme-config are incorrect?" ) + endif( ) + endmacro( ) + + __run_gpgerr_config( version GPGERR_VERSION ) + __run_gpgerr_config( cflags GPGERR_INCLUDE_DIRS ) + __run_gpgerr_config( libs GPGERR_LIBRARIES ) + + if( GPGERR_INCLUDE_DIRS ) + string( REGEX REPLACE "(^| +)-I" ";" GPGERR_INCLUDE_DIRS "${GPGERR_INCLUDE_DIRS}" ) + endif( ) + if( GPGERR_LIBRARIES ) + string( REGEX REPLACE "(^| +)-l" ";" GPGERR_LIBRARIES "${GPGERR_LIBRARIES}" ) + endif( ) - # NOTE: assume we have largefile support (need for gpgme) - # FIXME: to be sure, we must check it - add_definitions( -D_FILE_OFFSET_BITS=64 ) + endif() - if( NOT HAVE_GPGME_0_4_BRANCH ) - message( STATUS " found 'gpgme', version ${GPGME_VERSION}" ) - endif( ) + # assuming that all newer system have gpgme >= 0.4 + set( GPGME_INCLUDE_DIRS "${GPGME_INCLUDE_DIRS};${GPGERR_INCLUDE_DIRS}" CACHE INTERNAL "" FORCE ) + set( GPGME_LIBRARIES "${GPGME_LIBRARIES};${GPGERR_LIBRARIES}" CACHE INTERNAL "" FORCE ) + set( HAVE_GPGME_0_4_BRANCH 1 CACHE INTERNAL "" ) + message( STATUS " found 'gpgme', version ${GPGME_VERSION}" ) # check for various GPGME features tde_save( CMAKE_CXX_FLAGS ) tde_save( CMAKE_REQUIRED_INCLUDES ) tde_save( CMAKE_REQUIRED_LIBRARIES ) string( REGEX REPLACE "-include tqt.h" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" ) - # See FIXME above regarding -D_FILE_OFFSET_BITS=64 - set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_FILE_OFFSET_BITS=64") + set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${LARGEFILES_DEFINITIONS}") set( CMAKE_REQUIRED_INCLUDES "${GPGME_INCLUDE_DIRS}") set( CMAKE_REQUIRED_LIBRARIES "${GPGME_LIBRARIES}")