From efcdd889254fc98314dd48854d50e90aa21e53c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sl=C3=A1vek=20Banko?= Date: Sun, 26 Mar 2017 15:58:46 +0200 Subject: Initial cmake conversion 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 8b12682035e2ae92a29a9ce12abc5fbcf38b1192) --- ConfigureChecks.cmake | 264 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 261 insertions(+), 3 deletions(-) (limited to 'ConfigureChecks.cmake') diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake index 00a246ce..a7f72d95 100644 --- a/ConfigureChecks.cmake +++ b/ConfigureChecks.cmake @@ -7,6 +7,103 @@ # ################################################# +# required stuff +tde_setup_architecture_flags( ) + +include(TestBigEndian) +test_big_endian(WORDS_BIGENDIAN) + +if( NOT CMAKE_ARCHITECTURE ) + execute_process( + COMMAND ${CMAKE_C_COMPILER} -dumpmachine + OUTPUT_VARIABLE CMAKE_ARCHITECTURE + ERROR_VARIABLE CMAKE_ARCHITECTURE + OUTPUT_STRIP_TRAILING_WHITESPACE + ERROR_STRIP_TRAILING_WHITESPACE ) + set( CMAKE_ARCHITECTURE "${CMAKE_ARCHITECTURE}" CACHE INTERNAL "" FORCE ) + message( STATUS "Detected ${CMAKE_ARCHITECTURE} target architecture" ) +endif( NOT CMAKE_ARCHITECTURE ) + +if( ${CMAKE_ARCHITECTURE} MATCHES "i.86" ) + if( NOT ASM_COMPILER_VERSION ) + message( STATUS "Checking binutils version" ) + execute_process( + COMMAND echo + COMMAND as -v + OUTPUT_VARIABLE ASM_VERSION + ERROR_VARIABLE ASM_VERSION + ) + string(REGEX REPLACE ".*version ([0-9][^ \n]*).*" "\\1" ASM_COMPILER_VERSION ${ASM_VERSION} ) + set( ASM_COMPILER_VERSION "${ASM_COMPILER_VERSION}" CACHE INTERNAL "" FORCE ) + message( STATUS "Checking binutils version - ${ASM_COMPILER_VERSION}" ) + endif( NOT ASM_COMPILER_VERSION ) + + if( NOT MMX_SUPPORT ) + message( STATUS "Performing test MMX_SUPPORT" ) + if( ${ASM_COMPILER_VERSION} VERSION_LESS "2.10" ) + message( STATUS "Performing test MMX_SUPPORT - Failed" ) + else( ) + message( STATUS "Performing test MMX_SUPPORT - Success" ) + set( MMX_SUPPORT 1 CACHE INTERNAL "" FORCE ) + endif( ) + endif( NOT MMX_SUPPORT ) + + check_c_source_compiles( " + int main() { + #if defined(__GNUC__) && defined(__i386__) + __asm__(\"movups %xmm0, (%esp)\"); + #else + #error Not gcc on x86 + #endif + return 0; }" + HAVE_X86_SSE + ) +endif( ${CMAKE_ARCHITECTURE} MATCHES "i.86" ) + +message( STATUS "Cheking system type - ${CMAKE_SYSTEM_NAME}" ) +if( ${CMAKE_SYSTEM_NAME} MATCHES "AIX" ) + set( OS_AIX 1 ) +elseif( ${CMAKE_SYSTEM_NAME} MATCHES "Linux" ) + set( OS_Linux 1 ) +elseif( ${CMAKE_SYSTEM_NAME} MATCHES "OpenBSD|FreeBSD|DragonFly|NetBSD" ) + set( OS_BSD 1 ) +elseif( ${CMAKE_SYSTEM_NAME} MATCHES "SunOS" ) + set( OS_SunOS 1 ) +elseif( ${CMAKE_SYSTEM_NAME} MATCHES "IRIX" ) + set( OS_IRIX 1 ) +elseif( ${CMAKE_SYSTEM_NAME} MATCHES "HPUX" ) + set( OS_HPUX 1 ) +else( ) + message( WARNING "Unknown system type!" ) +endif( ) + +find_package( TQt ) +find_package( TDE ) + + +##### check headers ############################# + +check_include_file( stdint.h HAVE_STDINT_H ) +check_include_file( inttypes.h HAVE_INTTYPES_H ) + +check_include_file( soundcard.h HAVE_SOUNDCARD_H ) +check_include_file( sys/soundcard.h HAVE_SYS_SOUNDCARD_H ) +check_include_file( machine/soundcard.h HAVE_MACHINE_SOUNDCARD_H ) + + +##### check libraries ########################### + +set( DL_LIBRARIES dl ) +check_library_exists( ${DL_LIBRARIES} dlopen /lib HAVE_LIBDL ) +if( NOT HAVE_LIBDL ) + unset( DL_LIBRARIES ) + check_function_exists( dlopen HAVE_DLOPEN ) + if( HAVE_DLOPEN ) + set( HAVE_LIBDL 1 ) + endif( HAVE_DLOPEN ) +endif( NOT HAVE_LIBDL ) + + # ALSA if( WITH_ALSA ) find_package( ALSA ) @@ -17,6 +114,167 @@ if( WITH_ALSA ) endif( WITH_ALSA ) -# required stuff -find_package( TQt ) -find_package( TDE ) +# aRts +if( BUILD_ARTS OR BUILD_JUK OR BUILD_KABOODLE OR BUILD_KREC OR BUILD_NOATUN ) + pkg_search_module( ARTS arts ) + if( ARTS_FOUND ) + set( ARTS_MCOPIDL_EXECUTABLE ${ARTS_PREFIX}/bin/mcopidl ) + set( HAVE_ARTS 1 ) + else( ARTS_FOUND ) + tde_message_fatal( "aRts is required, but not found on your system" ) + endif( ARTS_FOUND ) +endif( BUILD_ARTS OR BUILD_JUK OR BUILD_KABOODLE OR BUILD_KREC OR BUILD_NOATUN ) + +if( BUILD_KAUDIOCREATOR OR BUILD_KREC OR BUILD_KSCD OR (BUILD_TDEIOSLAVE AND WITH_CDPARANOIA) ) + pkg_search_module( ARTSC artsc ) + if( NOT ARTSC_FOUND ) + tde_message_fatal( "aRtsC is required, but not found on your system" ) + endif( NOT ARTSC_FOUND ) +endif( BUILD_KAUDIOCREATOR OR BUILD_KREC OR BUILD_KSCD OR (BUILD_TDEIOSLAVE AND WITH_CDPARANOIA) ) + +if( (BUILD_ARTS AND WITH_ARTS_AKODE) OR BUILD_JUK ) + pkg_search_module( AKODE akode ) + if( NOT AKODE_FOUND ) + tde_message_fatal( "akode is required, but not found on your system" ) + endif( ) + set( HAVE_AKODE 1 ) +endif( (BUILD_ARTS AND WITH_ARTS_AKODE) OR BUILD_JUK ) + + +if( BUILD_ARTS ) + + pkg_search_module( GLIB2 glib-2.0 ) + if( GLIB2_FOUND ) + pkg_search_module( GTHREAD2 gthread-2.0 ) + if( NOT GTHREAD2_FOUND ) + tde_message_fatal( "gthread-2.0 are required, but not found on your system" ) + endif( NOT GTHREAD2_FOUND ) + else( GLIB2_FOUND ) + tde_message_fatal( "glib-2.0 are required, but not found on your system" ) + endif( GLIB2_FOUND ) + + if( WITH_ARTS_AUDIOFILE ) + pkg_search_module( AUDIOFILE audiofile ) + if( NOT AUDIOFILE_FOUND ) + tde_message_fatal( "audifile is requested, but not found on your system" ) + endif( ) + endif( WITH_ARTS_AUDIOFILE ) + + if( WITH_ARTS_XINE ) + pkg_search_module( XINE libxine ) + pkg_search_module( XEXT xext ) + if( NOT XINE_FOUND ) + tde_message_fatal( "xine is requested, but not found on your system" ) + endif( ) + endif( WITH_ARTS_XINE ) + +endif( BUILD_ARTS ) + + +# CDDA Paranoia +if( WITH_CDPARANOIA ) + if( CDPARANOIA_INCLUDE_DIR AND CDPARANOIA_LIBRARIES ) + set( CDPARANOIA_FOUND TRUE ) + else( ) + message( STATUS "Checking for CDParanonia" ) + find_path( CDPARANOIA_INCLUDE_DIR cdda_interface.h PATH_SUFFIXES cdda ) + find_library( CDPARANOIA_LIBRARY NAMES cdda_paranoia ) + find_library( CDPARANOIA_IF_LIBRARY NAMES cdda_interface ) + if( CDPARANOIA_LIBRARY AND CDPARANOIA_IF_LIBRARY ) + set( CDPARANOIA_LIBRARIES ${CDPARANOIA_LIBRARY} ${CDPARANOIA_IF_LIBRARY} "m" CACHE INTERNAL "" FORCE ) + endif( CDPARANOIA_LIBRARY AND CDPARANOIA_IF_LIBRARY ) + + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args( CDPARANOIA DEFAULT_MSG + CDPARANOIA_LIBRARIES + CDPARANOIA_INCLUDE_DIR ) + + if( CDPARANOIA_FOUND ) + check_c_source_compiles( " + #include + int main() { + struct cdrom_drive device; + device.cdda_device_name = 0; + return 0; + }" + CDPARANOIA_DEVICE_NAME ) + if( NOT CDPARANOIA_DEVICE_NAME ) + tde_message_fatal( "CDParanoia is too old and can not be used" ) + endif( ) + endif( CDPARANOIA_FOUND ) + endif( ) + + if( NOT CDPARANOIA_FOUND ) + tde_message_fatal( "CDParanoia is requested, but not found on your system" ) + endif( NOT CDPARANOIA_FOUND ) + set( CDDA_PARANOIA 1 ) +endif( WITH_CDPARANOIA ) + + +# FLAC +if( WITH_FLAC ) + pkg_search_module( FLAC vorbis ) + if( NOT FLAC_FOUND ) + tde_message_fatal( "FLAC is requested, but not found on your system" ) + endif( ) +endif( WITH_FLAC ) + + +# OGG/Vorbis +if( WITH_VORBIS ) + + pkg_search_module( OGG ogg ) + if( NOT OGG_FOUND ) + tde_message_fatal( "Ogg/Vorbis support are requested, but `libogg` not found" ) + endif( ) + + pkg_search_module( VORBIS vorbis ) + if( NOT VORBIS_FOUND ) + tde_message_fatal( "Ogg/Vorbis support are requested, but `libvorbis` not found" ) + endif( ) + + pkg_search_module( VORBISFILE vorbisfile ) + if( NOT VORBISFILE_FOUND ) + tde_message_fatal( "Ogg/Vorbis support are requested, but `libvorbisfile` not found" ) + endif( ) + + pkg_search_module( VORBISENC vorbisenc ) + if( NOT VORBISENC_FOUND ) + tde_message_fatal( "Ogg/Vorbis support are requested, but `libvorbisenc` not found" ) + endif( ) + + set( HAVE_VORBIS 1 ) + set( HAVE_OGG_VORBIS 1 ) + +endif( WITH_VORBIS ) + + +# LAME +if( WITH_LAME ) + + check_include_file( lame/lame.h HAVE_LAME_H ) + if( NOT HAVE_LAME_H ) + tde_message_fatal( "lame is requested, but not found on your system" ) + endif( ) + check_library_exists( mp3lame lame_init "" HAVE_LAME ) + if( NOT HAVE_LAME ) + tde_message_fatal( "mp3lame is requested, but not found on your system" ) + endif( ) + set( LAME_LIBRARIES mp3lame CACHE INTERNAL "" FORCE ) + +endif( WITH_LAME ) + + +# taglib +if( BUILD_JUK OR WITH_TAGLIB ) + + pkg_search_module( TAGLIB taglib ) + if( NOT TAGLIB_FOUND ) + tde_message_fatal( "taglib is required, but not found on your system" ) + endif( NOT TAGLIB_FOUND ) + + tde_save_and_set( CMAKE_REQUIRED_INCLUDES ${TAGLIB_INCLUDE_DIRS} ) + check_include_file_cxx( taglib/mpcfile.h HAVE_TAGLIB_MPC_H ) + tde_restore( CMAKE_REQUIRED_INCLUDES ) + +endif( BUILD_JUK OR WITH_TAGLIB ) -- cgit v1.2.1