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