Add more find_package stuff

This commit is contained in:
Berkus Decker 2017-11-23 23:45:38 +02:00
parent 7d07292055
commit f847121da7
3 changed files with 100 additions and 16 deletions

View File

@ -21,22 +21,25 @@ find_package(LibZip REQUIRED)
find_package(OpenSSL REQUIRED) find_package(OpenSSL REQUIRED)
find_package(LibLZMA REQUIRED) find_package(LibLZMA REQUIRED)
find_package(GTK3 3.0 REQUIRED gtk) find_package(GTK3 3.0 REQUIRED gtk)
find_package(FFmpeg REQUIRED)
find_package(Iconv REQUIRED)
#@todo Turn into find_package(Opus REQUIRED)
find_library(OPUS opus)
find_path(OPUS_INCLUDE_DIR opus.h PATHS /usr/local/include/opus)
include_directories(${GTK3_INCLUDE_DIRS}) include_directories(${GTK3_INCLUDE_DIRS})
link_directories(${GTK3_LIBRARY_DIRS}) link_directories(${GTK3_LIBRARY_DIRS})
#find_package(PortAudio REQUIRED) if (NOT FFMPEG_SWSCALE_FOUND)
#find_package(Opus REQUIRED) message(FATAL_ERROR "FFmpeg swscale is required")
#find_package(FFmpeg REQUIRED) endif()
if (NOT FFMPEG_SWRESAMPLE_FOUND)
message(FATAL_ERROR "FFmpeg swresample is required")
endif()
if (NOT OPUS)
message(FATAL_ERROR "opus codec is required")
endif()
if (NOT OPENAL_FOUND) #find_package(PortAudio REQUIRED)
message(FATAL_ERROR OpenAL Soft is required)
endif()
if (NOT ZLIB_FOUND)
message(FATAL_ERROR Zlib is required)
endif()
if (NOT OPENSSL_FOUND)
message(FATAL_ERROR OpenSSL is required)
endif()
add_subdirectory(Telegram) add_subdirectory(Telegram)

View File

@ -6,12 +6,15 @@
# FFMPEG_LIBRARY_DIR - the directory containing the libraries # FFMPEG_LIBRARY_DIR - the directory containing the libraries
# FFMPEG_LIBRARIES - link these to use FFMPEG # FFMPEG_LIBRARIES - link these to use FFMPEG
# FFMPEG_SWSCALE_FOUND - FFMPEG also has SWSCALE # FFMPEG_SWSCALE_FOUND - FFMPEG also has SWSCALE
# FFMPEG_SWRESAMPLE_FOUND - FFMPEG also has SWRESAMPLE
# #
SET( FFMPEG_HEADERS avformat.h avcodec.h avutil.h avdevice.h ) SET( FFMPEG_HEADERS avformat.h avcodec.h avutil.h avdevice.h )
SET( FFMPEG_PATH_SUFFIXES libavformat libavcodec libavutil libavdevice ) SET( FFMPEG_PATH_SUFFIXES libavformat libavcodec libavutil libavdevice )
SET( FFMPEG_SWS_HEADERS swscale.h ) SET( FFMPEG_SWS_HEADERS swscale.h )
SET( FFMPEG_SWS_PATH_SUFFIXES libswscale ) SET( FFMPEG_SWS_PATH_SUFFIXES libswscale )
SET( FFMPEG_SWR_HEADERS swresample.h )
SET( FFMPEG_SWR_PATH_SUFFIXES libswresample )
SET( FFMPEG_PP_HEADERS postproc.h ) SET( FFMPEG_PP_HEADERS postproc.h )
SET( FFMPEG_PP_PATH_SUFFIXES libpostproc ) SET( FFMPEG_PP_PATH_SUFFIXES libpostproc )
@ -19,8 +22,8 @@ if( $ENV{FFMPEGDIR} )
SET( FFMPEG_LIBRARIES avformat-52.lib avcodec-51.lib avutil-49.lib avdevice-52.lib ) SET( FFMPEG_LIBRARIES avformat-52.lib avcodec-51.lib avutil-49.lib avdevice-52.lib )
SET( FFMPEG_SWS_LIBRARIES swscale-0.lib ) SET( FFMPEG_SWS_LIBRARIES swscale-0.lib )
SET( FFMPEG_PP_LIBRARIES postproc-0.lib ) SET( FFMPEG_PP_LIBRARIES postproc-0.lib )
SET( FFMPEG_LIBRARY_DIR $ENV{FFMPEGDIR}\\lib ) SET( FFMPEG_LIBRARY_DIR $ENV{FFMPEGDIR}/lib )
SET( FFMPEG_INCLUDE_PATHS $ENV{FFMPEGDIR}\\include ) SET( FFMPEG_INCLUDE_PATHS $ENV{FFMPEGDIR}/include )
# check to see if we can find swscale # check to see if we can find swscale
SET( TMP_ TMP-NOTFOUND ) SET( TMP_ TMP-NOTFOUND )
@ -32,6 +35,7 @@ if( $ENV{FFMPEGDIR} )
else( $ENV{FFMPEGDIR} ) else( $ENV{FFMPEGDIR} )
SET( FFMPEG_LIBRARIES avformat avcodec avutil avdevice ) SET( FFMPEG_LIBRARIES avformat avcodec avutil avdevice )
SET( FFMPEG_SWS_LIBRARIES swscale ) SET( FFMPEG_SWS_LIBRARIES swscale )
SET( FFMPEG_SWR_LIBRARIES swresample )
SET( FFMPEG_PP_LIBRARIES postproc ) SET( FFMPEG_PP_LIBRARIES postproc )
INCLUDE(FindPkgConfig) INCLUDE(FindPkgConfig)
if ( PKG_CONFIG_FOUND ) if ( PKG_CONFIG_FOUND )
@ -40,6 +44,7 @@ else( $ENV{FFMPEGDIR} )
pkg_check_modules( AVUTIL libavutil ) pkg_check_modules( AVUTIL libavutil )
pkg_check_modules( AVDEVICE libavdevice ) pkg_check_modules( AVDEVICE libavdevice )
pkg_check_modules( SWSCALE libswscale ) pkg_check_modules( SWSCALE libswscale )
pkg_check_modules( SWRESAMPLE libswresample )
pkg_check_modules( POSTPROC libpostproc ) pkg_check_modules( POSTPROC libpostproc )
endif ( PKG_CONFIG_FOUND ) endif ( PKG_CONFIG_FOUND )
@ -53,6 +58,8 @@ else( $ENV{FFMPEGDIR} )
${AVDEVICE_INCLUDE_DIRS} ) ${AVDEVICE_INCLUDE_DIRS} )
endif( $ENV{FFMPEGDIR} ) endif( $ENV{FFMPEGDIR} )
SET( FFMPEG_SWSCALE_FOUND ${SWSCALE_FOUND} )
# add in swscale if found # add in swscale if found
IF ( SWSCALE_FOUND ) IF ( SWSCALE_FOUND )
SET( FFMPEG_LIBRARY_DIR ${FFMPEG_LIBRARY_DIR} SET( FFMPEG_LIBRARY_DIR ${FFMPEG_LIBRARY_DIR}
@ -67,6 +74,22 @@ IF ( SWSCALE_FOUND )
${FFMPEG_SWS_LIBRARIES} ) ${FFMPEG_SWS_LIBRARIES} )
ENDIF ( SWSCALE_FOUND ) ENDIF ( SWSCALE_FOUND )
SET( FFMPEG_SWRESAMPLE_FOUND ${SWRESAMPLE_FOUND} )
# add in swresample if found
IF ( SWRESAMPLE_FOUND )
SET( FFMPEG_LIBRARY_DIR ${FFMPEG_LIBRARY_DIR}
${SWRESAMPLE_LIBRARY_DIRS} )
SET( FFMPEG_INCLUDE_PATHS ${FFMPEG_INCLUDE_PATHS}
${SWRESAMPLE_INCLUDE_DIRS} )
SET( FFMPEG_HEADERS ${FFMPEG_HEADERS}
${FFMPEG_SWR_HEADERS} )
SET( FFMPEG_PATH_SUFFIXES ${FFMPEG_PATH_SUFFIXES}
${FFMPEG_SWR_PATH_SUFFIXES} )
SET( FFMPEG_LIBRARIES ${FFMPEG_LIBRARIES}
${FFMPEG_SWR_LIBRARIES} )
ENDIF ( SWRESAMPLE_FOUND )
# add in postproc if found # add in postproc if found
IF ( POSTPROC_FOUND ) IF ( POSTPROC_FOUND )
SET( FFMPEG_LIBRARY_DIR ${FFMPEG_LIBRARY_DIR} SET( FFMPEG_LIBRARY_DIR ${FFMPEG_LIBRARY_DIR}
@ -124,10 +147,8 @@ ENDIF( NOT WIN32 )
LIST( LENGTH FFMPEG_HEADERS LIST_SIZE_ ) LIST( LENGTH FFMPEG_HEADERS LIST_SIZE_ )
SET( FFMPEG_FOUND FALSE ) SET( FFMPEG_FOUND FALSE )
SET( FFMPEG_SWSCALE_FOUND FALSE )
SET( FFMPEG_POSTPROC_FOUND FALSE ) SET( FFMPEG_POSTPROC_FOUND FALSE )
IF ( ${INC_SUCCESS} EQUAL ${LIST_SIZE_} ) IF ( ${INC_SUCCESS} EQUAL ${LIST_SIZE_} )
SET( FFMPEG_FOUND TRUE ) SET( FFMPEG_FOUND TRUE )
SET( FFMPEG_SWSCALE_FOUND ${SWSCALE_FOUND} )
SET( FFMPEG_POSTPROC_FOUND ${POSTPROC_FOUND} ) SET( FFMPEG_POSTPROC_FOUND ${POSTPROC_FOUND} )
ENDIF ( ${INC_SUCCESS} EQUAL ${LIST_SIZE_} ) ENDIF ( ${INC_SUCCESS} EQUAL ${LIST_SIZE_} )

60
modules/FindIconv.cmake Normal file
View File

@ -0,0 +1,60 @@
# - Try to find Iconv
# Once done this will define
#
# ICONV_FOUND - system has Iconv
# ICONV_INCLUDE_DIR - the Iconv include directory
# ICONV_LIBRARIES - Link these to use Iconv
# ICONV_SECOND_ARGUMENT_IS_CONST - the second argument for iconv() is const
#
include(CheckCXXSourceCompiles)
IF (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)
# Already in cache, be silent
SET(ICONV_FIND_QUIETLY TRUE)
ENDIF (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)
FIND_PATH(ICONV_INCLUDE_DIR iconv.h)
FIND_LIBRARY(ICONV_LIBRARIES NAMES iconv libiconv libiconv-2 c)
IF(ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)
SET(ICONV_FOUND TRUE)
ENDIF(ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)
set(CMAKE_REQUIRED_INCLUDES ${ICONV_INCLUDE_DIR})
set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARIES})
IF(ICONV_FOUND)
check_cxx_source_compiles("
#include <iconv.h>
int main(){
iconv_t conv = 0;
const char* in = 0;
size_t ilen = 0;
char* out = 0;
size_t olen = 0;
iconv(conv, &in, &ilen, &out, &olen);
return 0;
}
" ICONV_SECOND_ARGUMENT_IS_CONST )
IF(ICONV_SECOND_ARGUMENT_IS_CONST)
SET(ICONV_CONST "const")
ENDIF(ICONV_SECOND_ARGUMENT_IS_CONST)
ENDIF(ICONV_FOUND)
set(CMAKE_REQUIRED_INCLUDES)
set(CMAKE_REQUIRED_LIBRARIES)
IF(ICONV_FOUND)
IF(NOT ICONV_FIND_QUIETLY)
MESSAGE(STATUS "Found Iconv: ${ICONV_LIBRARIES}")
ENDIF(NOT ICONV_FIND_QUIETLY)
ELSE(ICONV_FOUND)
IF(Iconv_FIND_REQUIRED)
MESSAGE(FATAL_ERROR "Could not find Iconv")
ENDIF(Iconv_FIND_REQUIRED)
ENDIF(ICONV_FOUND)
MARK_AS_ADVANCED(
ICONV_INCLUDE_DIR
ICONV_LIBRARIES
ICONV_SECOND_ARGUMENT_IS_CONST
)