Prefer pkg-config for gpgme and gpg-error detection.

Use LARGEFILES_DEFINITIONS instead of hard-coded _FILE_OFFSET_BITS=64.

Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
pull/74/head
Slávek Banko 2 years ago
parent 4d5c3fc1cd
commit 29a136eee1
Signed by: SlavekB
GPG Key ID: 608F5293A04BE668

@ -67,11 +67,13 @@ 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( )
# check for gpgme
pkg_search_module( GPGME gpgme )
if( NOT GPGME_FOUND )
# find gpgme-config
find_program( GPGME_EXECUTABLE NAMES gpgme-config )
@ -79,12 +81,6 @@ if( BUILD_LIBTDENETWORK OR BUILD_CERTMANAGER OR BUILD_KMAIL OR BUILD_KADDRESSBOO
tde_message_fatal( "gpgme-config was NOT found.\n gpgme library is installed?" )
endif( )
# 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( )
macro( __run_gpgme_config __type __var )
execute_process(
COMMAND ${GPGME_EXECUTABLE} --${__type}
@ -96,6 +92,29 @@ if( BUILD_LIBTDENETWORK OR BUILD_CERTMANAGER OR BUILD_KMAIL OR BUILD_KADDRESSBOO
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( )
if( GPGME_LIBRARIES )
string( REGEX REPLACE "(^| +)-l" ";" GPGME_LIBRARIES "${GPGME_LIBRARIES}" )
endif( )
endif()
# check for gpg-error
pkg_search_module( GPGERR gpg-error )
if( NOT GPGERR_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( )
macro( __run_gpgerr_config __type __var )
execute_process(
COMMAND ${GPG_ERR_EXECUTABLE} --${__type}
@ -107,48 +126,31 @@ if( BUILD_LIBTDENETWORK OR BUILD_CERTMANAGER OR BUILD_KMAIL OR BUILD_KADDRESSBOO
endif( )
endmacro( )
__run_gpgme_config( version GPGME_VERSION )
__run_gpgme_config( cflags GPGME_INCLUDE_DIRS )
__run_gpgme_config( libs GPGME_LIBRARIES )
__run_gpgerr_config( version GPGERR_VERSION )
__run_gpgerr_config( cflags GPGERR_INCLUDE_DIRS )
__run_gpgerr_config( libs GPGERR_LIBRARIES )
# 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 )
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 "" )
# NOTE: assume we have largefile support (need for gpgme)
# FIXME: to be sure, we must check it
add_definitions( -D_FILE_OFFSET_BITS=64 )
if( NOT HAVE_GPGME_0_4_BRANCH )
message( STATUS " found 'gpgme', version ${GPGME_VERSION}" )
endif( )
# 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}")

Loading…
Cancel
Save