You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tellico/ConfigureChecks.cmake

213 lines
5.9 KiB

#################################################
#
# (C) 2016 Slávek Banko
# slavek.banko (AT) axis.cz
#
# Improvements and feedback are welcome
#
# This file is released under GPL >= 2
#
#################################################
##### check for gcc visibility support #########
# FIXME
# This should check for [T]Qt3 visibility support
if( WITH_GCC_VISIBILITY )
if( NOT UNIX )
tde_message_fatal(FATAL_ERROR "\ngcc visibility support was requested, but your system is not *NIX" )
endif( NOT UNIX )
set( __KDE_HAVE_GCC_VISIBILITY 1 )
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden -fvisibility-inlines-hidden")
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden -fvisibility-inlines-hidden")
endif( WITH_GCC_VISIBILITY )
##### set architecture flags ####################
tde_setup_architecture_flags( )
##### required stuff ############################
find_package( TQt )
find_package( TDE )
set( ENV{PKG_CONFIG_PATH} "${PKG_CONFIG_PATH}:$ENV{PKG_CONFIG_PATH}:${LIB_INSTALL_DIR}/pkgconfig" )
##### check system configuration ################
check_symbol_exists( strdup "string.h" HAVE_STRDUP_DECL )
check_type_size( ushort USHORT )
check_type_size( boolean BOOLEAN )
check_type_size( "int" SIZEOF_INT )
check_type_size( "long" SIZEOF_LONG )
check_type_size( "short" SIZEOF_SHORT )
check_type_size( "unsigned char" SIZEOF_UNSIGNED_CHAR )
check_type_size( "unsigned int" SIZEOF_UNSIGNED_INT )
check_type_size( "unsigned long" SIZEOF_UNSIGNED_LONG )
check_type_size( "unsigned short" SIZEOF_UNSIGNED_SHORT )
pkg_search_module( LIBXML libxml-2.0>=2.6.0 )
if( NOT LIBXML_FOUND )
tde_message_fatal( "libxml at least 2.6.0 is required, but not found on your system" )
endif( NOT LIBXML_FOUND )
pkg_search_module( LIBXSLT libxslt>=1.0.19 )
if( NOT LIBXSLT_FOUND )
tde_message_fatal( "libxslt at least 1.0.19 is required, but not found on your system" )
endif( NOT LIBXSLT_FOUND )
pkg_search_module( TAGLIB taglib )
if( TAGLIB_FOUND )
set( HAVE_TAGLIB 1 )
endif( TAGLIB_FOUND )
pkg_search_module( YAZ yaz )
if( YAZ_FOUND )
set( HAVE_YAZ 1 )
endif( YAZ_FOUND )
if( WITH_LIBKCDDB )
message( "-- checking for 'libkcddb'" )
find_path(
LIBKCDDB_INCLUDE_DIR
cddb.h
PATHS
${TDE_INCLUDE_DIR}/tde/libkcddb
${TDE_INCLUDE_DIR}/libkcddb
NO_DEFAULT_PATH
)
find_library(
LIBKCDDB_LIBRARY
kcddb
PATHS
${TDE_LIB_DIR}
${TQT_LIBRARY_DIRS}
)
if( LIBKCDDB_LIBRARY )
get_filename_component( LIBKCDDB_LIBRARY_DIR ${LIBKCDDB_LIBRARY} PATH CACHE )
endif( )
if( NOT LIBKCDDB_INCLUDE_DIR OR NOT LIBKCDDB_LIBRARY_DIR )
tde_message_fatal( "libkcddb is required, but was not found on your system" )
else( )
set( HAVE_KCDDB 1 )
endif( )
endif( WITH_LIBKCDDB )
if( WITH_LIBKCAL )
message( "-- checking for 'libkcal'" )
find_path(
LIBKCAL_INCLUDE_DIR
kcalversion.h
PATHS
${TDE_INCLUDE_DIR}/libkcal
${TDE_INCLUDE_DIR}
${TQT_INCLUDE_DIRS}
)
find_library(
LIBKCAL_LIBRARY
kcal
PATHS
${TDE_LIB_DIR}
${TQT_LIBRARY_DIRS}
)
if( LIBKCAL_LIBRARY )
get_filename_component( LIBKCAL_LIBRARY_DIR ${LIBKCAL_LIBRARY} PATH CACHE )
endif( )
if( NOT LIBKCAL_INCLUDE_DIR OR NOT LIBKCAL_LIBRARY_DIR )
tde_message_fatal( "libkcal is required, but was not found on your system" )
else( )
set( HAVE_KCAL 1 )
endif( )
endif( WITH_LIBKCAL )
if( WITH_LIBBTPARSE )
check_library_exists( btparse bt_initialize "" HAVE_LIBBTPARSE )
if( NOT HAVE_LIBBTPARSE )
tde_message_fatal( "libbtparse is required, but was not found on your system" )
endif( NOT HAVE_LIBBTPARSE )
set( BTPARSE_LIBRARIES btparse )
else( )
set( BTPARSE_LIBRARIES btparse-static )
endif( WITH_LIBBTPARSE )
if( WITH_SAX )
set( SAX_SUPPORT 1 CACHE INTERNAL "" )
endif( WITH_SAX )
if( BUILD_AMAZON_SUPPORT )
set( AMAZON_SUPPORT 1 CACHE INTERNAL "" )
endif( BUILD_AMAZON_SUPPORT )
if( BUILD_IMDB_SUPPORT )
set( IMDB_SUPPORT 1 CACHE INTERNAL "" )
endif( BUILD_IMDB_SUPPORT )
if( BUILD_CDTEXT_SUPPORT )
set( USE_CDTEXT 1 CACHE INTERNAL "" )
endif( BUILD_CDTEXT_SUPPORT )
if( BUILD_OOO_SUPPORT )
# FIXME - add configure checks for LibreOffice/OpenOffice.org
#set( WITH_OOO 1 CACHE INTERNAL "" )
tde_message_fatal( "CMake build with LibreOffice/OpenOffice.org support is not yet complete" )
endif( BUILD_OOO_SUPPORT )
if( BUILD_EXEMPI_SUPPORT )
pkg_search_module( EXEMPI exempi-2.0>=1.99.0 )
if( NOT EXEMPI_FOUND )
tde_message_fatal( "exempi at least 1.99.0 is required, but not found on your system" )
else( )
set( HAVE_EXEMPI 1 CACHE INTERNAL "" )
endif( )
endif( BUILD_EXEMPI_SUPPORT )
if( BUILD_POPPLER_SUPPORT )
pkg_search_module( POPPLER poppler-tqt>=0.5 )
if( NOT POPPLER_FOUND )
tde_message_fatal( "poppler-tqt at least 0.5 is required, but not found on your system" )
else( )
set( HAVE_POPPLER 1 CACHE INTERNAL "" )
endif( )
endif( BUILD_POPPLER_SUPPORT )
if( BUILD_WEBCAM_SUPPORT )
check_include_file( "libv4l1-videodev.h" HAVE_LIBV4L1_VIDEODEV_H )
if( HAVE_LIBV4L1_VIDEODEV_H )
set( ENABLE_WEBCAM 1 CACHE INTERNAL "" )
set( VIDEODEV_HEADER "libv4l1-videodev.h" CACHE INTERNAL "" )
else( )
check_include_file( "linux/videodev.h" HAVE_VIDEODEV_H )
if( HAVE_VIDEODEV_H )
set( ENABLE_WEBCAM 1 CACHE INTERNAL "" )
set( VIDEODEV_HEADER "linux/videodev.h" CACHE INTERNAL "" )
else( )
tde_message_fatal( "libv4l1-videodev.h or linux/videodev.h is required, but not found on your system" )
endif( )
endif( )
set( WEBCAM_LIBRARIES barcode-static )
endif( BUILD_WEBCAM_SUPPORT )
##### translations ##############################
if( BUILD_TRANSLATIONS )
include( FindGettext )
if( GETTEXT_FOUND )
set( MSGFMT_EXECUTABLE ${GETTEXT_MSGFMT_EXECUTABLE}
CACHE FILEPATH "path to msgfmt executable" )
endif( GETTEXT_FOUND )
if( NOT MSGFMT_EXECUTABLE )
tde_message_fatal( "msgfmt is required but was not found on your system." )
endif( NOT MSGFMT_EXECUTABLE )
endif( BUILD_TRANSLATIONS )