From 9fc8b732737f139d3e466510d75668ab45578960 Mon Sep 17 00:00:00 2001 From: manuel Date: Tue, 8 Mar 2016 21:02:53 +0100 Subject: sync with upstream --- project/cmake/modules/FindAML.cmake | 35 +++++++ project/cmake/modules/FindASS.cmake | 18 ++++ project/cmake/modules/FindAlsa.cmake | 20 ++++ project/cmake/modules/FindAvahi.cmake | 26 +++++ project/cmake/modules/FindBluray.cmake | 57 +++++++++++ project/cmake/modules/FindCCache.cmake | 6 ++ project/cmake/modules/FindCEC.cmake | 58 +++++++++++ project/cmake/modules/FindCXX11.cmake | 18 ++++ project/cmake/modules/FindCdio.cmake | 20 ++++ project/cmake/modules/FindCpluff.cmake | 46 +++++++++ project/cmake/modules/FindCrossGUID.cmake | 56 +++++++++++ project/cmake/modules/FindCurl.cmake | 37 +++++++ project/cmake/modules/FindD3DX11Effects.cmake | 49 +++++++++ project/cmake/modules/FindDbus.cmake | 21 ++++ project/cmake/modules/FindEGL.cmake | 48 +++++++++ project/cmake/modules/FindEMBEDDED.cmake | 17 ++++ project/cmake/modules/FindFFMPEG.cmake | 99 ++++++++++++++++++ project/cmake/modules/FindFreeType.cmake | 18 ++++ project/cmake/modules/FindFribidi.cmake | 18 ++++ project/cmake/modules/FindGIF.cmake | 46 +++++++++ project/cmake/modules/FindJsonSchemaBuilder.cmake | 19 ++++ project/cmake/modules/FindLibDvd.cmake | 116 ++++++++++++++++++++++ project/cmake/modules/FindLibSmbClient.cmake | 65 ++++++++++++ project/cmake/modules/FindLibUSB.cmake | 45 +++++++++ project/cmake/modules/FindLzo2.cmake | 22 ++++ project/cmake/modules/FindMMAL.cmake | 36 +++++++ project/cmake/modules/FindMicroHttpd.cmake | 106 ++++++++++++++++++++ project/cmake/modules/FindMySqlClient.cmake | 53 ++++++++++ project/cmake/modules/FindNFS.cmake | 58 +++++++++++ project/cmake/modules/FindOpenGLES.cmake | 48 +++++++++ project/cmake/modules/FindOpenGl.cmake | 43 ++++++++ project/cmake/modules/FindPCRE.cmake | 91 +++++++++++++++++ project/cmake/modules/FindPlist.cmake | 58 +++++++++++ project/cmake/modules/FindPulseAudio.cmake | 72 ++++++++++++++ project/cmake/modules/FindPython.cmake | 43 ++++++++ project/cmake/modules/FindRTMP.cmake | 21 ++++ project/cmake/modules/FindSSE.cmake | 105 ++++++++++++++++++++ project/cmake/modules/FindSSH.cmake | 21 ++++ project/cmake/modules/FindSWIG.cmake | 14 +++ project/cmake/modules/FindSdl.cmake | 46 +++++++++ project/cmake/modules/FindShairplay.cmake | 63 ++++++++++++ project/cmake/modules/FindSqlite3.cmake | 19 ++++ project/cmake/modules/FindTagLib.cmake | 62 ++++++++++++ project/cmake/modules/FindTexturePacker.cmake | 23 +++++ project/cmake/modules/FindTinyXML.cmake | 68 +++++++++++++ project/cmake/modules/FindUDev.cmake | 22 ++++ project/cmake/modules/FindUUID.cmake | 43 ++++++++ project/cmake/modules/FindVAAPI.cmake | 47 +++++++++ project/cmake/modules/FindVDPAU.cmake | 32 ++++++ project/cmake/modules/FindX.cmake | 21 ++++ project/cmake/modules/FindXRandR.cmake | 22 ++++ project/cmake/modules/FindXslt.cmake | 18 ++++ project/cmake/modules/FindYajl.cmake | 27 +++++ project/cmake/modules/FindZip.cmake | 46 +++++++++ 54 files changed, 2308 insertions(+) create mode 100644 project/cmake/modules/FindAML.cmake create mode 100644 project/cmake/modules/FindASS.cmake create mode 100644 project/cmake/modules/FindAlsa.cmake create mode 100644 project/cmake/modules/FindAvahi.cmake create mode 100644 project/cmake/modules/FindBluray.cmake create mode 100644 project/cmake/modules/FindCCache.cmake create mode 100644 project/cmake/modules/FindCEC.cmake create mode 100644 project/cmake/modules/FindCXX11.cmake create mode 100644 project/cmake/modules/FindCdio.cmake create mode 100644 project/cmake/modules/FindCpluff.cmake create mode 100644 project/cmake/modules/FindCrossGUID.cmake create mode 100644 project/cmake/modules/FindCurl.cmake create mode 100644 project/cmake/modules/FindD3DX11Effects.cmake create mode 100644 project/cmake/modules/FindDbus.cmake create mode 100644 project/cmake/modules/FindEGL.cmake create mode 100644 project/cmake/modules/FindEMBEDDED.cmake create mode 100644 project/cmake/modules/FindFFMPEG.cmake create mode 100644 project/cmake/modules/FindFreeType.cmake create mode 100644 project/cmake/modules/FindFribidi.cmake create mode 100644 project/cmake/modules/FindGIF.cmake create mode 100644 project/cmake/modules/FindJsonSchemaBuilder.cmake create mode 100644 project/cmake/modules/FindLibDvd.cmake create mode 100644 project/cmake/modules/FindLibSmbClient.cmake create mode 100644 project/cmake/modules/FindLibUSB.cmake create mode 100644 project/cmake/modules/FindLzo2.cmake create mode 100644 project/cmake/modules/FindMMAL.cmake create mode 100644 project/cmake/modules/FindMicroHttpd.cmake create mode 100644 project/cmake/modules/FindMySqlClient.cmake create mode 100644 project/cmake/modules/FindNFS.cmake create mode 100644 project/cmake/modules/FindOpenGLES.cmake create mode 100644 project/cmake/modules/FindOpenGl.cmake create mode 100644 project/cmake/modules/FindPCRE.cmake create mode 100644 project/cmake/modules/FindPlist.cmake create mode 100644 project/cmake/modules/FindPulseAudio.cmake create mode 100644 project/cmake/modules/FindPython.cmake create mode 100644 project/cmake/modules/FindRTMP.cmake create mode 100644 project/cmake/modules/FindSSE.cmake create mode 100644 project/cmake/modules/FindSSH.cmake create mode 100644 project/cmake/modules/FindSWIG.cmake create mode 100644 project/cmake/modules/FindSdl.cmake create mode 100644 project/cmake/modules/FindShairplay.cmake create mode 100644 project/cmake/modules/FindSqlite3.cmake create mode 100644 project/cmake/modules/FindTagLib.cmake create mode 100644 project/cmake/modules/FindTexturePacker.cmake create mode 100644 project/cmake/modules/FindTinyXML.cmake create mode 100644 project/cmake/modules/FindUDev.cmake create mode 100644 project/cmake/modules/FindUUID.cmake create mode 100644 project/cmake/modules/FindVAAPI.cmake create mode 100644 project/cmake/modules/FindVDPAU.cmake create mode 100644 project/cmake/modules/FindX.cmake create mode 100644 project/cmake/modules/FindXRandR.cmake create mode 100644 project/cmake/modules/FindXslt.cmake create mode 100644 project/cmake/modules/FindYajl.cmake create mode 100644 project/cmake/modules/FindZip.cmake (limited to 'project/cmake/modules') diff --git a/project/cmake/modules/FindAML.cmake b/project/cmake/modules/FindAML.cmake new file mode 100644 index 0000000..5b9a859 --- /dev/null +++ b/project/cmake/modules/FindAML.cmake @@ -0,0 +1,35 @@ +#.rst: +# FindAML +# ------- +# Finds the AML codec +# +# This will will define the following variables:: +# +# AML_FOUND - system has AML +# AML_INCLUDE_DIRS - the AML include directory +# AML_DEFINITIONS - the AML definitions +# +# and the following imported targets:: +# +# AML::AML - The AML codec + +find_path(AML_INCLUDE_DIR codec_error.h + PATH_SUFFIXES amcodec) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(AML + REQUIRED_VARS AML_INCLUDE_DIR) + +if(AML_FOUND) + set(AML_INCLUDE_DIRS ${AML_INCLUDE_DIR}) + set(AML_DEFINITIONS -DHAS_LIBAMCODEC=1) + + if(NOT TARGET AML::AML) + add_library(AML::AML UNKNOWN IMPORTED) + set_target_properties(AML::AML PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${AML_INCLUDE_DIR}" + INTERFACE_COMPILE_DEFINITIONS HAS_LIBAMCODEC=1) + endif() +endif() + +mark_as_advanced(AMLCODEC_INCLUDE_DIR) diff --git a/project/cmake/modules/FindASS.cmake b/project/cmake/modules/FindASS.cmake new file mode 100644 index 0000000..5f4b0c7 --- /dev/null +++ b/project/cmake/modules/FindASS.cmake @@ -0,0 +1,18 @@ +# - Try to find ASS +# Once done this will define +# +# ASS_FOUND - system has libass +# ASS_INCLUDE_DIRS - the libass include directory +# ASS_LIBRARIES - The libass libraries + +if(PKG_CONFIG_FOUND) + pkg_check_modules (ASS libass) +else() + find_path(ASS_INCLUDE_DIRS ass/ass.h) + find_library(ASS_LIBRARIES NAMES ass libass) +endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(ASS DEFAULT_MSG ASS_INCLUDE_DIRS ASS_LIBRARIES) + +mark_as_advanced(ASS_INCLUDE_DIRS ASS_LIBRARIES) diff --git a/project/cmake/modules/FindAlsa.cmake b/project/cmake/modules/FindAlsa.cmake new file mode 100644 index 0000000..b15a0cf --- /dev/null +++ b/project/cmake/modules/FindAlsa.cmake @@ -0,0 +1,20 @@ +# - Try to find ALSA +# Once done this will define +# +# ALSA_FOUND - system has libALSA +# ALSA_INCLUDE_DIRS - the libALSA include directory +# ALSA_LIBRARIES - The libALSA libraries + +if(PKG_CONFIG_FOUND) + pkg_check_modules (ALSA alsa) +else() + find_path(ALSA_INCLUDE_DIRS asoundlib.h PATH_SUFFIXES alsa) + find_library(ALSA_LIBRARIES asound) +endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(Alsa DEFAULT_MSG ALSA_INCLUDE_DIRS ALSA_LIBRARIES) + +set(ALSA_INCLUDE_DIRS "") # Dont want these added as 'timer.h' is a dangerous file +mark_as_advanced(ALSA_INCLUDE_DIRS ALSA_LIBRARIES) +list(APPEND ALSA_DEFINITIONS -DHAVE_ALSA=1 -DUSE_ALSA=1) diff --git a/project/cmake/modules/FindAvahi.cmake b/project/cmake/modules/FindAvahi.cmake new file mode 100644 index 0000000..24bf15c --- /dev/null +++ b/project/cmake/modules/FindAvahi.cmake @@ -0,0 +1,26 @@ +# - Try to find avahi +# Once done this will define +# +# AVAHI_FOUND - system has avahi +# AVAHI_INCLUDE_DIRS - the avahi include directory +# AVAHI_LIBRARIES - The avahi libraries + +if(PKG_CONFIG_FOUND) + pkg_check_modules (AVAHI avahi-client) + list(APPEND AVAHI_INCLUDE_DIRS ${AVAHI_INCLUDEDIR}) +else() + find_path(AVAHI_CLIENT_INCLUDE_DIRS avahi-client/client.h) + find_path(AVAHI_COMMON_INCLUDE_DIRS avahi-common/defs.h) + find_library(AVAHI_COMMON_LIBRARIES avahi-common) + find_library(AVAHI_CLIENT_LIBRARIES avahi-common) + set(AVAHI_INCLUDE_DIRS ${AVAHI_CLIENT_INCLUDE_DIRS} + ${AVAHI_COMMON_INCLUDE_DIRS}) + set(AVAHI_LIBRARIES ${AVAHI_CLIENT_LIBRARIES} + ${AVAHI_COMMON_LIBRARIES}) +endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(Avahi DEFAULT_MSG AVAHI_INCLUDE_DIRS AVAHI_LIBRARIES) + +mark_as_advanced(AVAHI_INCLUDE_DIRS AVAHI_LIBRARIES) +list(APPEND AVAHI_DEFINITIONS -DHAVE_LIBAVAHI_COMMON=1 -DHAVE_LIBAVAHI_CLIENT=1) diff --git a/project/cmake/modules/FindBluray.cmake b/project/cmake/modules/FindBluray.cmake new file mode 100644 index 0000000..2b0a449 --- /dev/null +++ b/project/cmake/modules/FindBluray.cmake @@ -0,0 +1,57 @@ +#.rst: +# FindBluray +# ---------- +# Finds the libbluray library +# +# This will will define the following variables:: +# +# BLURAY_FOUND - system has libbluray +# BLURAY_INCLUDE_DIRS - the libbluray include directory +# BLURAY_LIBRARIES - the libbluray libraries +# BLURAY_DEFINITIONS - the libbluray compile definitions +# +# and the following imported targets:: +# +# Bluray::Bluray - The libblueray library + +if(PKG_CONFIG_FOUND) + pkg_check_modules(BLURAY libbluray>=0.7.0) + set(BLURAY_VERSION ${PC_BLURAY_VERSION}) +else() + find_path(BLURAY_INCLUDE_DIR libbluray/bluray.h + PATHS ${PC_BLURAY_INCLUDEDIR}) + + include(FindPackageHandleStandardArgs) + if(NOT WIN32) + find_library(BLURAY_LIBRARY NAMES bluray + PATHS ${PC_BLURAY_LIBDIR}) + + find_package_handle_standard_args(BLURAY + REQUIRED_VARS BLURAY_LIBRARY BLURAY_INCLUDE_DIR + VERSION_VAR BLURAY_VERSION) + else() + # Dynamically loaded DLL + find_package_handle_standard_args(BLURAY + REQUIRED_VARS BLURAY_INCLUDE_DIR + VERSION_VAR BLURAY_VERSION) + endif() +endif() + +if(BLURAY_FOUND) + set(BLURAY_LIBRARIES ${BLURAY_LIBRARY}) + set(BLURAY_INCLUDE_DIRS ${BLURAY_INCLUDE_DIR}) + set(BLURAY_DEFINITIONS -DHAVE_LIBBLURAY=1) + + if(NOT TARGET Bluray::Bluray) + add_library(Bluray::Bluray UNKNOWN IMPORTED) + if(BLURAY_LIBRARY) + set_target_properties(Bluray::Bluray PROPERTIES + IMPORTED_LOCATION "${BLURAY_LIBRARY}") + endif() + set_target_properties(Bluray::Bluray PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${BLURAY_INCLUDE_DIR}" + INTERFACE_COMPILE_DEFINITIONS HAVE_LIBBLURAY=1) + endif() +endif() + +mark_as_advanced(BLURAY_INCLUDE_DIR BLURAY_LIBRARY) diff --git a/project/cmake/modules/FindCCache.cmake b/project/cmake/modules/FindCCache.cmake new file mode 100644 index 0000000..4ad7d07 --- /dev/null +++ b/project/cmake/modules/FindCCache.cmake @@ -0,0 +1,6 @@ +find_program(CCACHE_FOUND ccache) +if(CCACHE_FOUND) + set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache) + set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache) +endif(CCACHE_FOUND) + diff --git a/project/cmake/modules/FindCEC.cmake b/project/cmake/modules/FindCEC.cmake new file mode 100644 index 0000000..98e900d --- /dev/null +++ b/project/cmake/modules/FindCEC.cmake @@ -0,0 +1,58 @@ +#.rst: +# FindCEC +# ------- +# Finds the libCEC library +# +# This will will define the following variables:: +# +# CEC_FOUND - system has libCEC +# CEC_INCLUDE_DIRS - the libCEC include directory +# CEC_LIBRARIES - the libCEC libraries +# CEC_DEFINITIONS - the libCEC compile definitions +# +# and the following imported targets:: +# +# CEC::CEC - The libCEC library + +if(PKG_CONFIG_FOUND) + pkg_check_modules(PC_CEC libCEC>=3.0.0 QUIET) +endif() + +find_path(CEC_INCLUDE_DIR libCEC/CEC.h + PATHS ${PC_CEC_INCLUDEDIR}) + +set(CEC_VERSION ${PC_CEC_VERSION}) + +include(FindPackageHandleStandardArgs) +if(NOT WIN32) + find_library(CEC_LIBRARY NAMES cec + PATHS ${PC_CEC_LIBDIR}) + + find_package_handle_standard_args(CEC + REQUIRED_VARS CEC_LIBRARY CEC_INCLUDE_DIR + VERSION_VAR CEC_VERSION) +else() + # Dynamically loaded DLL + find_package_handle_standard_args(CEC + REQUIRED_VARS CEC_INCLUDE_DIR + VERSION_VAR CEC_VERSION) +endif() + +if(CEC_FOUND) + set(CEC_LIBRARIES ${CEC_LIBRARY}) + set(CEC_INCLUDE_DIRS ${CEC_INCLUDE_DIR}) + set(CEC_DEFINITIONS -DHAVE_LIBCEC=1) + + if(NOT TARGET CEC::CEC) + add_library(CEC::CEC UNKNOWN IMPORTED) + if(CEC_LIBRARY) + set_target_properties(CEC::CEC PROPERTIES + IMPORTED_LOCATION "${CEC_LIBRARY}") + endif() + set_target_properties(CEC::CEC PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${CEC_INCLUDE_DIR}" + INTERFACE_COMPILE_DEFINITIONS HAVE_LIBCEC=1) + endif() +endif() + +mark_as_advanced(CEC_INCLUDE_DIR CEC_LIBRARY) diff --git a/project/cmake/modules/FindCXX11.cmake b/project/cmake/modules/FindCXX11.cmake new file mode 100644 index 0000000..f1b7346 --- /dev/null +++ b/project/cmake/modules/FindCXX11.cmake @@ -0,0 +1,18 @@ +include(TestCXXAcceptsFlag) + +# try to use compiler flag -std=c++11 +check_cxx_accepts_flag("-std=c++11" CXX_FLAG_CXX11) +if(CXX_FLAG_CXX11) + add_options (CXX ALL_BUILDS "-std=c++11") + set(CXX_STD11_FLAGS "-std=c++11") +else() + # try to use compiler flag -std=c++0x for older compilers + check_cxx_accepts_flag("-std=c++0x" CXX_FLAG_CXX0X) + if(CXX_FLAG_CXX0X) + add_options (CXX ALL_BUILDS "-std=c++0x") + set(CXX_STD11_FLAGS "-std=c++0x") + endif(CXX_FLAG_CXX0X) +endif(CXX_FLAG_CXX11) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(CXX11 DEFAULT_MSG CXX_STD11_FLAGS) diff --git a/project/cmake/modules/FindCdio.cmake b/project/cmake/modules/FindCdio.cmake new file mode 100644 index 0000000..1b6b8cd --- /dev/null +++ b/project/cmake/modules/FindCdio.cmake @@ -0,0 +1,20 @@ +# - Try to find cdio +# Once done this will define +# +# CDIO_FOUND - system has libcdio +# CDIO_INCLUDE_DIRS - the libcdio include directory +# CDIO_LIBRARIES - The libcdio libraries + +if(PKG_CONFIG_FOUND) + pkg_check_modules (CDIO libcdio libiso9660) + list(APPEND CDIO_INCLUDE_DIRS ${CDIO_libcdio_INCLUDEDIR} ${CDIO_libiso9660_INCLUDEDIR}) +endif() +if(NOT CDIO_FOUND) + find_path(CDIO_INCLUDE_DIRS cdio/cdio.h) + find_library(MODPLUG_LIBRARIES NAMES cdio) +endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(Cdio DEFAULT_MSG CDIO_INCLUDE_DIRS CDIO_LIBRARIES) + +mark_as_advanced(CDIO_INCLUDE_DIRS CDIO_LIBRARIES) diff --git a/project/cmake/modules/FindCpluff.cmake b/project/cmake/modules/FindCpluff.cmake new file mode 100644 index 0000000..b8fa22d --- /dev/null +++ b/project/cmake/modules/FindCpluff.cmake @@ -0,0 +1,46 @@ +# - Builds Cpluff as external project +# Once done this will define +# +# CPLUFF_FOUND - system has cpluff +# CPLUFF_INCLUDE_DIRS - the cpluff include directories +# +# and link Kodi against the cpluff libraries. + +if(NOT WIN32) + string(REPLACE ";" " " defines "${CMAKE_C_FLAGS} ${SYSTEM_DEFINES} -I${EXPAT_INCLUDE_DIR}") + get_filename_component(expat_dir ${EXPAT_LIBRARY} PATH) + set(ldflags "-L${expat_dir}") + ExternalProject_Add(libcpluff SOURCE_DIR ${CORE_SOURCE_DIR}/lib/cpluff + PREFIX ${CORE_BUILD_DIR}/cpluff + PATCH_COMMAND rm -f config.status + UPDATE_COMMAND PATH=${NATIVEPREFIX}/bin:$ENV{PATH} autoreconf -vif + CONFIGURE_COMMAND CC=${CMAKE_C_COMPILER} ${CORE_SOURCE_DIR}/lib/cpluff/configure + --disable-nls + --enable-static + --disable-shared + --with-pic + --prefix= + --host=${ARCH} + CFLAGS=${defines} + LDFLAGS=${ldflags} + BUILD_COMMAND make V=1) + set(ldflags "${ldflags};-lexpat") + core_link_library(${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/cpluff/lib/libcpluff.a + system/libcpluff libcpluff extras "${ldflags}") + set(WRAP_FILES ${WRAP_FILES} PARENT_SCOPE) +else() + ExternalProject_Add(libcpluff SOURCE_DIR ${CORE_SOURCE_DIR}/lib/cpluff + PREFIX ${CORE_BUILD_DIR}/cpluff + CONFIGURE_COMMAND "" + # TODO: Building the project directly from lib/cpluff/libcpluff/win32/cpluff.vcxproj + # fails becaue it imports XBMC.defaults.props + BUILD_COMMAND devenv /build ${CORE_BUILD_CONFIG} + ${CORE_SOURCE_DIR}/project/VS2010Express/XBMC\ for\ Windows.sln + /project cpluff + INSTALL_COMMAND "") + # TODO: core_link_library +endif() + +set(CPLUFF_INCLUDE_DIRS ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/cpluff/include) +set(CPLUFF_FOUND 1) +mark_as_advanced(CPLUFF_INCLUDE_DIRS CPLUFF_FOUND) diff --git a/project/cmake/modules/FindCrossGUID.cmake b/project/cmake/modules/FindCrossGUID.cmake new file mode 100644 index 0000000..0d4a915 --- /dev/null +++ b/project/cmake/modules/FindCrossGUID.cmake @@ -0,0 +1,56 @@ +if(ENABLE_INTERNAL_CROSSGUID) + include(ExternalProject) + file(STRINGS ${CORE_SOURCE_DIR}/tools/depends/target/crossguid/Makefile VER) + string(REGEX MATCH "VERSION=[^ ]*" CGUID_VER "${VER}") + list(GET CGUID_VER 0 CGUID_VER) + string(SUBSTRING "${CGUID_VER}" 8 -1 CGUID_VER) + + externalproject_add(crossguid + URL http://mirrors.kodi.tv/build-deps/sources/crossguid-${CGUID_VER}.tar.gz + PREFIX ${CORE_BUILD_DIR}/crossguid + CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR} + -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} + PATCH_COMMAND ${CMAKE_COMMAND} -E copy + ${CORE_SOURCE_DIR}/tools/depends/target/crossguid/CMakeLists.txt + && + ${CMAKE_COMMAND} -E copy + ${CORE_SOURCE_DIR}/tools/depends/target/crossguid/FindUUID.cmake + && + ${CMAKE_COMMAND} -E copy + ${CORE_SOURCE_DIR}/tools/depends/target/crossguid/FindCXX11.cmake + ) + + set(CROSSGUID_FOUND 1) + set(CROSSGUID_LIBRARIES ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/libcrossguid.a) + set(CROSSGUID_INCLUDE_DIRS ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/include) + + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(CROSSGUID DEFAULT_MSG CROSSGUID_INCLUDE_DIRS CROSSGUID_LIBRARIES) + mark_as_advanced(CROSSGUID_INCLUDE_DIRS CROSSGUID_LIBRARIES CROSSGUID_DEFINITIONS CROSSGUID_FOUND) +else() + find_path(CROSSGUID_INCLUDE_DIR guid.h) + + find_library(CROSSGUID_LIBRARY_RELEASE NAMES crossguid + ${CONFIGURATION_LIBDIR_RELEASE}) + find_library(CROSSGUID_LIBRARY_DEBUG NAMES crossguidd + ${CONFIGURATION_LIBDIR_DEBUG}) + + include(SelectLibraryConfigurations) + select_library_configurations(CROSSGUID) + + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(CROSSGUID + REQUIRED_VARS CROSSGUID_LIBRARY CROSSGUID_INCLUDE_DIR) + + if(CROSSGUID_FOUND) + set(CROSSGUID_LIBRARIES ${CROSSGUID_LIBRARY}) + set(CROSSGUID_INCLUDE_DIRS ${CROSSGUID_INCLUDE_DIR}) + endif() + mark_as_advanced(CROSSGUID_INCLUDE_DIR CROSSGUID_LIBRARY) +endif() + +if(NOT WIN32 AND NOT APPLE) + find_package(UUID REQUIRED) + list(APPEND CROSSGUID_INCLUDE_DIRS ${UUID_INCLUDE_DIRS}) + list(APPEND CROSSGUID_LIBRARIES ${UUID_LIBRARIES}) +endif() diff --git a/project/cmake/modules/FindCurl.cmake b/project/cmake/modules/FindCurl.cmake new file mode 100644 index 0000000..a2e8862 --- /dev/null +++ b/project/cmake/modules/FindCurl.cmake @@ -0,0 +1,37 @@ +# - Try to find CURL +# Once done this will define +# +# CURL_FOUND - system has libcurl +# CURL_INCLUDE_DIRS - the libcurl include directory +# CURL_LIBRARIES - The libcurl libraries + +if(PKG_CONFIG_FOUND) + pkg_check_modules (CURL libcurl) + list(APPEND CURL_INCLUDE_DIRS ${CURL_INCLUDEDIR}) +else() + find_path(CURL_INCLUDE_DIRS curl/curl.h) + find_library(CURL_LIBRARIES NAMES curl libcurl) +endif() +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(Curl DEFAULT_MSG CURL_INCLUDE_DIRS CURL_LIBRARIES) + +mark_as_advanced(CURL_INCLUDE_DIRS CURL_LIBRARIES) + +if(CURL_FOUND) + if(NOT CURL_LIBRARY_DIRS AND CURL_LIBDIR) + set(CURL_LIBRARY_DIRS ${CURL_LIBDIR}) + endif() + + find_soname(CURL) + + if(EXISTS "${CURL_LIBRARY_DIRS}/${CURL_SONAME}") + execute_process(COMMAND readelf -s ${CURL_LIBRARY_DIRS}/${CURL_SONAME} COMMAND grep CRYPTO_set_locking_call OUTPUT_VARIABLE HAS_CURL_STATIC) + else() + message(FATAL_ERROR "curl library not found") + endif() +endif() + +if(HAS_CURL_STATIC) + mark_as_advanced(HAS_CURL_STATIC) + list(APPEND CURL_DEFINITIONS -DHAS_CURL_STATIC=1) +endif() diff --git a/project/cmake/modules/FindD3DX11Effects.cmake b/project/cmake/modules/FindD3DX11Effects.cmake new file mode 100644 index 0000000..2b2de85 --- /dev/null +++ b/project/cmake/modules/FindD3DX11Effects.cmake @@ -0,0 +1,49 @@ +# - Builds D3DX11Effects as external project +# Once done this will define +# +# D3DX11EFFECTS_FOUND - system has D3DX11Effects +# D3DX11EFFECTS_INCLUDE_DIRS - the D3DX11Effects include directories +# D3DCOMPILER_DLL - Path to the Direct3D Compiler + +include(ExternalProject) +ExternalProject_Add(d3dx11effects + SOURCE_DIR ${CORE_SOURCE_DIR}/lib/win32/Effects11 + PREFIX ${CORE_BUILD_DIR}/Effects11 + CONFIGURE_COMMAND "" + BUILD_COMMAND devenv /build ${CORE_BUILD_CONFIG} + ${CORE_SOURCE_DIR}/lib/win32/Effects11/Effects11_2013.sln + INSTALL_COMMAND "") + +set(D3DX11EFFECTS_FOUND 1) +set(D3DX11EFFECTS_INCLUDE_DIRS ${CORE_SOURCE_DIR}/lib/win32/Effects11/inc) + +set(D3DX11EFFECTS_LIBRARY_RELEASE ${CORE_SOURCE_DIR}/lib/win32/Effects11/libs/Effects11/Release/Effects11.lib) +set(D3DX11EFFECTS_LIBRARY_DEBUG ${CORE_SOURCE_DIR}/lib/win32/Effects11/libs/Effects11/Debug/Effects11.lib) +include(SelectLibraryConfigurations) +select_library_configurations(D3DX11EFFECTS) + +mark_as_advanced(D3DX11EFFECTS_FOUND) + +find_file(D3DCOMPILER_DLL + NAMES d3dcompiler_47.dll d3dcompiler_46.dll + PATHS + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Microsoft SDKs\\Windows\\v10.0;InstallationFolder]/Redist/D3D/x86" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Microsoft SDKs\\Windows\\v8.1;InstallationFolder]/Redist/D3D/x86" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Microsoft SDKs\\Windows\\v8.0;InstallationFolder]/Redist/D3D/x86" + "$ENV{WindowsSdkDir}Redist/d3d/x86" + NO_DEFAULT_PATH) +if(NOT D3DCOMPILER_DLL) + message(WARNING "Could NOT find Direct3D Compiler") +endif() +mark_as_advanced(D3DCOMPILER_DLL) + +find_program(FXC fxc + PATHS + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Microsoft SDKs\\Windows\\v10.0;InstallationFolder]/bin/x86" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Microsoft SDKs\\Windows\\v8.1;InstallationFolder]/bin/x86" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Microsoft SDKs\\Windows\\v8.0;InstallationFolder]/bin/x86" + "$ENV{WindowsSdkDir}bin/x86") +if(NOT FXC) + message(WARNING "Could NOT find DirectX Effects Compiler (FXC)") +endif() +mark_as_advanced(FXC) diff --git a/project/cmake/modules/FindDbus.cmake b/project/cmake/modules/FindDbus.cmake new file mode 100644 index 0000000..cdc3f52 --- /dev/null +++ b/project/cmake/modules/FindDbus.cmake @@ -0,0 +1,21 @@ +# - Try to find dbus +# Once done this will define +# +# DBUS_FOUND - system has libdbus +# DBUS_INCLUDE_DIRS - the libdbus include directory +# DBUS_LIBRARIES - The libdbus libraries + +if(PKG_CONFIG_FOUND) + pkg_check_modules (DBUS dbus-1) +endif() + +if(DBUS_FOUND) + find_path(DBUS_INCLUDE_DIRS dbus/dbus.h PATH_SUFFIXES dbus-1.0) + find_library(DBUS_LIBRARIES dbus-1.0) +endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(Dbus DEFAULT_MSG DBUS_INCLUDE_DIRS DBUS_LIBRARIES) + +list(APPEND DBUS_DEFINITIONS -DHAVE_DBUS=1) +mark_as_advanced(DBUS_INCLUDE_DIRS DBUS_LIBRARIES DBUS_DEFINITIONS) diff --git a/project/cmake/modules/FindEGL.cmake b/project/cmake/modules/FindEGL.cmake new file mode 100644 index 0000000..79bb176 --- /dev/null +++ b/project/cmake/modules/FindEGL.cmake @@ -0,0 +1,48 @@ +#.rst: +# FindEGL +# ------- +# Finds the EGL library +# +# This will will define the following variables:: +# +# EGL_FOUND - system has EGL +# EGL_INCLUDE_DIRS - the EGL include directory +# EGL_LIBRARIES - the EGL libraries +# EGL_DEFINITIONS - the EGL definitions +# +# and the following imported targets:: +# +# EGL::EGL - The EGL library + +if(PKG_CONFIG_FOUND) + pkg_check_modules(PC_EGL egl QUIET) +endif() + +find_path(EGL_INCLUDE_DIR EGL/egl.h + PATHS ${PC_EGL_INCLUDEDIR}) + +find_library(EGL_LIBRARY NAMES EGL egl + PATHS ${PC_EGL_LIBDIR}) + +set(EGL_VERSION ${PC_EGL_VERSION}) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(EGL + REQUIRED_VARS EGL_LIBRARY EGL_INCLUDE_DIR + VERSION_VAR EGL_VERSION) + +if(EGL_FOUND) + set(EGL_LIBRARIES ${EGL_LIBRARY}) + set(EGL_INCLUDE_DIRS ${EGL_INCLUDE_DIR}) + set(EGL_DEFINITIONS -DHAVE_LIBEGL=1) + + if(NOT TARGET EGL::EGL) + add_library(EGL::EGL UNKNOWN IMPORTED) + set_target_properties(EGL::EGL PROPERTIES + IMPORTED_LOCATION "${EGL_LIBRARY}" + INTERFACE_INCLUDE_DIRECTORIES "${EGL_INCLUDE_DIR}" + INTERFACE_COMPILE_DEFINITIONS HAVE_LIBEGL=1) + endif() +endif() + +mark_as_advanced(EGL_INCLUDE_DIR EGL_LIBRARY) diff --git a/project/cmake/modules/FindEMBEDDED.cmake b/project/cmake/modules/FindEMBEDDED.cmake new file mode 100644 index 0000000..bc1b456 --- /dev/null +++ b/project/cmake/modules/FindEMBEDDED.cmake @@ -0,0 +1,17 @@ +# - Try to find embedded platforms (RPI/IMX6) +# Once done this will define +# +# EMBEDDED_FOUND - system is RPI / IMX6 and we most probably want to compile for GLES2 support +# (don't configure for OpenGL) + +if(NOT CMAKE_SYSTEM_PROCESSOR) + set(CMAKE_SYSTEM_PROCESSOR ${CPU}) +endif() + +string(REGEX MATCH "^arm" TARGET_ARCH_ARM "${CMAKE_SYSTEM_PROCESSOR}") +if(NOT CMAKE_CROSSCOMPILING AND NOT TARGET_ARCH_ARM) + return() +endif(NOT CMAKE_CROSSCOMPILING AND NOT TARGET_ARCH_ARM) + +find_path(EMBEDDED_FOUND NAMES include/linux/imxfb.h include/bcm_host.h PATHS /opt/vc) + diff --git a/project/cmake/modules/FindFFMPEG.cmake b/project/cmake/modules/FindFFMPEG.cmake new file mode 100644 index 0000000..711845a --- /dev/null +++ b/project/cmake/modules/FindFFMPEG.cmake @@ -0,0 +1,99 @@ +include(ExternalProject) +file(STRINGS ${CORE_SOURCE_DIR}/tools/depends/target/ffmpeg/FFMPEG-VERSION VER) +string(REGEX MATCH "VERSION=[^ ]*$.*" FFMPEG_VER "${VER}") +list(GET FFMPEG_VER 0 FFMPEG_VER) +string(SUBSTRING "${FFMPEG_VER}" 8 -1 FFMPEG_VER) +string(REGEX MATCH "BASE_URL=([^ ]*)" FFMPEG_BASE_URL "${VER}") +list(GET FFMPEG_BASE_URL 0 FFMPEG_BASE_URL) +string(SUBSTRING "${FFMPEG_BASE_URL}" 9 -1 FFMPEG_BASE_URL) + + +if(ENABLE_INTERNAL_FFMPEG) + if(FFMPEG_PATH) + message(WARNING "Internal FFmpeg enabled, but FFMPEG_PATH given, ignoring") + endif() + if(CMAKE_CROSSCOMPILING) + set(CROSS_ARGS -DDEPENDS_PATH=${DEPENDS_PATH} + -DPKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE} + -DCROSSCOMPILING=${CMAKE_CROSSCOMPILING} + -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} + -DCORE_SYSTEM_NAME=${CORE_SYSTEM_NAME} + -DCPU=${WITH_CPU} + -DOS=${OS} + -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} + -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} + -DCMAKE_AR=${CMAKE_AR} + -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} + -DCMAKE_EXE_LINKER_FLAGS=${CMAKE_EXE_LINKER_FLAGS}) + endif() + + externalproject_add(ffmpeg + URL ${FFMPEG_BASE_URL}/${FFMPEG_VER}.tar.gz + PREFIX ${CORE_BUILD_DIR}/ffmpeg + CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR} + -DCMAKE_BUILD_TYPE=${DCMAKE_BUILD_TYPE} + -DFFMPEG_VER=${FFMPEG_VER} + -DCORE_SYSTEM_NAME=${CORE_SYSTEM_NAME} + ${CROSS_ARGS} + PATCH_COMMAND ${CMAKE_COMMAND} -E copy + ${CORE_SOURCE_DIR}/tools/depends/target/ffmpeg/CMakeLists.txt + && + ${CMAKE_COMMAND} -E copy + ${CORE_SOURCE_DIR}/tools/depends/target/ffmpeg/FindGnuTls.cmake + ) + + file(WRITE ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/ffmpeg/ffmpeg-link-wrapper +"#!/bin/bash +if [[ $@ == *${APP_NAME_LC}.bin* || $@ == *${APP_NAME_LC}-test* ]] +then + avformat=`PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/pkgconfig ${PKG_CONFIG_EXECUTABLE} --libs --static libavcodec` + avcodec=`PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/pkgconfig ${PKG_CONFIG_EXECUTABLE} --libs --static libavformat` + avfilter=`PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/pkgconfig ${PKG_CONFIG_EXECUTABLE} --libs --static libavfilter` + avutil=`PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/pkgconfig ${PKG_CONFIG_EXECUTABLE} --libs --static libavutil` + swscale=`PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/pkgconfig ${PKG_CONFIG_EXECUTABLE} --libs --static libswscale` + swresample=`PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/pkgconfig ${PKG_CONFIG_EXECUTABLE} --libs --static libswresample` + gnutls=`PKG_CONFIG_PATH=${DEPENDS_PATH}/lib/pkgconfig/ ${PKG_CONFIG_EXECUTABLE} --libs-only-l --static --silence-errors gnutls` + vorbisenc=`PKG_CONFIG_PATH=${DEPENDS_PATH}/lib/pkgconfig/ ${PKG_CONFIG_EXECUTABLE} --libs-only-l --static --silence-errors vorbisenc` + dcadec=`PKG_CONFIG_PATH=${DEPENDS_PATH}/lib/pkgconfig/ ${PKG_CONFIG_EXECUTABLE} --libs-only-l --static --silence-errors dcadec` + $@ $avcodec $avformat $avcodec $avfilter $swscale $swresample -lpostproc $gnutls $vorbisenc $dcadec +else + $@ +fi") + file(COPY ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/ffmpeg/ffmpeg-link-wrapper + DESTINATION ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR} + FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) + set(FFMPEG_LINK_EXECUTABLE "${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/ffmpeg-link-wrapper -o " PARENT_SCOPE) + set(FFMPEG_INCLUDE_DIRS ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/include) + list(APPEND FFMPEG_DEFINITIONS -DFFMPEG_VER_SHA=\"${FFMPEG_VER}\" + -DUSE_STATIC_FFMPEG=1) + set(FFMPEG_FOUND 1) +else() + if(FFMPEG_PATH) + set(ENV{PKG_CONFIG_PATH} "${FFMPEG_PATH}/lib/pkgconfig") + endif() + set(FFMPEG_PKGS libavcodec>=56.26.100 libavfilter>=5.11.100 libavformat>=56.25.101 + libavutil>=54.20.100 libswscale>=3.1.101 libswresample>=1.1.100 libpostproc>=53.3.100) + if(PKG_CONFIG_FOUND) + pkg_check_modules (FFMPEG ${FFMPEG_PKGS}) + string(REGEX REPLACE "framework;" "framework " FFMPEG_LDFLAGS "${FFMPEG_LDFLAGS}") + set(FFMPEG_LIBRARIES ${FFMPEG_LDFLAGS}) + else() + find_path(FFMPEG_INCLUDE_DIRS libavcodec/avcodec.h PATH_SUFFIXES ffmpeg) + find_library(FFMPEG_LIBAVCODEC NAMES avcodec libavcodec PATH_SUFFIXES ffmpeg/libavcodec) + find_library(FFMPEG_LIBAVFILTER NAMES avfilter libavfilter PATH_SUFFIXES ffmpeg/libavfilter) + find_library(FFMPEG_LIBAVFORMAT NAMES avformat libavformat PATH_SUFFIXES ffmpeg/libavformat) + find_library(FFMPEG_LIBAVUTIL NAMES avutil libavutil PATH_SUFFIXES ffmpeg/libavutil) + find_library(FFMPEG_LIBSWSCALE NAMES swscale libswscale PATH_SUFFIXES ffmpeg/libswscale) + find_library(FFMPEG_LIBPOSTPROC NAMES postproc libpostproc PATH_SUFFIXES ffmpeg/libpostproc) + set(FFMPEG_LIBRARIES ${FFMPEG_LIBAVCODEC} ${FFMPEG_LIBAVFILTER} ${FFMPEG_LIBAVFORMAT} + ${FFMPEG_LIBAVUTIL} ${FFMPEG_LIBSWSCALE} ${FFMPEG_LIBPOSTPROC}) + add_custom_target(ffmpeg DEPENDS ${FFMPEG_LIBRARIES}) + endif() + + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(FFMPEG DEFAULT_MSG FFMPEG_INCLUDE_DIRS FFMPEG_LIBRARIES) + set(FFMPEG_FOUND 1) + list(APPEND FFMPEG_DEFINITIONS -DFFMPEG_VER_SHA=\"${FFMPEG_VER}\") +endif() + +mark_as_advanced(FFMPEG_INCLUDE_DIRS FFMPEG_LIBRARIES FFMPEG_DEFINITIONS FFMPEG_FOUND) diff --git a/project/cmake/modules/FindFreeType.cmake b/project/cmake/modules/FindFreeType.cmake new file mode 100644 index 0000000..a1e69ab --- /dev/null +++ b/project/cmake/modules/FindFreeType.cmake @@ -0,0 +1,18 @@ +# - Try to find freetype +# Once done this will define +# +# FREETYPE_FOUND - system has freetype +# FREETYPE_INCLUDE_DIRS - the freetype include directory +# FREETYPE_LIBRARIES - The freetype libraries + +if(PKG_CONFIG_FOUND) + pkg_check_modules (FREETYPE freetype2) +else() + find_path(FREETYPE_INCLUDE_DIRS freetype/freetype.h) + find_library(FREETYPE_LIBRARIES NAMES freetype freetype246MT) +endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(FreeType DEFAULT_MSG FREETYPE_INCLUDE_DIRS FREETYPE_LIBRARIES) + +mark_as_advanced(FREETYPE_INCLUDE_DIRS FREETYPE_LIBRARIES) diff --git a/project/cmake/modules/FindFribidi.cmake b/project/cmake/modules/FindFribidi.cmake new file mode 100644 index 0000000..65a8d8b --- /dev/null +++ b/project/cmake/modules/FindFribidi.cmake @@ -0,0 +1,18 @@ +# - Try to find Fribidi +# Once done this will define +# +# FRIBIDI_FOUND - system has fribidi +# FRIBIDI_INCLUDE_DIRS - the fribidi include directory +# FRIBIDI_LIBRARIES - The fribidi libraries + +if(PKG_CONFIG_FOUND) + pkg_check_modules (FRIBIDI fribidi) +else() + find_path(FRIBIDI_INCLUDE_DIRS fribidi/fribidi.h) + find_library(FRIBIDI_LIBRARIES NAMES fribidi libfribidi) +endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(Fribidi DEFAULT_MSG FRIBIDI_INCLUDE_DIRS FRIBIDI_LIBRARIES) + +mark_as_advanced(FRIBIDI_INCLUDE_DIRS FRIBIDI_LIBRARIES) diff --git a/project/cmake/modules/FindGIF.cmake b/project/cmake/modules/FindGIF.cmake new file mode 100644 index 0000000..8649bd4 --- /dev/null +++ b/project/cmake/modules/FindGIF.cmake @@ -0,0 +1,46 @@ +#.rst: +# FindGIF +# ------- +# Finds the libgif library +# +# This will will define the following variables:: +# +# GIF_FOUND - system has libgif +# GIF_INCLUDE_DIRS - the libgif include directory +# GIF_LIBRARIES - the libgif libraries +# +# and the following imported targets:: +# +# GIF::GIF - The libgif library + +find_path(GIF_INCLUDE_DIR gif_lib.h) + +include(FindPackageHandleStandardArgs) +if(NOT WIN32) + find_library(GIF_LIBRARY NAMES gif) + find_package_handle_standard_args(GIF + REQUIRED_VARS GIF_LIBRARY GIF_INCLUDE_DIR) +else() + # Dynamically loaded DLL + find_package_handle_standard_args(GIF + REQUIRED_VARS GIF_INCLUDE_DIR) +endif() + +if(GIF_FOUND) + set(GIF_LIBRARIES ${GIF_LIBRARY}) + set(GIF_INCLUDE_DIRS ${GIF_INCLUDE_DIR}) + set(GIF_DEFINITIONS -DHAVE_LIBGIF=1) + + if(NOT TARGET GIF::GIF) + add_library(GIF::GIF UNKNOWN IMPORTED) + if(GIF_LIBRARY) + set_target_properties(GIF::GIF PROPERTIES + IMPORTED_LOCATION "${GIF_LIBRARY}") + endif() + set_target_properties(GIF::GIF PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${GIF_INCLUDE_DIR}" + INTERFACE_COMPILE_DEFINITIONS HAVE_LIBGIF=1) + endif() +endif() + +mark_as_advanced(GIF_INCLUDE_DIR GIF_LIBRARY) diff --git a/project/cmake/modules/FindJsonSchemaBuilder.cmake b/project/cmake/modules/FindJsonSchemaBuilder.cmake new file mode 100644 index 0000000..78e8d0a --- /dev/null +++ b/project/cmake/modules/FindJsonSchemaBuilder.cmake @@ -0,0 +1,19 @@ +#.rst: +# FindJsonSchemaBuilder +# --------------------- +# Finds the JsonSchemaBuilder +# +# This will define the following (imported) targets:: +# +# JsonSchemaBuilder::JsonSchemaBuilder - The JsonSchemaBuilder executable + +if(NOT TARGET JsonSchemaBuilder::JsonSchemaBuilder) + if(CMAKE_CROSSCOMPILING) + add_executable(JsonSchemaBuilder::JsonSchemaBuilder IMPORTED GLOBAL) + set_target_properties(JsonSchemaBuilder::JsonSchemaBuilder PROPERTIES + IMPORTED_LOCATION "${NATIVEPREFIX}/bin/JsonSchemaBuilder") + else() + add_subdirectory(${CORE_SOURCE_DIR}/tools/depends/native/JsonSchemaBuilder build/jsonschemabuilder) + add_executable(JsonSchemaBuilder::JsonSchemaBuilder ALIAS JsonSchemaBuilder) + endif() +endif() diff --git a/project/cmake/modules/FindLibDvd.cmake b/project/cmake/modules/FindLibDvd.cmake new file mode 100644 index 0000000..f281773 --- /dev/null +++ b/project/cmake/modules/FindLibDvd.cmake @@ -0,0 +1,116 @@ +set(dvdlibs libdvdread libdvdnav) +if(ENABLE_DVDCSS) + list(APPEND dvdlibs libdvdcss) +endif() + +if(NOT WIN32) + foreach(dvdlib ${dvdlibs}) + file(GLOB VERSION_FILE ${CORE_SOURCE_DIR}/tools/depends/target/${dvdlib}/DVD*-VERSION) + file(STRINGS ${VERSION_FILE} VER) + string(REGEX MATCH "VERSION=[^ ]*$.*" ${dvdlib}_VER "${VER}") + list(GET ${dvdlib}_VER 0 ${dvdlib}_VER) + string(SUBSTRING "${${dvdlib}_VER}" 8 -1 ${dvdlib}_VER) + string(REGEX MATCH "BASE_URL=([^ ]*)" ${dvdlib}_BASE_URL "${VER}") + list(GET ${dvdlib}_BASE_URL 0 ${dvdlib}_BASE_URL) + string(SUBSTRING "${${dvdlib}_BASE_URL}" 9 -1 ${dvdlib}_BASE_URL) + endforeach() + + set(DVDREAD_CFLAGS "${DVDREAD_CFLAGS} -I${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/include") + if(CMAKE_CROSSCOMPILING) + set(EXTRA_FLAGS "CC=${CMAKE_C_COMPILER}") + endif() + + if(APPLE) + set(CMAKE_LD_FLAGS "-framework IOKit -framework CoreFoundation") + endif() + + if(ENABLE_DVDCSS) + ExternalProject_ADD(dvdcss URL ${libdvdcss_BASE_URL}/archive/${libdvdcss_VER}.tar.gz + PREFIX ${CORE_BUILD_DIR}/libdvd + UPDATE_COMMAND PATH=${NATIVEPREFIX}/bin:$ENV{PATH} autoreconf -vif + CONFIGURE_COMMAND ac_cv_path_GIT= /configure + --target=${ARCH} + --host=${ARCH} + --disable-doc + --enable-static + --disable-shared + --with-pic + --prefix= + "${EXTRA_FLAGS}" + "CFLAGS=${CMAKE_C_FLAGS} ${DVDREAD_CFLAGS}" + "LDFLAGS=${CMAKE_LD_FLAGS}") + + core_link_library(${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdcss.a + system/players/VideoPlayer/libdvdcss dvdcss) + endif() + + set(DVDREAD_CFLAGS "-D_XBMC") + if(ENABLE_DVDCSS) + set(DVDREAD_CFLAGS "${DVDREAD_CFLAGS} -DHAVE_DVDCSS_DVDCSS_H -I${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/include") + endif(ENABLE_DVDCSS) + + ExternalProject_ADD(dvdread URL ${libdvdread_BASE_URL}/archive/${libdvdread_VER}.tar.gz + PREFIX ${CORE_BUILD_DIR}/libdvd + UPDATE_COMMAND PATH=${NATIVEPREFIX}/bin:$ENV{PATH} autoreconf -vif + CONFIGURE_COMMAND ac_cv_path_GIT= /configure + --target=${ARCH} + --host=${ARCH} + --enable-static + --disable-shared + --with-pic + --prefix= + "${EXTRA_FLAGS}" + "CFLAGS=${CMAKE_C_FLAGS} ${DVDREAD_CFLAGS}" + "LDFLAGS=${CMAKE_LD_FLAGS}") + if(ENABLE_DVDCSS) + add_dependencies(dvdread dvdcss) + endif() + + core_link_library(${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdread.a + system/players/VideoPlayer/libdvdread dvdread) + + if(ENABLE_DVDCSS) + set(DVDNAV_LIBS -ldvdcss) + endif(ENABLE_DVDCSS) + + ExternalProject_ADD(dvdnav URL ${libdvdnav_BASE_URL}/archive/${libdvdnav_VER}.tar.gz + PREFIX ${CORE_BUILD_DIR}/libdvd + UPDATE_COMMAND PATH=${NATIVEPREFIX}/bin:$ENV{PATH} autoreconf -vif + CONFIGURE_COMMAND ac_cv_path_GIT= /configure + --target=${ARCH} + --host=${ARCH} + --enable-static + --disable-shared + --with-pic + --prefix=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd + "${EXTRA_FLAGS}" + "LDFLAGS=${CMAKE_LD_FLAGS} -L${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib" + "CFLAGS=${CMAKE_C_FLAGS} ${DVDREAD_CFLAGS}" + "DVDREAD_CFLAGS=${DVDREAD_CFLAGS}" + "DVDREAD_LIBS=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdread.la" + "LIBS=${DVDNAV_LIBS}") + add_dependencies(dvdnav dvdread) + core_link_library(${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdnav.a + system/players/VideoPlayer/libdvdnav dvdnav) + + set(LIBDVD_INCLUDE_DIRS ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/include) + set(LIBDVD_LIBRARIES ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdnav.a + ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdread.a) + if(ENABLE_DVDCSS) + list(APPEND LIBDVD_LIBRARIES ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdcss.a) + endif() + set(LIBDVD_LIBRARIES ${LIBDVD_LIBRARIES} CACHE STRING "libdvd libraries" FORCE) + set(LIBDVD_FOUND 1 CACHE BOOL "libdvd found" FORCE) +else() + # Dynamically loaded on Windows + find_path(LIBDVD_INCLUDE_DIR dvdcss/dvdcss.h PATHS ${CORE_SOURCE_DIR}/lib/libdvd/include) + + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(LIBDVD REQUIRED_VARS LIBDVD_INCLUDE_DIR) + + if(LIBDVD_FOUND) + set(LIBDVD_INCLUDE_DIRS ${LIBDVD_INCLUDE_DIR}) + endif() + + mark_as_advanced(LIBDVD_INCLUDE_DIR) +endif() diff --git a/project/cmake/modules/FindLibSmbClient.cmake b/project/cmake/modules/FindLibSmbClient.cmake new file mode 100644 index 0000000..897fa7b --- /dev/null +++ b/project/cmake/modules/FindLibSmbClient.cmake @@ -0,0 +1,65 @@ +# - Try to find Libsmbclient + +if(PKGCONFIG_FOUND) + pkg_check_modules(LIBSMBCLIENT smbclient) + set(LIBSMBCLIENT_DEFINITIONS -DHAVE_LIBSMBCLIENT=1) +endif() + +if (LIBSMBCLIENT_LIBRARIES AND LIBSMBCLIENT_INCLUDE_DIRS) + # in cache already + set(LIBSMBCLIENT_FOUND TRUE) +else (LIBSMBCLIENT_LIBRARIES AND LIBSMBCLIENT_INCLUDE_DIRS) + find_path(LIBSMBCLIENT_INCLUDE_DIR + NAMES + libsmbclient.h + PATHS + /usr/include + /usr/local/include + /opt/local/include + /sw/include + ) + + find_library(SMBCLIENT_LIBRARY + NAMES + smbclient + PATHS + /usr/lib + /usr/local/lib + /opt/local/lib + /sw/lib + ) + + if (SMBCLIENT_LIBRARY) + set(SMBCLIENT_FOUND TRUE) + endif (SMBCLIENT_LIBRARY) + + set(LIBSMBCLIENT_INCLUDE_DIRS + ${LIBSMBCLIENT_INCLUDE_DIR} + ) + + if (SMBCLIENT_FOUND) + set(LIBSMBCLIENT_LIBRARIES + ${LIBSMBCLIENT_LIBRARIES} + ${SMBCLIENT_LIBRARY} + ) + endif (SMBCLIENT_FOUND) + + if (LIBSMBCLIENT_INCLUDE_DIRS AND LIBSMBCLIENT_LIBRARIES) + set(LIBSMBCLIENT_FOUND TRUE) + endif (LIBSMBCLIENT_INCLUDE_DIRS AND LIBSMBCLIENT_LIBRARIES) + + if (LIBSMBCLIENT_FOUND) + if (NOT Libsmbclient_FIND_QUIETLY) + message(STATUS "Found Libsmbclient: ${LIBSMBCLIENT_LIBRARIES}") + endif (NOT Libsmbclient_FIND_QUIETLY) + else (LIBSMBCLIENT_FOUND) + if (Libsmbclient_FIND_REQUIRED) + message(FATAL_ERROR "Could not find Libsmbclient") + endif (Libsmbclient_FIND_REQUIRED) + endif (LIBSMBCLIENT_FOUND) + set(LIBSMBCLIENT_DEFINITIONS -DHAVE_LIBSMBCLIENT=1) + + # show the LIBSMBCLIENT_INCLUDE_DIRS and LIBSMBCLIENT_LIBRARIES variables only in the advanced view + mark_as_advanced(LIBSMBCLIENT_INCLUDE_DIRS LIBSMBCLIENT_LIBRARIES LIBSMBCLIENT_DEFINITIONS) + +endif (LIBSMBCLIENT_LIBRARIES AND LIBSMBCLIENT_INCLUDE_DIRS) diff --git a/project/cmake/modules/FindLibUSB.cmake b/project/cmake/modules/FindLibUSB.cmake new file mode 100644 index 0000000..e976bf4 --- /dev/null +++ b/project/cmake/modules/FindLibUSB.cmake @@ -0,0 +1,45 @@ +#.rst: +# FindLibUSB +# ---------- +# Finds the USB library +# +# This will will define the following variables:: +# +# LIBUSB_FOUND - system has LibUSB +# LIBUSB_INCLUDE_DIRS - the USB include directory +# LIBUSB_LIBRARIES - the USB libraries +# +# and the following imported targets:: +# +# LibUSB::LibUSB - The USB library + +if(PKG_CONFIG_FOUND) + pkg_check_modules(PC_LIBUSB libusb QUIET) +endif() + +find_path(LIBUSB_INCLUDE_DIR usb.h + PATHS ${PC_LIBUSB_INCLUDEDIR}) +find_library(LIBUSB_LIBRARY NAMES usb + PATHS ${PC_LIBUSB_INCLUDEDIR}) +set(LIBUSB_VERSION ${PC_LIBUSB_VERSION}) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(LIBUSB + REQUIRED_VARS LIBUSB_LIBRARY LIBUSB_INCLUDE_DIR + VERSION_VAR LIBUSB_VERSION) + +if(LIBUSB_FOUND) + set(LIBUSB_INCLUDE_DIRS ${LIBUSB_INCLUDE_DIR}) + set(LIBUSB_LIBRARIES ${LIBUSB_LIBRARY}) + set(LIBUSB_DEFINITIONS -DUSE_LIBUSB=1) + + if(NOT TARGET LibUSB::LibUSB) + add_library(LibUSB::LibUSB UNKNOWN IMPORTED) + set_target_properties(LibUSB::LibUSB PROPERTIES + IMPORTED_LOCATION "${LIBUSB_LIBRARY}" + INTERFACE_INCLUDE_DIRECTORIES "${LIBUSB_INCLUDE_DIR}" + INTERFACE_COMPILE_DEFINITIONS USE_LIBUSB=1) + endif() +endif() + +mark_as_advanced(USB_INCLUDE_DIR USB_LIBRARY) diff --git a/project/cmake/modules/FindLzo2.cmake b/project/cmake/modules/FindLzo2.cmake new file mode 100644 index 0000000..33eee10 --- /dev/null +++ b/project/cmake/modules/FindLzo2.cmake @@ -0,0 +1,22 @@ +# - Try to find Lzo2 +# Once done this will define +# +# Lzo2_FOUND - system has Lzo2 +# Lzo2_INCLUDE_DIR - the Lzo2 include directory +# Lzo2_LIBRARIES - Link these to use Lzo2 +# Lzo2_NEED_PREFIX - this is set if the functions are prefixed with BZ2_ + +# Copyright (c) 2006, Alexander Neundorf, +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + + +FIND_PATH(LZO2_INCLUDE_DIRS lzo1x.h PATH_SUFFIXES lzo) + +FIND_LIBRARY(LZO2_LIBRARIES NAMES lzo2 liblzo2) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(Lzo2 DEFAULT_MSG LZO2_INCLUDE_DIRS LZO2_LIBRARIES) + +MARK_AS_ADVANCED(LZO2_INCLUDE_DIRS LZO2_LIBRARIES) diff --git a/project/cmake/modules/FindMMAL.cmake b/project/cmake/modules/FindMMAL.cmake new file mode 100644 index 0000000..8843983 --- /dev/null +++ b/project/cmake/modules/FindMMAL.cmake @@ -0,0 +1,36 @@ +# - Try to find MMAL +# Once done this will define +# +# MMAL_FOUND - system has MMAL +# MMAL_INCLUDE_DIRS - the MMAL include directory +# MMAL_LIBRARIES - The MMAL libraries + +if(PKG_CONFIG_FOUND) + pkg_check_modules(MMAL mmal QUIET) +endif() + +if(NOT MMAL_FOUND) + find_path(MMAL_INCLUDE_DIRS interface/mmal/mmal.h) + find_library(MMAL_LIBRARY mmal) + find_library(MMALCORE_LIBRARY mmal_core) + find_library(MMALUTIL_LIBRARY mmal_util) + find_library(MMALCLIENT_LIBRARY mmal_vc_client) + find_library(MMALCOMPONENT_LIBRARY mmal_components) + find_library(BCM_LIBRARY bcm_host) + find_library(VCHIQ_LIBRARY vchiq_arm) + find_library(VCOS_LIBRARY vcos) + find_library(VCSM_LIBRARY vcsm) + find_library(CONTAINER_LIBRARY containers) + + set(MMAL_LIBRARIES ${MMAL_LIBRARY} ${MMALCORE_LIBRARY} ${MMALUTIL_LIBRARY} + ${MMALCLIENT_LIBRARY} ${MMALCOMPONENT_LIBRARY} + ${BCM_LIBRARY} ${VCHIQ_LIBRARY} ${VCOS_LIBRARY} ${VCSM_LIBRARY} ${CONTAINER_LIBRARY} + CACHE STRING "mmal libraries" FORCE) +endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(MMAL DEFAULT_MSG MMAL_LIBRARIES MMAL_INCLUDE_DIRS) + +list(APPEND MMAL_DEFINITIONS -DHAVE_MMAL=1 -DHAS_MMAL=1) + +mark_as_advanced(MMAL_INCLUDE_DIRS MMAL_LIBRARIES MMAL_DEFINITIONS) diff --git a/project/cmake/modules/FindMicroHttpd.cmake b/project/cmake/modules/FindMicroHttpd.cmake new file mode 100644 index 0000000..f73dc77 --- /dev/null +++ b/project/cmake/modules/FindMicroHttpd.cmake @@ -0,0 +1,106 @@ +IF (NOT WIN32) + include(FindPkgConfig) + if ( PKG_CONFIG_FOUND ) + + pkg_check_modules (MICROHTTPD libmicrohttpd>=0.4) + + set(MICROHTTPD_DEFINITIONS ${MICROHTTPD_CFLAGS_OTHER}) + endif(PKG_CONFIG_FOUND) +endif (NOT WIN32) + +# +# set defaults +if(NOT MICROHTTPD_FOUND) + SET(_microhttpd_HOME "/usr/local") + SET(_microhttpd_INCLUDE_SEARCH_DIRS + ${CMAKE_INCLUDE_PATH} + /usr/local/include + /usr/include + ) + + SET(_microhttpd_LIBRARIES_SEARCH_DIRS + ${CMAKE_LIBRARY_PATH} + /usr/local/lib + /usr/lib + ) + + ## + if( "${MICROHTTPD_HOME}" STREQUAL "") + if("" MATCHES "$ENV{MICROHTTPD_HOME}") + message(STATUS "MICROHTTPD_HOME env is not set, setting it to /usr/local") + set (MICROHTTPD_HOME ${_microhttpd_HOME}) + else("" MATCHES "$ENV{MICROHTTPD_HOME}") + set (MICROHTTPD_HOME "$ENV{MICROHTTPD_HOME}") + endif("" MATCHES "$ENV{MICROHTTPD_HOME}") + else( "${MICROHTTPD_HOME}" STREQUAL "") + message(STATUS "MICROHTTPD_HOME is not empty: \"${MICROHTTPD_HOME}\"") + endif( "${MICROHTTPD_HOME}" STREQUAL "") + ## + + message(STATUS "Looking for microhttpd in ${MICROHTTPD_HOME}") + + IF( NOT ${MICROHTTPD_HOME} STREQUAL "" ) + SET(_microhttpd_INCLUDE_SEARCH_DIRS ${MICROHTTPD_HOME}/include ${_microhttpd_INCLUDE_SEARCH_DIRS}) + SET(_microhttpd_LIBRARIES_SEARCH_DIRS ${MICROHTTPD_HOME}/lib ${_microhttpd_LIBRARIES_SEARCH_DIRS}) + SET(_microhttpd_HOME ${MICROHTTPD_HOME}) + ENDIF( NOT ${MICROHTTPD_HOME} STREQUAL "" ) + + IF( NOT $ENV{MICROHTTPD_INCLUDEDIR} STREQUAL "" ) + SET(_microhttpd_INCLUDE_SEARCH_DIRS $ENV{MICROHTTPD_INCLUDEDIR} ${_microhttpd_INCLUDE_SEARCH_DIRS}) + ENDIF( NOT $ENV{MICROHTTPD_INCLUDEDIR} STREQUAL "" ) + + IF( NOT $ENV{MICROHTTPD_LIBRARYDIR} STREQUAL "" ) + SET(_microhttpd_LIBRARIES_SEARCH_DIRS $ENV{MICROHTTPD_LIBRARYDIR} ${_microhttpd_LIBRARIES_SEARCH_DIRS}) + ENDIF( NOT $ENV{MICROHTTPD_LIBRARYDIR} STREQUAL "" ) + + IF( MICROHTTPD_HOME ) + SET(_microhttpd_INCLUDE_SEARCH_DIRS ${MICROHTTPD_HOME}/include ${_microhttpd_INCLUDE_SEARCH_DIRS}) + SET(_microhttpd_LIBRARIES_SEARCH_DIRS ${MICROHTTPD_HOME}/lib ${_microhttpd_LIBRARIES_SEARCH_DIRS}) + SET(_microhttpd_HOME ${MICROHTTPD_HOME}) + ENDIF( MICROHTTPD_HOME ) + + # find the include files + FIND_PATH(MICROHTTPD_INCLUDE_DIRS microhttpd.h + HINTS + ${_microhttpd_INCLUDE_SEARCH_DIRS} + ${PC_MICROHTTPD_INCLUDEDIR} + ${PC_MICROHTTPD_INCLUDE_DIRS} + ${CMAKE_INCLUDE_PATH} + ) + + # locate the library + IF(WIN32) + SET(MICROHTTPD_LIBRARY_NAMES ${MICROHTTPD_LIBRARY_NAMES} libmicrohttpd.lib) + ELSE(WIN32) + SET(MICROHTTPD_LIBRARY_NAMES ${MICROHTTPD_LIBRARY_NAMES} libmicrohttpd.a) + ENDIF(WIN32) + FIND_LIBRARY(MICROHTTPD_LIBRARIES NAMES ${MICROHTTPD_LIBRARY_NAMES} + HINTS + ${_microhttpd_LIBRARIES_SEARCH_DIRS} + ${PC_MICROHTTPD_LIBDIR} + ${PC_MICROHTTPD_LIBRARY_DIRS} + ) + + # if the include and the program are found then we have it + IF(MICROHTTPD_INCLUDE_DIRS AND MICROHTTPD_LIBRARIES) + SET(MICROHTTPD_FOUND "YES") + ENDIF(MICROHTTPD_INCLUDE_DIRS AND MICROHTTPD_LIBRARIES) + + if( NOT WIN32) + find_library(GCRYPT_LIBRARY gcrypt) + find_library(GPGERROR_LIBRARY gpg-error) + list(APPEND MICROHTTPD_LIBRARIES ${GCRYPT_LIBRARY} ${GPGERROR_LIBRARY}) + if(NOT APPLE AND NOT CORE_SYSTEM_NAME STREQUAL android) + list(APPEND MICROHTTPD_LIBRARIES "-lrt") + endif() + endif( NOT WIN32) +endif() + +list(APPEND MICROHTTPD_DEFINITIONS -DHAVE_LIBMICROHTTPD=1) + +MARK_AS_ADVANCED( + MICROHTTPD_FOUND + MICROHTTPD_LIBRARIES + MICROHTTPD_DEFINITIONS + MICROHTTPD_INCLUDE_DIRS +) diff --git a/project/cmake/modules/FindMySqlClient.cmake b/project/cmake/modules/FindMySqlClient.cmake new file mode 100644 index 0000000..12fee5c --- /dev/null +++ b/project/cmake/modules/FindMySqlClient.cmake @@ -0,0 +1,53 @@ +#.rst: +# FindMySqlClient +# --------------- +# Finds the MySqlClient library +# +# This will will define the following variables:: +# +# MYSQLCLIENT_FOUND - system has MySqlClient +# MYSQLCLIENT_INCLUDE_DIRS - the MySqlClient include directory +# MYSQLCLIENT_LIBRARIES - the MySqlClient libraries +# MYSQLCLIENT_DEFINITIONS - the MySqlClient compile definitions +# +# and the following imported targets:: +# +# MySqlClient::MySqlClient - The MySqlClient library + +find_path(MYSQLCLIENT_INCLUDE_DIR mysql/mysql_time.h) +find_library(MYSQLCLIENT_LIBRARY_RELEASE NAMES mysqlclient mysqlclient_r + PATH_SUFFIXES ${CONFIGURATION_LIBDIR_RELEASE} mysql) +find_library(MYSQLCLIENT_LIBRARY_DEBUG NAMES mysqlclient + PATH_SUFFIXES ${CONFIGURATION_LIBDIR_DEBUG} mysql) + +include(SelectLibraryConfigurations) +select_library_configurations(MYSQLCLIENT) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(MYSQLCLIENT + REQUIRED_VARS MYSQLCLIENT_LIBRARY MYSQLCLIENT_INCLUDE_DIR) + +if(MYSQLCLIENT_FOUND) + set(MYSQLCLIENT_LIBRARIES ${MYSQLCLIENT_LIBRARY}) + set(MYSQLCLIENT_INCLUDE_DIRS ${MYSQLCLIENT_INCLUDE_DIR}) + set(MYSQLCLIENT_DEFINITIONS -DHAVE_MYSQL=1) + + if(NOT TARGET MySqlClient::MySqlClient) + add_library(MySqlClient::MySqlClient UNKNOWN IMPORTED) + if(MYSQLCLIENT_LIBRARY_RELEASE) + set_target_properties(MySqlClient::MySqlClient PROPERTIES + IMPORTED_CONFIGURATIONS RELEASE + IMPORTED_LOCATION "${MYSQLCLIENT_LIBRARY_RELEASE}") + endif() + if(MYSQLCLIENT_LIBRARY_DEBUG) + set_target_properties(MySqlClient::MySqlClient PROPERTIES + IMPORTED_CONFIGURATIONS DEBUG + IMPORTED_LOCATION "${MYSQLCLIENT_LIBRARY_DEBUG}") + endif() + set_target_properties(MySqlClient::MySqlClient PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${MYSQLCLIENT_INCLUDE_DIR}" + INTERFACE_COMPILE_DEFINITIONS HAVE_MYSQL=1) + endif() +endif() + +mark_as_advanced(MYSQLCLIENT_INCLUDE_DIR MYSQLCLIENT_LIBRARY) diff --git a/project/cmake/modules/FindNFS.cmake b/project/cmake/modules/FindNFS.cmake new file mode 100644 index 0000000..3fd9d61 --- /dev/null +++ b/project/cmake/modules/FindNFS.cmake @@ -0,0 +1,58 @@ +#.rst: +# FindNFS +# ------- +# Finds the libnfs library +# +# This will will define the following variables:: +# +# NFS_FOUND - system has libnfs +# NFS_INCLUDE_DIRS - the libnfs include directory +# NFS_LIBRARIES - the libnfs libraries +# NFS_DEFINITIONS - the libnfs compile definitions +# +# and the following imported targets:: +# +# NFS::NFS - The libnfs library + +if(PKG_CONFIG_FOUND) + pkg_check_modules(NFS libnfs QUIET) +endif() + +find_path(NFS_INCLUDE_DIR nfsc/libnfs.h + PATHS ${PC_NFS_INCLUDEDIR}) + +set(NFS_VERSION ${PC_NFS_VERSION}) + +include(FindPackageHandleStandardArgs) +if(NOT WIN32) + find_library(NFS_LIBRARY NAMES nfs + PATHS ${PC_NFS_LIBDIR}) + + find_package_handle_standard_args(NFS + REQUIRED_VARS NFS_LIBRARY NFS_INCLUDE_DIR + VERSION_VAR NFS_VERSION) +else() + # Dynamically loaded DLL + find_package_handle_standard_args(NFS + REQUIRED_VARS NFS_INCLUDE_DIR + VERSION_VAR NFS_VERSION) +endif() + +if(NFS_FOUND) + set(NFS_LIBRARIES ${NFS_LIBRARY}) + set(NFS_INCLUDE_DIRS ${NFS_INCLUDE_DIR}) + set(NFS_DEFINITIONS -DHAVE_LIBNFS=1) + + if(NOT TARGET NFS::NFS) + add_library(NFS::NFS UNKNOWN IMPORTED) + if(NFS_LIBRARY) + set_target_properties(NFS::NFS PROPERTIES + IMPORTED_LOCATION "${NFS_LIBRARY_RELEASE}") + endif() + set_target_properties(NFS::NFS PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${NFS_INCLUDE_DIR}" + INTERFACE_COMPILE_DEFINITIONS HAVE_LIBNFS=1) + endif() +endif() + +mark_as_advanced(NFS_INCLUDE_DIR NFS_LIBRARY) diff --git a/project/cmake/modules/FindOpenGLES.cmake b/project/cmake/modules/FindOpenGLES.cmake new file mode 100644 index 0000000..5d71dd4 --- /dev/null +++ b/project/cmake/modules/FindOpenGLES.cmake @@ -0,0 +1,48 @@ +#.rst: +# FindOpenGLES +# ------------ +# Finds the OpenGLES2 library +# +# This will will define the following variables:: +# +# OPENGLES_FOUND - system has OpenGLES +# OPENGLES_INCLUDE_DIRS - the OpenGLES include directory +# OPENGLES_LIBRARIES - the OpenGLES libraries +# OPENGLES_DEFINITIONS - the OpenGLES definitions + +find_package(EMBEDDED) + +if(PKG_CONFIG_FOUND AND NOT PLATFORM STREQUAL "raspberry-pi") + pkg_check_modules(PC_OPENGLES glesv2) + if(NOT OPENGLES_FOUND AND EMBEDDED_FOUND) + set(CMAKE_PREFIX_PATH ${EMBEDDED_FOUND} ${CMAKE_PREFIX_PATH}) + endif() +endif() + +if(NOT CORE_SYSTEM_NAME STREQUAL ios) + find_path(OPENGLES_INCLUDE_DIR GLES2/gl2.h + PATHS ${PC_OPENGLES_INCLUDEDIR}) + find_library(OPENGLES_gl_LIBRARY NAMES GLESv2 + PATHS ${PC_OPENGLES_LIBDIR}) + find_library(OPENGLES_egl_LIBRARY NAMES EGL + PATHS ${PC_OPENGLES_LIBDIR}) +else() + find_library(OPENGLES_gl_LIBRARY NAMES OpenGLES + PATHS ${CMAKE_OSX_SYSROOT}/System/Library + PATH_SUFFIXES Frameworks + NO_DEFAULT_PATH) + set(OPENGLES_INCLUDE_DIR ${OPENGLES_gl_LIBRARY}/Headers) + set(OPENGLES_egl_LIBRARY ${OPENGLES_gl_LIBRARY}) +endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(OpenGLES + REQUIRED_VARS OPENGLES_gl_LIBRARY OPENGLES_egl_LIBRARY OPENGLES_INCLUDE_DIR) + +if(OPENGLES_FOUND) + set(OPENGLES_INCLUDE_DIRS ${OPENGLES_INCLUDE_DIR}) + set(OPENGLES_LIBRARIES ${OPENGLES_gl_LIBRARY} ${OPENGLES_egl_LIBRARY}) + set(OPENGLES_DEFINITIONS -DHAVE_LIBGLESV2 -DHAVE_LIBEGL=1) +endif() + +mark_as_advanced(OPENGLES_INCLUDE_DIR OPENGLES_gl_LIBRARY OPENGLES_egl_LIBRARY) diff --git a/project/cmake/modules/FindOpenGl.cmake b/project/cmake/modules/FindOpenGl.cmake new file mode 100644 index 0000000..9d6ec01 --- /dev/null +++ b/project/cmake/modules/FindOpenGl.cmake @@ -0,0 +1,43 @@ +#.rst: +# FindOpenGl +# ---------- +# Finds the FindOpenGl library +# +# This will will define the following variables:: +# +# OPENGL_FOUND - system has OpenGl +# OPENGL_INCLUDE_DIRS - the OpenGl include directory +# OPENGL_LIBRARIES - the OpenGl libraries +# OPENGL_DEFINITIONS - the OpenGl definitions + +if(PKG_CONFIG_FOUND) + pkg_check_modules(PC_OPENGL gl glu) +endif() + +if(NOT CORE_SYSTEM_NAME STREQUAL darwin) + find_path(OPENGL_INCLUDE_DIR GL/gl.h + PATHS ${PC_OPENGL_gl_INCLUDEDIR}) + find_library(OPENGL_gl_LIBRARY NAMES GL + PATHS ${PC_OPENGL_gl_LIBDIR}) + find_library(OPENGL_glu_LIBRARY NAMES GLU + PATHS ${PC_OPENGL_glu_LIBDIR}) +else() + find_library(OPENGL_gl_LIBRARY NAMES OpenGL + PATHS ${CMAKE_OSX_SYSROOT}/System/Library + PATH_SUFFIXES Frameworks + NO_DEFAULT_PATH) + set(OPENGL_INCLUDE_DIR ${OPENGL_gl_LIBRARY}/Headers) + set(OPENGL_glu_LIBRARY ${OPENGL_gl_LIBRARY}) +endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(OpenGl + REQUIRED_VARS OPENGL_gl_LIBRARY OPENGL_glu_LIBRARY OPENGL_INCLUDE_DIR) + +if(OPENGL_FOUND) + set(OPENGL_INCLUDE_DIRS ${OPENGL_INCLUDE_DIR}) + set(OPENGL_LIBRARIES ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY}) + set(OPENGL_DEFINITIONS -DHAVE_LIBGL=1) +endif() + +mark_as_advanced(OPENGL_INCLUDE_DIR OPENGL_gl_LIBRARY OPENGL_glu_LIBRARY) diff --git a/project/cmake/modules/FindPCRE.cmake b/project/cmake/modules/FindPCRE.cmake new file mode 100644 index 0000000..54c4ab4 --- /dev/null +++ b/project/cmake/modules/FindPCRE.cmake @@ -0,0 +1,91 @@ +#.rst: +# FindPCRE +# -------- +# Finds the PCRECPP library +# +# This will will define the following variables:: +# +# PCRE_FOUND - system has libpcrecpp +# PCRE_INCLUDE_DIRS - the libpcrecpp include directory +# PCRE_LIBRARIES - the libpcrecpp libraries +# PCRE_DEFINITIONS - the libpcrecpp definitions +# +# and the following imported targets:: +# +# PCRE::PCRECPP - The PCRECPP library +# PCRE::PCRE - The PCRE library + +if(PKG_CONFIG_FOUND) + pkg_check_modules(PC_PCRE libpcrecpp QUIET) +endif() + +find_path(PCRE_INCLUDE_DIR pcrecpp.h + PATHS ${PC_PCRE_INCLUDEDIR}) +find_library(PCRECPP_LIBRARY_RELEASE NAMES pcrecpp + PATH_SUFFIXES ${CONFIGURATION_LIBDIR_RELEASE} + PATHS ${PC_PCRE_LIBDIR}) +find_library(PCRE_LIBRARY_RELEASE NAMES pcre + PATH_SUFFIXES ${CONFIGURATION_LIBDIR_RELEASE} + PATHS ${PC_PCRE_LIBDIR}) +find_library(PCRECPP_LIBRARY_DEBUG NAMES pcrecppd + PATH_SUFFIXES ${CONFIGURATION_LIBDIR_DEBUG} + PATHS ${PC_PCRE_LIBDIR}) +find_library(PCRE_LIBRARY_DEBUG NAMES pcred + PATH_SUFFIXES ${CONFIGURATION_LIBDIR_DEBUG} + PATHS ${PC_PCRE_LIBDIR}) +set(PCRE_VERSION ${PC_PCRE_VERSION}) + +include(SelectLibraryConfigurations) +select_library_configurations(PCRECPP) +select_library_configurations(PCRE) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(PCRE + REQUIRED_VARS PCRECPP_LIBRARY PCRE_LIBRARY PCRE_INCLUDE_DIR + VERSION_VAR PCRE_VERSION) + +if(PCRE_FOUND) + set(PCRE_LIBRARIES ${PCRECPP_LIBRARY} ${PCRE_LIBRARY}) + set(PCRE_INCLUDE_DIRS ${PCRE_INCLUDE_DIR}) + if(WIN32) + set(PCRE_DEFINITIONS -DPCRE_STATIC=1) + endif() + + if(NOT TARGET PCRE::PCRE) + add_library(PCRE::PCRE UNKNOWN IMPORTED) + if(PCRE_LIBRARY_RELEASE) + set_target_properties(PCRE::PCRE PROPERTIES + IMPORTED_CONFIGURATIONS RELEASE + IMPORTED_LOCATION "${PCRE_LIBRARY_RELEASE}") + endif() + if(PCRE_LIBRARY_DEBUG) + set_target_properties(PCRE::PCRE PROPERTIES + IMPORTED_CONFIGURATIONS DEBUG + IMPORTED_LOCATION "${PCRE_LIBRARY_DEBUG}") + endif() + set_target_properties(PCRE::PCRE PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${PCRE_INCLUDE_DIR}") + if(WIN32) + set_target_properties(PCRE::PCRE PROPERTIES + INTERFACE_COMPILE_DEFINITIONS PCRE_STATIC=1) + endif() + + endif() + if(NOT TARGET PCRE::PCRECPP) + add_library(PCRE::PCRECPP UNKNOWN IMPORTED) + if(PCRE_LIBRARY_RELEASE) + set_target_properties(PCRE::PCRECPP PROPERTIES + IMPORTED_CONFIGURATIONS RELEASE + IMPORTED_LOCATION "${PCRECPP_LIBRARY_RELEASE}") + endif() + if(PCRE_LIBRARY_DEBUG) + set_target_properties(PCRE::PCRECPP PROPERTIES + IMPORTED_CONFIGURATIONS DEBUG + IMPORTED_LOCATION "${PCRECPP_LIBRARY_DEBUG}") + endif() + set_target_properties(PCRE::PCRECPP PROPERTIES + INTERFACE_LINK_LIBRARIES PCRE::PCRE) + endif() +endif() + +mark_as_advanced(PCRE_INCLUDE_DIR PCRECPP_LIBRARY PCRE_LIBRARY) diff --git a/project/cmake/modules/FindPlist.cmake b/project/cmake/modules/FindPlist.cmake new file mode 100644 index 0000000..d7a6c48 --- /dev/null +++ b/project/cmake/modules/FindPlist.cmake @@ -0,0 +1,58 @@ +#.rst: +# FindPlist +# --------- +# Finds the Plist library +# +# This will will define the following variables:: +# +# PLIST_FOUND - system has Plist library +# PLIST_INCLUDE_DIRS - the Plist library include directory +# PLIST_LIBRARIES - the Plist libraries +# PLIST_DEFINITIONS - the Plist compile definitions +# +# and the following imported targets:: +# +# Plist::Plist - The Plist library + +if(PKG_CONFIG_FOUND) + pkg_check_modules(PC_PLIST libplist QUIET) +endif() + +find_path(PLIST_INCLUDE_DIR plist/plist.h + PATHS ${PC_PLIST_INCLUDEDIR}) + +set(PLIST_VERSION ${PC_PLIST_VERSION}) + +include(FindPackageHandleStandardArgs) +if(NOT WIN32) + find_library(PLIST_LIBRARY NAMES plist + PATHS ${PC_PLIST_LIBDIR}) + + find_package_handle_standard_args(PLIST + REQUIRED_VARS PLIST_LIBRARY PLIST_INCLUDE_DIR + VERSION_VAR PLIST_VERSION) +else() + # Dynamically loaded DLL + find_package_handle_standard_args(PLIST + REQUIRED_VARS PLIST_INCLUDE_DIR + VERSION_VAR PLIST_VERSION) +endif() + +if(PLIST_FOUND) + set(PLIST_LIBRARIES ${PLIST_LIBRARY}) + set(PLIST_INCLUDE_DIRS ${PLIST_INCLUDE_DIR}) + set(PLIST_DEFINITIONS -DHAVE_LIBPLIST=1) + + if(NOT TARGET Plist::Plist) + add_library(Plist::Plist UNKNOWN IMPORTED) + if(PLIST_LIBRARY) + set_target_properties(Plist::Plist PROPERTIES + IMPORTED_LOCATION "${PLIST_LIBRARY}") + endif() + set_target_properties(Plist::Plist PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${PLIST_INCLUDE_DIR}" + INTERFACE_COMPILE_DEFINITIONS HAVE_LIBPLIST=1) + endif() +endif() + +mark_as_advanced(PLIST_INCLUDE_DIR PLIST_LIBRARY) diff --git a/project/cmake/modules/FindPulseAudio.cmake b/project/cmake/modules/FindPulseAudio.cmake new file mode 100644 index 0000000..5b57364 --- /dev/null +++ b/project/cmake/modules/FindPulseAudio.cmake @@ -0,0 +1,72 @@ +# Try to find the PulseAudio library +# +# Once done this will define: +# +# PULSEAUDIO_FOUND - system has the PulseAudio library +# PULSEAUDIO_INCLUDE_DIR - the PulseAudio include directory +# PULSEAUDIO_LIBRARY - the libraries needed to use PulseAudio +# PULSEAUDIO_MAINLOOP_LIBRARY - the libraries needed to use PulsAudio Mailoop +# +# Copyright (c) 2008, Matthias Kretz, +# Copyright (c) 2009, Marcus Hufgard, +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + +if (NOT PULSEAUDIO_MINIMUM_VERSION) + set(PULSEAUDIO_MINIMUM_VERSION "1.0.0") +endif (NOT PULSEAUDIO_MINIMUM_VERSION) + +if (PULSEAUDIO_INCLUDE_DIRS AND PULSEAUDIO_LIBRARY AND PULSEAUDIO_MAINLOOP_LIBRARY) + # Already in cache, be silent + set(PULSEAUDIO_FIND_QUIETLY TRUE) +endif (PULSEAUDIO_INCLUDE_DIRS AND PULSEAUDIO_LIBRARY AND PULSEAUDIO_MAINLOOP_LIBRARY) + +if (NOT WIN32) + include(FindPkgConfig) + pkg_check_modules(PC_PULSEAUDIO libpulse>=${PULSEAUDIO_MINIMUM_VERSION}) + pkg_check_modules(PC_PULSEAUDIO_MAINLOOP libpulse-mainloop-glib) +endif (NOT WIN32) + +FIND_PATH(PULSEAUDIO_INCLUDE_DIRS pulse/pulseaudio.h + HINTS + ${PC_PULSEAUDIO_INCLUDEDIR} + ${PC_PULSEAUDIO_INCLUDE_DIRS} + ) + +FIND_LIBRARY(PULSEAUDIO_LIBRARY NAMES pulse libpulse + HINTS + ${PC_PULSEAUDIO_LIBDIR} + ${PC_PULSEAUDIO_LIBRARY_DIRS} + ) + +FIND_LIBRARY(PULSEAUDIO_MAINLOOP_LIBRARY NAMES pulse-mainloop pulse-mainloop-glib libpulse-mainloop-glib + HINTS + ${PC_PULSEAUDIO_LIBDIR} + ${PC_PULSEAUDIO_LIBRARY_DIRS} + ) + +if (NOT PULSEAUDIO_INCLUDE_DIRS OR NOT PULSEAUDIO_LIBRARY) + set(PULSEAUDIO_FOUND FALSE) +else() + set(PULSEAUDIO_FOUND TRUE) +endif() + +if (PULSEAUDIO_FOUND) + if (NOT PULSEAUDIO_FIND_QUIETLY) + message(STATUS "Found PulseAudio: ${PULSEAUDIO_LIBRARY}") + if (PULSEAUDIO_MAINLOOP_LIBRARY) + message(STATUS "Found PulseAudio Mainloop: ${PULSEAUDIO_MAINLOOP_LIBRARY}") + else (PULSAUDIO_MAINLOOP_LIBRARY) + message(STATUS "Could NOT find PulseAudio Mainloop Library") + endif (PULSEAUDIO_MAINLOOP_LIBRARY) + endif (NOT PULSEAUDIO_FIND_QUIETLY) +else (PULSEAUDIO_FOUND) + message(STATUS "Could NOT find PulseAudio") +endif (PULSEAUDIO_FOUND) + +set(PULSEAUDIO_LIBRARIES ${PULSEAUDIO_LIBRARY}) + +list(APPEND PULSEAUDIO_DEFINITIONS -DHAVE_LIBPULSE=1) + +mark_as_advanced(PULSEAUDIO_INCLUDE_DIRS PULSEAUDIO_LIBRARIES PULSEAUDIO_LIBRARY PULSEAUDIO_MAINLOOP_LIBRARY) diff --git a/project/cmake/modules/FindPython.cmake b/project/cmake/modules/FindPython.cmake new file mode 100644 index 0000000..6f9f236 --- /dev/null +++ b/project/cmake/modules/FindPython.cmake @@ -0,0 +1,43 @@ +# - Try to find python +# Once done this will define +# +# PYTHON_FOUND - system has PYTHON +# PYTHON_INCLUDE_DIRS - the python include directory +# PYTHON_LIBRARIES - The python libraries + +if(PKG_CONFIG_FOUND AND NOT CMAKE_CROSSCOMPILING) + pkg_check_modules (PYTHON python) +endif() + +if(NOT PYTHON_FOUND) + if(CMAKE_CROSSCOMPILING) + find_program(PYTHON_EXECUTABLE python ONLY_CMAKE_FIND_ROOT_PATH) + find_library(PYTHON_LIBRARY NAMES python2.6 python2.7) + find_path(PYTHON_INCLUDE_DIRS NAMES Python.h PATHS ${DEPENDS_PATH}/include/python2.6 ${DEPENDS_PATH}/include/python2.7) + set(PYTHON_INCLUDE_DIR ${PYTHON_INCLUDE_DIRS} CACHE PATH "python include dir" FORCE) + + find_library(FFI_LIBRARY ffi) + find_library(EXPAT_LIBRARY expat) + find_library(INTL_LIBRARY intl) + + if(NOT CORE_SYSTEM_NAME STREQUAL android) + set(PYTHON_DEP_LIBRARIES -lpthread -ldl -lutil) + endif() + + set(PYTHON_LIBRARIES ${PYTHON_LIBRARY} ${FFI_LIBRARY} ${EXPAT_LIBRARY} ${INTL_LIBRARY} ${PYTHON_DEP_LIBRARIES} + CACHE INTERNAL "python libraries" FORCE) + else() + find_package(PythonLibs) + endif() +endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(Python DEFAULT_MSG PYTHON_INCLUDE_DIRS PYTHON_LIBRARIES) + +if(CMAKE_SYSTEM_NAME STREQUAL Darwin) + find_library(FFI_LIBRARY ffi REQUIRED) + find_library(INTL_LIBRARY intl) + list(APPEND PYTHON_LIBRARIES ${FFI_LIBRARY} ${INTL_LIBRARY}) +endif() + +mark_as_advanced(PYTHON_INCLUDE_DIRS PYTHON_LIBRARIES PYTHON_LDFLAGS) diff --git a/project/cmake/modules/FindRTMP.cmake b/project/cmake/modules/FindRTMP.cmake new file mode 100644 index 0000000..432b77d --- /dev/null +++ b/project/cmake/modules/FindRTMP.cmake @@ -0,0 +1,21 @@ +# - Try to find rtmp +# Once done this will define +# +# RTMP_FOUND - system has librtmp +# RTMP_INCLUDE_DIRS - the librtmp include directory +# RTMP_LIBRARIES - The librtmp libraries + +if(PKG_CONFIG_FOUND) + pkg_check_modules (RTMP librtmp) + list(APPEND RTMP_INCLUDE_DIRS ${RTMP_INCLUDEDIR}) +else() + find_path(RTMP_INCLUDE_DIRS librtmp/rtmp.h) + find_library(RTMP_LIBRARIES rtmp) +endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(RTMP DEFAULT_MSG RTMP_INCLUDE_DIRS RTMP_LIBRARIES) + +list(APPEND RTMP_DEFINITIONS -DHAS_LIBRTMP=1) + +mark_as_advanced(RTMP_INCLUDE_DIRS RTMP_LIBRARIES RTMP_DEFINITIONS) diff --git a/project/cmake/modules/FindSSE.cmake b/project/cmake/modules/FindSSE.cmake new file mode 100644 index 0000000..c76b811 --- /dev/null +++ b/project/cmake/modules/FindSSE.cmake @@ -0,0 +1,105 @@ +# Check if SSE instructions are available on the machine where +# the project is compiled. + +IF(CMAKE_SYSTEM_NAME MATCHES "Linux") + EXEC_PROGRAM(cat ARGS "/proc/cpuinfo" OUTPUT_VARIABLE CPUINFO) + + STRING(REGEX REPLACE "^.*(sse2).*$" "\\1" SSE_THERE ${CPUINFO}) + STRING(COMPARE EQUAL "sse2" "${SSE_THERE}" SSE2_TRUE) + IF (SSE2_TRUE) + set(SSE2_FOUND true CACHE BOOL "SSE2 available on host") + ELSE (SSE2_TRUE) + set(SSE2_FOUND false CACHE BOOL "SSE2 available on host") + ENDIF (SSE2_TRUE) + + # /proc/cpuinfo apparently omits sse3 :( + STRING(REGEX REPLACE "^.*[^s](sse3).*$" "\\1" SSE_THERE ${CPUINFO}) + STRING(COMPARE EQUAL "sse3" "${SSE_THERE}" SSE3_TRUE) + IF (NOT SSE3_TRUE) + STRING(REGEX REPLACE "^.*(T2300).*$" "\\1" SSE_THERE ${CPUINFO}) + STRING(COMPARE EQUAL "T2300" "${SSE_THERE}" SSE3_TRUE) + ENDIF (NOT SSE3_TRUE) + + STRING(REGEX REPLACE "^.*(ssse3).*$" "\\1" SSE_THERE ${CPUINFO}) + STRING(COMPARE EQUAL "ssse3" "${SSE_THERE}" SSSE3_TRUE) + IF (SSE3_TRUE OR SSSE3_TRUE) + set(SSE3_FOUND true CACHE BOOL "SSE3 available on host") + ELSE (SSE3_TRUE OR SSSE3_TRUE) + set(SSE3_FOUND false CACHE BOOL "SSE3 available on host") + ENDIF (SSE3_TRUE OR SSSE3_TRUE) + IF (SSSE3_TRUE) + set(SSSE3_FOUND true CACHE BOOL "SSSE3 available on host") + ELSE (SSSE3_TRUE) + set(SSSE3_FOUND false CACHE BOOL "SSSE3 available on host") + ENDIF (SSSE3_TRUE) + + STRING(REGEX REPLACE "^.*(sse4_1).*$" "\\1" SSE_THERE ${CPUINFO}) + STRING(COMPARE EQUAL "sse4_1" "${SSE_THERE}" SSE41_TRUE) + IF (SSE41_TRUE) + set(SSE4_1_FOUND true CACHE BOOL "SSE4.1 available on host") + ELSE (SSE41_TRUE) + set(SSE4_1_FOUND false CACHE BOOL "SSE4.1 available on host") + ENDIF (SSE41_TRUE) +ELSEIF(CMAKE_SYSTEM_NAME MATCHES "Darwin") + EXEC_PROGRAM("/usr/sbin/sysctl -n machdep.cpu.features" OUTPUT_VARIABLE + CPUINFO) + + STRING(REGEX REPLACE "^.*[^S](SSE2).*$" "\\1" SSE_THERE ${CPUINFO}) + STRING(COMPARE EQUAL "SSE2" "${SSE_THERE}" SSE2_TRUE) + IF (SSE2_TRUE) + set(SSE2_FOUND true CACHE BOOL "SSE2 available on host") + ELSE (SSE2_TRUE) + set(SSE2_FOUND false CACHE BOOL "SSE2 available on host") + ENDIF (SSE2_TRUE) + + STRING(REGEX REPLACE "^.*[^S](SSE3).*$" "\\1" SSE_THERE ${CPUINFO}) + STRING(COMPARE EQUAL "SSE3" "${SSE_THERE}" SSE3_TRUE) + IF (SSE3_TRUE) + set(SSE3_FOUND true CACHE BOOL "SSE3 available on host") + ELSE (SSE3_TRUE) + set(SSE3_FOUND false CACHE BOOL "SSE3 available on host") + ENDIF (SSE3_TRUE) + + STRING(REGEX REPLACE "^.*(SSSE3).*$" "\\1" SSE_THERE ${CPUINFO}) + STRING(COMPARE EQUAL "SSSE3" "${SSE_THERE}" SSSE3_TRUE) + IF (SSSE3_TRUE) + set(SSSE3_FOUND true CACHE BOOL "SSSE3 available on host") + ELSE (SSSE3_TRUE) + set(SSSE3_FOUND false CACHE BOOL "SSSE3 available on host") + ENDIF (SSSE3_TRUE) + + STRING(REGEX REPLACE "^.*(SSE4.1).*$" "\\1" SSE_THERE ${CPUINFO}) + STRING(COMPARE EQUAL "SSE4.1" "${SSE_THERE}" SSE41_TRUE) + IF (SSE41_TRUE) + set(SSE4_1_FOUND true CACHE BOOL "SSE4.1 available on host") + ELSE (SSE41_TRUE) + set(SSE4_1_FOUND false CACHE BOOL "SSE4.1 available on host") + ENDIF (SSE41_TRUE) +ELSEIF(CMAKE_SYSTEM_NAME MATCHES "Windows") + # TODO + set(SSE2_FOUND true CACHE BOOL "SSE2 available on host") + set(SSE3_FOUND false CACHE BOOL "SSE3 available on host") + set(SSSE3_FOUND false CACHE BOOL "SSSE3 available on host") + set(SSE4_1_FOUND false CACHE BOOL "SSE4.1 available on host") +ELSE(CMAKE_SYSTEM_NAME MATCHES "Linux") + set(SSE2_FOUND true CACHE BOOL "SSE2 available on host") + set(SSE3_FOUND false CACHE BOOL "SSE3 available on host") + set(SSSE3_FOUND false CACHE BOOL "SSSE3 available on host") + set(SSE4_1_FOUND false CACHE BOOL "SSE4.1 available on host") +ENDIF(CMAKE_SYSTEM_NAME MATCHES "Linux") + +if(NOT SSE2_FOUND) + MESSAGE(STATUS "Could not find hardware support for SSE2 on this machine.") +endif(NOT SSE2_FOUND) +if(NOT SSE3_FOUND) + MESSAGE(STATUS "Could not find hardware support for SSE3 on this machine.") +endif(NOT SSE3_FOUND) +if(NOT SSSE3_FOUND) + MESSAGE(STATUS "Could not find hardware support for SSSE3 on this machine.") +endif(NOT SSSE3_FOUND) +if(NOT SSE4_1_FOUND) + MESSAGE(STATUS "Could not find hardware support for SSE4.1 on this machine.") +endif(NOT SSE4_1_FOUND) + +mark_as_advanced(SSE2_FOUND SSE3_FOUND SSSE3_FOUND SSE4_1_FOUND) + diff --git a/project/cmake/modules/FindSSH.cmake b/project/cmake/modules/FindSSH.cmake new file mode 100644 index 0000000..60c3537 --- /dev/null +++ b/project/cmake/modules/FindSSH.cmake @@ -0,0 +1,21 @@ +# - Try to find libssh +# Once done this will define +# +# SSH_FOUND - system has libssh +# SSH_INCLUDE_DIRS - the libssh include directory +# SSH_LIBRARIES - The libssh libraries + +if(PKG_CONFIG_FOUND) + pkg_check_modules (SSH libssh) + list(APPEND SSH_INCLUDE_DIRS /usr/include) +else() + find_path(SSH_INCLUDE_DIRS libssh/libssh.h) + find_library(SSH_LIBRARIES ssh) +endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(SSH DEFAULT_MSG SSH_INCLUDE_DIRS SSH_LIBRARIES) + +list(APPEND SSH_DEFINITIONS -DHAVE_LIBSSH=1) + +mark_as_advanced(SSH_INCLUDE_DIRS SSH_LIBRARIES SSH_DEFINITIONS) diff --git a/project/cmake/modules/FindSWIG.cmake b/project/cmake/modules/FindSWIG.cmake new file mode 100644 index 0000000..84c7a51 --- /dev/null +++ b/project/cmake/modules/FindSWIG.cmake @@ -0,0 +1,14 @@ +if(NOT SWIG_EXECUTABLE) + find_program(SWIG_EXECUTABLE NAMES swig2.0 swig PATH_SUFFIXES swig) +endif() +if(SWIG_EXECUTABLE) + execute_process(COMMAND ${SWIG_EXECUTABLE} -swiglib + OUTPUT_VARIABLE SWIG_DIR + ERROR_VARIABLE SWIG_swiglib_error + RESULT_VARIABLE SWIG_swiglib_result) +endif() + + +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(SWIG REQUIRED_VARS SWIG_EXECUTABLE SWIG_DIR + VERSION_VAR SWIG_VERSION ) diff --git a/project/cmake/modules/FindSdl.cmake b/project/cmake/modules/FindSdl.cmake new file mode 100644 index 0000000..91bcac5 --- /dev/null +++ b/project/cmake/modules/FindSdl.cmake @@ -0,0 +1,46 @@ +#.rst: +# FindSDL +# ------- +# Finds the SDL library +# +# This will will define the following variables:: +# +# SDL_FOUND - system has SDL +# SDL_INCLUDE_DIRS - the SDL include directory +# SDL_LIBRARIES - the SDL libraries +# SDL_DEFINITIONS - the SDL compile definitions + +if(PKG_CONFIG_FOUND) + pkg_check_modules(PC_SDL2 sdl2 QUIET) + if(PC_SDL2_FOUND) + set(SDL_VERSION ${PC_SDL2_VERSION}) + else() + pkg_check_modules(PC_SDL1 sdl QUIET) + if(PC_SDL1_FOUND) + set(SDL_VERSION ${PC_SDL1_VERSION}) + endif() + endif() +endif() + +find_path(SDL_INCLUDE_DIR SDL/SDL.h + PATHS ${PC_SDL2_INCLUDE_DIR} ${PC_SDL1_INCLUDE_DIR}) +find_library(SDL_LIBRARY NAMES SDL2 SDL + PATHS ${PC_SDL2_LIBDIR} ${PC_SDL1_LIBDIR}) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(Sdl REQUIRED_VARS SDL_LIBRARY SDL_INCLUDE_DIR + VERSION_VAR SDL_VERSION) + +if(SDL_FOUND) + set(SDL_LIBRARIES ${SDL_LIBRARY}) + set(SDL_INCLUDE_DIRS ${SDL_INCLUDE_DIR}) + set(SDL_DEFINITIONS -DHAVE_SDL=1) + + if(SDL_VERSION VERSION_GREATER 2) + list(APPEND SDL_DEFINITIONS -DHAVE_SDL_VERSION=2) + elseif(SDL_VERSION VERSION_GREATER 1) + list(APPEND SDL_DEFINITIONS -DHAVE_SDL_VERSION=1) + endif() +endif() + +mark_as_advanced(SDL_LIBRARY SDL_INCLUDE_DIR) diff --git a/project/cmake/modules/FindShairplay.cmake b/project/cmake/modules/FindShairplay.cmake new file mode 100644 index 0000000..4804686 --- /dev/null +++ b/project/cmake/modules/FindShairplay.cmake @@ -0,0 +1,63 @@ +#.rst: +# FindShairplay +# ------------- +# Finds the Shairplay library +# +# This will will define the following variables:: +# +# SHAIRPLAY_FOUND - system has Shairplay +# SHAIRPLAY_INCLUDE_DIRS - the Shairplay include directory +# SHAIRPLAY_LIBRARIES - the Shairplay libraries +# SHAIRPLAY_DEFINITIONS - the Shairplay compile definitions +# +# and the following imported targets:: +# +# Shairplay::Shairplay - The Shairplay library + +find_path(SHAIRPLAY_INCLUDE_DIR shairplay/raop.h) + +include(FindPackageHandleStandardArgs) +if(NOT WIN32) + find_library(SHAIRPLAY_LIBRARY NAMES shairplay) + + if(SHAIRPLAY_INCLUDE_DIR AND SHAIRPLAY_LIBRARY) + include(CheckCSourceCompiles) + set(CMAKE_REQUIRED_INCLUDES ${SHAIRPLAY_INCLUDE_DIRS}) + set(CMAKE_REQUIRED_LIBRARIES ${SHAIRPLAY_LIBRARIES}) + check_c_source_compiles("#include + + int main() + { + struct raop_callbacks_s foo; + foo.cls; + return 0; + } + " HAVE_SHAIRPLAY_CALLBACK_CLS) + endif() + + find_package_handle_standard_args(SHAIRPLAY + REQUIRED_VARS SHAIRPLAY_LIBRARY SHAIRPLAY_INCLUDE_DIR HAVE_SHAIRPLAY_CALLBACK_CLS) +else() + # Dynamically loaded DLL + find_package_handle_standard_args(SHAIRPLAY + REQUIRED_VARS SHAIRPLAY_INCLUDE_DIR) +endif() + +if(SHAIRPLAY_FOUND) + set(SHAIRPLAY_LIBRARIES ${SHAIRPLAY_LIBRARY}) + set(SHAIRPLAY_INCLUDE_DIRS ${SHAIRPLAY_INCLUDE_DIR}) + set(SHAIRPLAY_DEFINITIONS -DHAVE_LIBSHAIRPLAY=1) + + if(NOT TARGET Shairplay::Shairplay) + add_library(Shairplay::Shairplay UNKNOWN IMPORTED) + if(SHAIRPLAY_LIBRARY) + set_target_properties(Shairplay::Shairplay PROPERTIES + IMPORTED_LOCATION "${SHAIRPLAY_LIBRARY}") + endif() + set_target_properties(Shairplay::Shairplay PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${SHAIRPLAY_INCLUDE_DIR}" + INTERFACE_COMPILE_DEFINITIONS HAVE_LIBSHAIRPLAY=1) + endif() +endif() + +mark_as_advanced(SHAIRPLAY_INCLUDE_DIR SHAIRPLAY_LIBRARY) diff --git a/project/cmake/modules/FindSqlite3.cmake b/project/cmake/modules/FindSqlite3.cmake new file mode 100644 index 0000000..a47944e --- /dev/null +++ b/project/cmake/modules/FindSqlite3.cmake @@ -0,0 +1,19 @@ +# - Try to find SQLITE3 +# Once done this will define +# +# SQLITE3_FOUND - system has sqlite3 +# SQLITE3_INCLUDE_DIRS - the sqlite3 include directory +# SQLITE3_LIBRARIES - The sqlite3 libraries + +if(PKG_CONFIG_FOUND) + pkg_check_modules (SQLITE3 sqlite3) + list(APPEND SQLITE3_INCLUDE_DIRS ${SQLITE3_INCLUDEDIR}) +else() + find_path(SQLITE3_INCLUDE_DIRS sqlite3.h) + find_library(SQLITE3_LIBRARIES sqlite3) +endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(Sqlite3 DEFAULT_MSG SQLITE3_INCLUDE_DIRS SQLITE3_LIBRARIES) + +mark_as_advanced(SQLITE3_INCLUDE_DIRS SQLITE3_LIBRARIES) diff --git a/project/cmake/modules/FindTagLib.cmake b/project/cmake/modules/FindTagLib.cmake new file mode 100644 index 0000000..b515e81 --- /dev/null +++ b/project/cmake/modules/FindTagLib.cmake @@ -0,0 +1,62 @@ +#.rst: +# FindTagLib +# ---------- +# Finds the TagLib library +# +# This will will define the following variables:: +# +# TAGLIB_FOUND - system has TagLib +# TAGLIB_INCLUDE_DIRS - the TagLib include directory +# TAGLIB_LIBRARIES - the TagLib libraries +# +# and the following imported targets:: +# +# TagLib::TagLib - The TagLib library + +if(PKG_CONFIG_FOUND) + pkg_check_modules(PC_TAGLIB taglib>=1.8.0 QUIET) +endif() + +find_path(TAGLIB_INCLUDE_DIR taglib/tag.h + PATHS ${PC_TAGLIB_INCLUDEDIR}) +find_library(TAGLIB_LIBRARY_RELEASE NAMES tag + PATH_SUFFIXES ${CONFIGURATION_LIBDIR_RELEASE} + PATHS ${PC_TAGLIB_LIBDIR}) +find_library(TAGLIB_LIBRARY_DEBUG NAMES tag + PATH_SUFFIXES ${CONFIGURATION_LIBDIR_DEBUG} + PATHS ${PC_TAGLIB_LIBDIR}) +set(TAGLIB_VERSION ${PC_TAGLIB_VERSION}) + +include(SelectLibraryConfigurations) +select_library_configurations(TAGLIB) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(TAGLIB + REQUIRED_VARS TAGLIB_LIBRARY TAGLIB_INCLUDE_DIR + VERSION_VAR TAGLIB_VERSION) + +if(TAGLIB_FOUND) + set(TAGLIB_LIBRARIES ${TAGLIB_LIBRARY}) + + # Workaround broken .pc file + list(APPEND TAGLIB_LIBRARIES ${PC_TAGLIB_ZLIB_LIBRARIES}) + + set(TAGLIB_INCLUDE_DIRS ${TAGLIB_INCLUDE_DIR}) + if(NOT TARGET TagLib::TagLib) + add_library(TagLib::TagLib UNKNOWN IMPORTED) + if(TAGLIB_LIBRARY_RELEASE) + set_target_properties(TagLib::TagLib PROPERTIES + IMPORTED_CONFIGURATIONS RELEASE + IMPORTED_LOCATION "${TAGLIB_LIBRARY_RELEASE}") + endif() + if(TAGLIB_LIBRARY_DEBUG) + set_target_properties(TagLib::TagLib PROPERTIES + IMPORTED_CONFIGURATIONS DEBUG + IMPORTED_LOCATION "${TAGLIB_LIBRARY_DEBUG}") + endif() + set_target_properties(TagLib::TagLib PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${TAGLIB_INCLUDE_DIR}") + endif() +endif() + +mark_as_advanced(TAGLIB_INCLUDE_DIR TAGLIB_LIBRARY) diff --git a/project/cmake/modules/FindTexturePacker.cmake b/project/cmake/modules/FindTexturePacker.cmake new file mode 100644 index 0000000..2229ff7 --- /dev/null +++ b/project/cmake/modules/FindTexturePacker.cmake @@ -0,0 +1,23 @@ +#.rst: +# FindTexturePacker +# ----------------- +# Finds the TexturePacker +# +# This will define the following (imported) targets:: +# +# TexturePacker::TexturePacker - The TexturePacker executable + +if(NOT TARGET TexturePacker::TexturePacker) + if(CMAKE_CROSSCOMPILING) + add_executable(TexturePacker::TexturePacker IMPORTED GLOBAL) + set_target_properties(TexturePacker::TexturePacker PROPERTIES + IMPORTED_LOCATION "${NATIVEPREFIX}/bin/TexturePacker") + elseif(WIN32) + add_executable(TexturePacker::TexturePacker IMPORTED GLOBAL) + set_target_properties(TexturePacker::TexturePacker PROPERTIES + IMPORTED_LOCATION "${CORE_SOURCE_DIR}/tools/TexturePacker/TexturePacker.exe") + else() + add_subdirectory(${CORE_SOURCE_DIR}/tools/depends/native/TexturePacker build/texturepacker) + add_executable(TexturePacker::TexturePacker ALIAS TexturePacker) + endif() +endif() diff --git a/project/cmake/modules/FindTinyXML.cmake b/project/cmake/modules/FindTinyXML.cmake new file mode 100644 index 0000000..0168f40 --- /dev/null +++ b/project/cmake/modules/FindTinyXML.cmake @@ -0,0 +1,68 @@ +#.rst: +# FindTinyXML +# ----------- +# Finds the TinyXML library +# +# This will will define the following variables:: +# +# TINYXML_FOUND - system has TinyXML +# TINYXML_INCLUDE_DIRS - the TinyXML include directory +# TINYXML_LIBRARIES - the TinyXML libraries +# TINYXML_DEFINITIONS - the TinyXML definitions +# +# and the following imported targets:: +# +# TinyXML::TinyXML - The TinyXML library + +if(PKG_CONFIG_FOUND) + pkg_check_modules(PC_TINYXML tinyxml QUIET) +endif() + +find_path(TINYXML_INCLUDE_DIR tinyxml.h + PATH_SUFFIXES tinyxml + PATHS ${PC_TINYXML_INCLUDEDIR}) +find_library(TINYXML_LIBRARY_RELEASE NAMES tinyxml tinyxmlSTL + PATH_SUFFIXES tinyxml ${CONFIGURATION_LIBDIR_RELEASE} + PATHS ${PC_TINYXML_LIBDIR}) +find_library(TINYXML_LIBRARY_DEBUG NAMES tinyxml tinyxmlSTL + PATH_SUFFIXES tinyxml ${CONFIGURATION_LIBDIR_DEBUG} + PATHS ${PC_TINYXML_LIBDIR}) +set(TINYXML_VERSION ${PC_TINYXML_VERSION}) + +include(SelectLibraryConfigurations) +select_library_configurations(TINYXML) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(TINYXML + REQUIRED_VARS TINYXML_LIBRARY TINYXML_INCLUDE_DIR + VERSION_VAR TINYXML_VERSION) + +if(TINYXML_FOUND) + set(TINYXML_LIBRARIES ${TINYXML_LIBRARY}) + set(TINYXML_INCLUDE_DIRS ${TINYXML_INCLUDE_DIR}) + if(WIN32) + set(TINYXML_DEFINITIONS -DTIXML_USE_STL=1) + endif() + + if(NOT TARGET TinyXML::TinyXML) + add_library(TinyXML::TinyXML UNKNOWN IMPORTED) + if(TINYXML_LIBRARY_RELEASE) + set_target_properties(TinyXML::TinyXML PROPERTIES + IMPORTED_CONFIGURATIONS RELEASE + IMPORTED_LOCATION "${TINYXML_LIBRARY_RELEASE}") + endif() + if(TINYXML_LIBRARY_DEBUG) + set_target_properties(TinyXML::TinyXML PROPERTIES + IMPORTED_CONFIGURATIONS DEBUG + IMPORTED_LOCATION "${TINYXML_LIBRARY_DEBUG}") + endif() + set_target_properties(TinyXML::TinyXML PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${TINYXML_INCLUDE_DIR}") + if(WIN32) + set_target_properties(TinyXML::TinyXML PROPERTIES + INTERFACE_COMPILE_DEFINITIONS TIXML_USE_STL=1) + endif() + endif() +endif() + +mark_as_advanced(TINYXML_INCLUDE_DIR TINYXML_LIBRARY) diff --git a/project/cmake/modules/FindUDev.cmake b/project/cmake/modules/FindUDev.cmake new file mode 100644 index 0000000..97fa956 --- /dev/null +++ b/project/cmake/modules/FindUDev.cmake @@ -0,0 +1,22 @@ +# - Try to find udev +# Once done this will define +# +# UDEV_FOUND - system has libudev +# UDEV_INCLUDE_DIRS - the libudev include directory +# UDEV_LIBRARIES - The libudev libraries + +if(PKG_CONFIG_FOUND) + pkg_check_modules (UDEV libudev) + list(APPEND UDEV_INCLUDE_DIRS ${UDEV_INCLUDEDIR}) +endif() + +if(NOT UDEV_FOUND) + find_path(UDEV_INCLUDE_DIRS libudev.h) + find_library(UDEV_LIBRARIES udev) +endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(UDev DEFAULT_MSG UDEV_INCLUDE_DIRS UDEV_LIBRARIES) + +mark_as_advanced(UDEV_INCLUDE_DIRS UDEV_LIBRARIES) +list(APPEND UDEV_DEFINITIONS -DHAVE_LIBUDEV=1) diff --git a/project/cmake/modules/FindUUID.cmake b/project/cmake/modules/FindUUID.cmake new file mode 100644 index 0000000..173fac2 --- /dev/null +++ b/project/cmake/modules/FindUUID.cmake @@ -0,0 +1,43 @@ +#.rst: +# FindUUID +# -------- +# Finds the libuuid library +# +# This will will define the following variables:: +# +# UUID_FOUND - system has libuuid +# UUID_INCLUDE_DIRS - the libuuid include directory +# UUID_LIBRARIES - the libuuid libraries +# +# and the following imported targets:: +# +# UUID::UUID - The libuuid library + +if(PKG_CONFIG_FOUND) + pkg_check_modules(PC_UUID uuid QUIET) +endif() + +find_path(UUID_INCLUDE_DIR uuid/uuid.h + PATHS ${PC_UUID_INCLUDEDIR}) +find_library(UUID_LIBRARY uuid + PATHS ${PC_UUID_LIBRARY}) +set(UUID_VERSION ${PC_UUID_VERSION}) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(UUID + REQUIRED_VARS UUID_LIBRARY UUID_INCLUDE_DIR + VERSION_VAR UUID_VERSION) + +if(UUID_FOUND) + set(UUID_LIBRARIES ${UUID_LIBRARY}) + set(UUID_INCLUDE_DIRS ${UUID_INCLUDE_DIR}) + + if(NOT TARGET UUID::UUID) + add_library(UUID::UUID UNKNOWN IMPORTED) + set_target_properties(UUID::UUID PROPERTIES + IMPORTED_LOCATION "${UUID_LIBRARY}" + INTERFACE_INCLUDE_DIRECTORIES "${UUID_INCLUDE_DIR}") + endif() +endif() + +mark_as_advanced(UUID_INCLUDE_DIR UUID_LIBRARY) diff --git a/project/cmake/modules/FindVAAPI.cmake b/project/cmake/modules/FindVAAPI.cmake new file mode 100644 index 0000000..08e821f --- /dev/null +++ b/project/cmake/modules/FindVAAPI.cmake @@ -0,0 +1,47 @@ +#.rst: +# FindVAAPI +# --------- +# Finds the VAAPI library +# +# This will will define the following variables:: +# +# VAAPI_FOUND - system has VAAPI +# VAAPI_INCLUDE_DIRS - the VAAPI include directory +# VAAPI_LIBRARIES - the VAAPI libraries +# VAAPI_DEFINITIONS - the VAAPI definitions + +if(PKG_CONFIG_FOUND) + pkg_check_modules(PC_VAAPI libva libva-x11 QUIET) +endif() + +find_path(VAAPI_INCLUDE_DIR va/va.h + PATHS ${PC_VAAPI_libva_INCLUDEDIR}) +find_library(VAAPI_libva_LIBRARY NAMES va + PATHS ${PC_VAAPI_libva_LIBDIR}) +find_library(VAAPI_libva-x11_LIBRARY NAMES va-x11 + PATHS ${PC_VAAPI_libva_LIBDIR}) + +if(PC_VAAPI_libva_VERSION) + set(VAAPI_VERSION_STRING ${PC_VAAPI_libva_VERSION}) +elseif(VAAPI_INCLUDE_DIR AND EXISTS "${VAAPI_INCLUDE_DIR}/va/va_version.h") + file(STRINGS "${VAAPI_INCLUDE_DIR}/va/va_version.h" vaapi_version_str REGEX "^#define[\t ]+VA_VERSION_S[\t ]+\".*\".*") + string(REGEX REPLACE "^#define[\t ]+VA_VERSION_S[\t ]+\"([^\"]+)\".*" "\\1" VAAPI_VERSION_STRING "${vaapi_version_str}") + unset(vaapi_version_str) +endif() + +if(NOT VAAPI_FIND_VERSION) + set(VAAPI_FIND_VERSION 0.38.0) +endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(VAAPI + REQUIRED_VARS VAAPI_libva_LIBRARY VAAPI_libva-x11_LIBRARY VAAPI_INCLUDE_DIR + VERSION_VAR VAAPI_VERSION_STRING) + +if(VAAPI_FOUND) + set(VAAPI_INCLUDE_DIRS ${VAAPI_INCLUDE_DIR}) + set(VAAPI_LIBRARIES ${VAAPI_libva_LIBRARY} ${VAAPI_libva-x11_LIBRARY}) + set(VAAPI_DEFINITIONS -DHAVE_LIBVA=1) +endif() + +mark_as_advanced(VAAPI_INCLUDE_DIR VAAPI_libva_LIBRARY VAAPI_libva-x11_LIBRARY) diff --git a/project/cmake/modules/FindVDPAU.cmake b/project/cmake/modules/FindVDPAU.cmake new file mode 100644 index 0000000..680b45f --- /dev/null +++ b/project/cmake/modules/FindVDPAU.cmake @@ -0,0 +1,32 @@ +#.rst: +# FindVDPAU +# --------- +# Finds the VDPAU library +# +# This will will define the following variables:: +# +# VDPAU_FOUND - system has VDPAU +# VDPAU_INCLUDE_DIRS - the VDPAU include directory +# VDPAU_LIBRARIES - the VDPAU libraries +# VDPAU_DEFINITIONS - the VDPAU definitions + +if(PKG_CONFIG_FOUND) + pkg_check_modules(PC_VDPAU vdpau QUIET) +endif() + +find_path(VDPAU_INCLUDE_DIR NAMES vdpau/vdpau.h vdpau/vdpau_x11.h + PATHS ${PC_VDPAU_INCLUDEDIR}) +find_library(VDPAU_LIBRARY NAMES vdpau + PATHS ${PC_VDPAU_LIBDIR}) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(VDPAU + REQUIRED_VARS VDPAU_LIBRARY VDPAU_INCLUDE_DIR) + +if(VDPAU_FOUND) + set(VDPAU_INCLUDE_DIRS ${VDPAU_INCLUDE_DIR}) + set(VDPAU_LIBRARIES ${VDPAU_LIBRARY}) + set(VDPAU_DEFINITIONS -DHAVE_LIBVDPAU=1) +endif() + +mark_as_advanced(VDPAU_INCLUDE_DIR VDPAU_LIBRARY) diff --git a/project/cmake/modules/FindX.cmake b/project/cmake/modules/FindX.cmake new file mode 100644 index 0000000..d9ab5bc --- /dev/null +++ b/project/cmake/modules/FindX.cmake @@ -0,0 +1,21 @@ +# - Try to find X11 +# Once done this will define +# +# X11_FOUND - system has X11 +# X11_INCLUDE_DIRS - the X11 include directory +# X11_LIBRARIES - The X11 libraries + +if(PKG_CONFIG_FOUND) + pkg_check_modules (X x11 xext libdrm egl) + list(APPEND X_INCLUDE_DIRS /usr/include) +else() + find_path(X_INCLUDE_DIRS X11/Xlib.h) + find_library(X_LIBRARIES X11) +endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(X DEFAULT_MSG X_INCLUDE_DIRS X_LIBRARIES) + +list(APPEND X_DEFINITIONS -DHAVE_X11=1) + +mark_as_advanced(X_INCLUDE_DIRS X_LIBRARIES X_DEFINITIONS) diff --git a/project/cmake/modules/FindXRandR.cmake b/project/cmake/modules/FindXRandR.cmake new file mode 100644 index 0000000..57ff750 --- /dev/null +++ b/project/cmake/modules/FindXRandR.cmake @@ -0,0 +1,22 @@ +# - Try to find xrandr +# Once done this will define +# +# XRANDR_FOUND - system has lixrandr +# XRANDR_INCLUDE_DIRS - the libxrandr include directory +# XRANDR_LIBRARIES - The libxrandr libraries + +if(PKG_CONFIG_FOUND) + pkg_check_modules (XRANDR xrandr) + list(APPEND XRANDR_INCLUDE_DIRS ${XRANDR_INCLUDEDIR}) +else() + find_library(XRANDR_LIBRARIES Xrandr) +endif() + +if(XRANDR_FOUND) +include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(XRandR DEFAULT_MSG XRANDR_INCLUDE_DIRS XRANDR_LIBRARIES) + + list(APPEND XRANDR_DEFINITIONS -DHAVE_LIBXRANDR=1) + + mark_as_advanced(XRANDR_INCLUDE_DIRS XRANDR_LIBRARIES XRANDR_DEFINITIONS) +endif() diff --git a/project/cmake/modules/FindXslt.cmake b/project/cmake/modules/FindXslt.cmake new file mode 100644 index 0000000..442ba43 --- /dev/null +++ b/project/cmake/modules/FindXslt.cmake @@ -0,0 +1,18 @@ +# - Try to find XSLT +# Once done this will define +# +# XSLT_FOUND - system has libxslt +# XSLT_INCLUDE_DIRS - the libxslt include directory +# XSLT_LIBRARIES - The libxslt libraries + +if(PKG_CONFIG_FOUND) + pkg_check_modules (XSLT libxslt) +else() + find_path(XSLT_INCLUDE_DIRS libxslt/xslt.h) + find_library(XSLT_LIBRARIES NAMES xslt libxslt) +endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(Xslt DEFAULT_MSG XSLT_INCLUDE_DIRS XSLT_LIBRARIES) + +mark_as_advanced(XSLT_INCLUDE_DIRS XSLT_LIBRARIES) diff --git a/project/cmake/modules/FindYajl.cmake b/project/cmake/modules/FindYajl.cmake new file mode 100644 index 0000000..c27b03a --- /dev/null +++ b/project/cmake/modules/FindYajl.cmake @@ -0,0 +1,27 @@ +# Base Io build system +# Written by Jeremy Tregunna +# +# Find libyajl +pkg_check_modules(YAJL yajl>=2.0) +if(YAJL_FOUND) + list(APPEND YAJL_DEFINITIONS -DYAJL_MAJOR=2) +endif() + +if(NOT YAJL_FOUND) + find_path(YAJL_INCLUDE_DIRS yajl/yajl_common.h) + find_library(YAJL_LIBRARIES NAMES yajl) + + file(STRINGS ${YAJL_INCLUDE_DIRS}/yajl/yajl_version.h version_header) + string(REGEX MATCH "YAJL_MAJOR ([0-9]+)" YAJL_VERSION_MAJOR ${version_header}) + string(REGEX REPLACE "YAJL_MAJOR ([0-9]+)" "\\1" YAJL_VERSION_MAJOR "${YAJL_VERSION_MAJOR}") + if (YAJL_VERSION_MINOR LESS 2) + set(YAJL_INCLUDE_DIRS) + set(YALJ_LIBRARIES) + endif() + list(APPEND YAJL_DEFINITIONS -DYAJL_MAJOR=${YAJL_VERSION_MAJOR}) +endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(Yajl DEFAULT_MSG YAJL_INCLUDE_DIRS YAJL_LIBRARIES) + +mark_as_advanced(YAJL_INCLUDE_DIRS YAJL_LIBRARIES YAJL_DEFINITIONS) diff --git a/project/cmake/modules/FindZip.cmake b/project/cmake/modules/FindZip.cmake new file mode 100644 index 0000000..e0a38c1 --- /dev/null +++ b/project/cmake/modules/FindZip.cmake @@ -0,0 +1,46 @@ +#.rst: +# FindZip +# ----------- +# Finds the Zip library +# +# This will will define the following variables:: +# +# ZIP_FOUND - system has Zip +# ZIP_INCLUDE_DIRS - the Zip include directory +# ZIP_LIBRARIES - the Zip libraries +# ZIP_DEFINITIONS - the Zip libraries +# +# and the following imported targets:: +# +# ZIP::ZIP - The Zip library + +if(PKG_CONFIG_FOUND) + pkg_check_modules(PC_ZIP libzip QUIET) +endif() + +find_path(ZIP_INCLUDE_DIR zip.h + PATHS ${PC_ZIP_INCLUDEDIR}) +find_library(ZIP_LIBRARY NAMES zip + PATHS ${PC_ZIP_LIBDIR}) +set(ZIP_VERSION ${PC_ZIP_VERSION}) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(ZIP + REQUIRED_VARS ZIP_LIBRARY ZIP_INCLUDE_DIR + VERSION_VAR ZIP_VERSION) + +if(ZIP_FOUND) + set(ZIP_LIBRARIES ${ZIP_LIBRARY}) + set(ZIP_INCLUDE_DIRS ${ZIP_INCLUDE_DIR}) + set(ZIP_DEFINITIONS "${PC_ZIP_CFLAGS}") + + if(NOT TARGET ZIP::ZIP) + add_library(ZIP::ZIP UNKNOWN IMPORTED) + set_target_properties(ZIP::ZIP PROPERTIES + IMPORTED_LOCATION "${ZIP_LIBRARY}" + INTERFACE_INCLUDE_DIRECTORIES "${ZIP_INCLUDE_DIR}" + INTERFACE_COMPILE_DEFINITIONS "${PC_ZIP_CFLAGS}") + endif() +endif() + +mark_as_advanced(ZIP_INCLUDE_DIR ZIP_LIBRARY) -- cgit v1.2.3