diff options
| author | manuel <manuel@mausz.at> | 2016-11-24 21:27:41 +0100 |
|---|---|---|
| committer | manuel <manuel@mausz.at> | 2016-11-24 21:27:41 +0100 |
| commit | 8cdf8dec703d882b46ca50a769fabb95ffc48e2c (patch) | |
| tree | f7fe8233508f79d3dc94f8f445ce6342e7dfbdbb /project/cmake/modules | |
| parent | 5823b05feb29a59510c32a9c28ca18b50b9b6399 (diff) | |
| download | kodi-pvr-build-8cdf8dec703d882b46ca50a769fabb95ffc48e2c.tar.gz kodi-pvr-build-8cdf8dec703d882b46ca50a769fabb95ffc48e2c.tar.bz2 kodi-pvr-build-8cdf8dec703d882b46ca50a769fabb95ffc48e2c.zip | |
sync with upstream
Diffstat (limited to 'project/cmake/modules')
53 files changed, 1828 insertions, 806 deletions
diff --git a/project/cmake/modules/FindASS.cmake b/project/cmake/modules/FindASS.cmake index 5f4b0c7..2d592fa 100644 --- a/project/cmake/modules/FindASS.cmake +++ b/project/cmake/modules/FindASS.cmake | |||
| @@ -1,18 +1,44 @@ | |||
| 1 | # - Try to find ASS | 1 | #.rst: |
| 2 | # Once done this will define | 2 | # FindASS |
| 3 | # ------- | ||
| 4 | # Finds the ASS library | ||
| 3 | # | 5 | # |
| 4 | # ASS_FOUND - system has libass | 6 | # This will will define the following variables:: |
| 5 | # ASS_INCLUDE_DIRS - the libass include directory | 7 | # |
| 6 | # ASS_LIBRARIES - The libass libraries | 8 | # ASS_FOUND - system has ASS |
| 9 | # ASS_INCLUDE_DIRS - the ASS include directory | ||
| 10 | # ASS_LIBRARIES - the ASS libraries | ||
| 11 | # | ||
| 12 | # and the following imported targets:: | ||
| 13 | # | ||
| 14 | # ASS::ASS - The ASS library | ||
| 7 | 15 | ||
| 8 | if(PKG_CONFIG_FOUND) | 16 | if(PKG_CONFIG_FOUND) |
| 9 | pkg_check_modules (ASS libass) | 17 | pkg_check_modules(PC_ASS libass QUIET) |
| 10 | else() | ||
| 11 | find_path(ASS_INCLUDE_DIRS ass/ass.h) | ||
| 12 | find_library(ASS_LIBRARIES NAMES ass libass) | ||
| 13 | endif() | 18 | endif() |
| 14 | 19 | ||
| 20 | find_path(ASS_INCLUDE_DIR NAMES ass/ass.h | ||
| 21 | PATHS ${PC_ASS_INCLUDEDIR}) | ||
| 22 | find_library(ASS_LIBRARY NAMES ass libass | ||
| 23 | PATHS ${PC_ASS_LIBDIR}) | ||
| 24 | |||
| 25 | set(ASS_VERSION ${PC_ASS_VERSION}) | ||
| 26 | |||
| 15 | include(FindPackageHandleStandardArgs) | 27 | include(FindPackageHandleStandardArgs) |
| 16 | find_package_handle_standard_args(ASS DEFAULT_MSG ASS_INCLUDE_DIRS ASS_LIBRARIES) | 28 | find_package_handle_standard_args(ASS |
| 29 | REQUIRED_VARS ASS_LIBRARY ASS_INCLUDE_DIR | ||
| 30 | VERSION_VAR ASS_VERSION) | ||
| 31 | |||
| 32 | if(ASS_FOUND) | ||
| 33 | set(ASS_LIBRARIES ${ASS_LIBRARY}) | ||
| 34 | set(ASS_INCLUDE_DIRS ${ASS_INCLUDE_DIR}) | ||
| 35 | |||
| 36 | if(NOT TARGET ASS::ASS) | ||
| 37 | add_library(ASS::ASS UNKNOWN IMPORTED) | ||
| 38 | set_target_properties(ASS::ASS PROPERTIES | ||
| 39 | IMPORTED_LOCATION "${ASS_LIBRARY}" | ||
| 40 | INTERFACE_INCLUDE_DIRECTORIES "${ASS_INCLUDE_DIR}") | ||
| 41 | endif() | ||
| 42 | endif() | ||
| 17 | 43 | ||
| 18 | mark_as_advanced(ASS_INCLUDE_DIRS ASS_LIBRARIES) | 44 | mark_as_advanced(ASS_INCLUDE_DIR ASS_LIBRARY) |
diff --git a/project/cmake/modules/FindAlsa.cmake b/project/cmake/modules/FindAlsa.cmake index b15a0cf..a282243 100644 --- a/project/cmake/modules/FindAlsa.cmake +++ b/project/cmake/modules/FindAlsa.cmake | |||
| @@ -1,20 +1,46 @@ | |||
| 1 | # - Try to find ALSA | 1 | #.rst: |
| 2 | # Once done this will define | 2 | # FindAlsa |
| 3 | # -------- | ||
| 4 | # Finds the Alsa library | ||
| 3 | # | 5 | # |
| 4 | # ALSA_FOUND - system has libALSA | 6 | # This will will define the following variables:: |
| 5 | # ALSA_INCLUDE_DIRS - the libALSA include directory | 7 | # |
| 6 | # ALSA_LIBRARIES - The libALSA libraries | 8 | # ALSA_FOUND - system has Alsa |
| 9 | # ALSA_INCLUDE_DIRS - the Alsa include directory | ||
| 10 | # ALSA_LIBRARIES - the Alsa libraries | ||
| 11 | # ALSA_DEFINITIONS - the Alsa compile definitions | ||
| 12 | # | ||
| 13 | # and the following imported targets:: | ||
| 14 | # | ||
| 15 | # ALSA::ALSA - The Alsa library | ||
| 7 | 16 | ||
| 8 | if(PKG_CONFIG_FOUND) | 17 | if(PKG_CONFIG_FOUND) |
| 9 | pkg_check_modules (ALSA alsa) | 18 | pkg_check_modules(PC_ALSA alsa QUIET) |
| 10 | else() | ||
| 11 | find_path(ALSA_INCLUDE_DIRS asoundlib.h PATH_SUFFIXES alsa) | ||
| 12 | find_library(ALSA_LIBRARIES asound) | ||
| 13 | endif() | 19 | endif() |
| 14 | 20 | ||
| 21 | find_path(ALSA_INCLUDE_DIR NAMES alsa/asoundlib.h | ||
| 22 | PATHS ${PC_ALSA_INCLUDEDIR}) | ||
| 23 | find_library(ALSA_LIBRARY NAMES asound | ||
| 24 | PATHS ${PC_ALSA_LIBDIR}) | ||
| 25 | |||
| 26 | set(ALSA_VERSION ${PC_ALSA_VERSION}) | ||
| 27 | |||
| 15 | include(FindPackageHandleStandardArgs) | 28 | include(FindPackageHandleStandardArgs) |
| 16 | find_package_handle_standard_args(Alsa DEFAULT_MSG ALSA_INCLUDE_DIRS ALSA_LIBRARIES) | 29 | find_package_handle_standard_args(ALSA |
| 30 | REQUIRED_VARS ALSA_LIBRARY ALSA_INCLUDE_DIR | ||
| 31 | VERSION_VAR ALSA_VERSION) | ||
| 32 | |||
| 33 | if(ALSA_FOUND) | ||
| 34 | set(ALSA_INCLUDE_DIRS "") # Don't want these added as 'timer.h' is a dangerous file | ||
| 35 | set(ALSA_LIBRARIES ${ALSA_LIBRARY}) | ||
| 36 | set(ALSA_DEFINITIONS -DHAVE_ALSA=1 -DUSE_ALSA=1) | ||
| 37 | |||
| 38 | if(NOT TARGET ALSA::ALSA) | ||
| 39 | add_library(ALSA::ALSA UNKNOWN IMPORTED) | ||
| 40 | set_target_properties(ALSA::ALSA PROPERTIES | ||
| 41 | IMPORTED_LOCATION "${ALSA_LIBRARY}" | ||
| 42 | INTERFACE_COMPILE_DEFINITIONS "${ALSA_DEFINITIONS}") | ||
| 43 | endif() | ||
| 44 | endif() | ||
| 17 | 45 | ||
| 18 | set(ALSA_INCLUDE_DIRS "") # Dont want these added as 'timer.h' is a dangerous file | 46 | mark_as_advanced(ALSA_INCLUDE_DIR ALSA_LIBRARY) |
| 19 | mark_as_advanced(ALSA_INCLUDE_DIRS ALSA_LIBRARIES) | ||
| 20 | list(APPEND ALSA_DEFINITIONS -DHAVE_ALSA=1 -DUSE_ALSA=1) | ||
diff --git a/project/cmake/modules/FindAvahi.cmake b/project/cmake/modules/FindAvahi.cmake index 24bf15c..77c3e4d 100644 --- a/project/cmake/modules/FindAvahi.cmake +++ b/project/cmake/modules/FindAvahi.cmake | |||
| @@ -1,26 +1,63 @@ | |||
| 1 | # - Try to find avahi | 1 | #.rst: |
| 2 | # Once done this will define | 2 | # FindAvahi |
| 3 | # --------- | ||
| 4 | # Finds the avahi library | ||
| 5 | # | ||
| 6 | # This will will define the following variables:: | ||
| 3 | # | 7 | # |
| 4 | # AVAHI_FOUND - system has avahi | 8 | # AVAHI_FOUND - system has avahi |
| 5 | # AVAHI_INCLUDE_DIRS - the avahi include directory | 9 | # AVAHI_INCLUDE_DIRS - the avahi include directory |
| 6 | # AVAHI_LIBRARIES - The avahi libraries | 10 | # AVAHI_LIBRARIES - the avahi libraries |
| 11 | # AVAHI_DEFINITIONS - the avahi definitions | ||
| 12 | # | ||
| 13 | # and the following imported targets:: | ||
| 14 | # | ||
| 15 | # Avahi::Avahi - The avahi library | ||
| 7 | 16 | ||
| 8 | if(PKG_CONFIG_FOUND) | 17 | if(PKG_CONFIG_FOUND) |
| 9 | pkg_check_modules (AVAHI avahi-client) | 18 | pkg_check_modules(PC_AVAHI avahi-client QUIET) |
| 10 | list(APPEND AVAHI_INCLUDE_DIRS ${AVAHI_INCLUDEDIR}) | ||
| 11 | else() | ||
| 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}) | ||
| 20 | endif() | 19 | endif() |
| 21 | 20 | ||
| 21 | find_path(AVAHI_CLIENT_INCLUDE_DIR NAMES avahi-client/client.h | ||
| 22 | PATHS ${PC_AVAHI_INCLUDEDIR}) | ||
| 23 | find_path(AVAHI_COMMON_INCLUDE_DIR NAMES avahi-common/defs.h | ||
| 24 | PATHS ${PC_AVAHI_INCLUDEDIR}) | ||
| 25 | find_library(AVAHI_CLIENT_LIBRARY NAMES avahi-client | ||
| 26 | PATHS ${PC_AVAHI_LIBDIR}) | ||
| 27 | find_library(AVAHI_COMMON_LIBRARY NAMES avahi-common | ||
| 28 | PATHS ${PC_AVAHI_LIBDIR}) | ||
| 29 | |||
| 30 | set(AVAHI_VERSION ${PC_AVAHI_VERSION}) | ||
| 31 | |||
| 22 | include(FindPackageHandleStandardArgs) | 32 | include(FindPackageHandleStandardArgs) |
| 23 | find_package_handle_standard_args(Avahi DEFAULT_MSG AVAHI_INCLUDE_DIRS AVAHI_LIBRARIES) | 33 | find_package_handle_standard_args(Avahi |
| 34 | REQUIRED_VARS AVAHI_CLIENT_LIBRARY AVAHI_COMMON_LIBRARY | ||
| 35 | AVAHI_CLIENT_INCLUDE_DIR AVAHI_COMMON_INCLUDE_DIR | ||
| 36 | VERSION_VAR AVAHI_VERSION) | ||
| 37 | |||
| 38 | if(AVAHI_FOUND) | ||
| 39 | set(AVAHI_INCLUDE_DIRS ${AVAHI_CLIENT_INCLUDE_DIR} | ||
| 40 | ${AVAHI_COMMON_INCLUDE_DIR}) | ||
| 41 | set(AVAHI_LIBRARIES ${AVAHI_CLIENT_LIBRARY} | ||
| 42 | ${AVAHI_COMMON_LIBRARY}) | ||
| 43 | set(AVAHI_DEFINITIONS -DHAVE_LIBAVAHI_CLIENT=1 -DHAVE_LIBAVAHI_COMMON=1) | ||
| 44 | |||
| 45 | if(NOT TARGET Avahi::Avahi) | ||
| 46 | add_library(Avahi::Avahi UNKNOWN IMPORTED) | ||
| 47 | set_target_properties(Avahi::Avahi PROPERTIES | ||
| 48 | IMPORTED_LOCATION "${AVAHI_CLIENT_LIBRARY}" | ||
| 49 | INTERFACE_INCLUDE_DIRECTORIES "${AVAHI_CLIENT_INCLUDE_DIR}" | ||
| 50 | INTERFACE_COMPILE_DEFINITIONS HAVE_LIBAVAHI_CLIENT=1) | ||
| 51 | endif() | ||
| 52 | if(NOT TARGET Avahi::AvahiCommon) | ||
| 53 | add_library(Avahi::AvahiCommon UNKNOWN IMPORTED) | ||
| 54 | set_target_properties(Avahi::AvahiCommon PROPERTIES | ||
| 55 | IMPORTED_LOCATION "${AVAHI_COMMON_LIBRARY}" | ||
| 56 | INTERFACE_INCLUDE_DIRECTORIES "${AVAHI_COMMON_INCLUDE_DIR}" | ||
| 57 | INTERFACE_COMPILE_DEFINITIONS HAVE_LIBAVAHI_COMMON=1 | ||
| 58 | INTERFACE_LINK_LIBRARIES Avahi::Avahi) | ||
| 59 | endif() | ||
| 60 | endif() | ||
| 24 | 61 | ||
| 25 | mark_as_advanced(AVAHI_INCLUDE_DIRS AVAHI_LIBRARIES) | 62 | mark_as_advanced(AVAHI_CLIENT_INCLUDE_DIR AVAHI_COMMON_INCLUDE_DIR |
| 26 | list(APPEND AVAHI_DEFINITIONS -DHAVE_LIBAVAHI_COMMON=1 -DHAVE_LIBAVAHI_CLIENT=1) | 63 | AVAHI_CLIENT_LIBRARY AVAHI_COMMON_LIBRARY) |
diff --git a/project/cmake/modules/FindBluetooth.cmake b/project/cmake/modules/FindBluetooth.cmake new file mode 100644 index 0000000..538e89c --- /dev/null +++ b/project/cmake/modules/FindBluetooth.cmake | |||
| @@ -0,0 +1,44 @@ | |||
| 1 | #.rst: | ||
| 2 | # FindBluetooth | ||
| 3 | # --------- | ||
| 4 | # Finds the Bluetooth library | ||
| 5 | # | ||
| 6 | # This will will define the following variables:: | ||
| 7 | # | ||
| 8 | # BLUETOOTH_FOUND - system has Bluetooth | ||
| 9 | # BLUETOOTH_INCLUDE_DIRS - the Bluetooth include directory | ||
| 10 | # BLUETOOTH_LIBRARIES - the Bluetooth libraries | ||
| 11 | # | ||
| 12 | # and the following imported targets:: | ||
| 13 | # | ||
| 14 | # Bluetooth::Bluetooth - The Bluetooth library | ||
| 15 | |||
| 16 | if(PKG_CONFIG_FOUND) | ||
| 17 | pkg_check_modules(PC_BLUETOOTH bluetooth QUIET) | ||
| 18 | endif() | ||
| 19 | |||
| 20 | find_path(BLUETOOTH_INCLUDE_DIR NAMES bluetooth/bluetooth.h | ||
| 21 | PATHS ${PC_BLUETOOTH_INCLUDEDIR}) | ||
| 22 | find_library(BLUETOOTH_LIBRARY NAMES bluetooth | ||
| 23 | PATHS ${PC_BLUETOOTH_LIBDIR}) | ||
| 24 | |||
| 25 | set(BLUETOOTH_VERSION ${PC_BLUETOOTH_VERSION}) | ||
| 26 | |||
| 27 | include(FindPackageHandleStandardArgs) | ||
| 28 | find_package_handle_standard_args(Bluetooth | ||
| 29 | REQUIRED_VARS BLUETOOTH_LIBRARY BLUETOOTH_INCLUDE_DIR | ||
| 30 | VERSION_VAR ${BLUETOOTH_VERSION}) | ||
| 31 | |||
| 32 | if(BLUETOOTH_FOUND) | ||
| 33 | set(BLUETOOTH_INCLUDE_DIRS ${BLUETOOTH_INCLUDE_DIR}) | ||
| 34 | set(BLUETOOTH_LIBRARIES ${BLUETOOTH_LIBRARY}) | ||
| 35 | |||
| 36 | if(NOT TARGET Bluetooth::Bluetooth) | ||
| 37 | add_library(Bluetooth::Bluetooth UNKNOWN IMPORTED) | ||
| 38 | set_target_properties(Bluetooth::Bluetooth PROPERTIES | ||
| 39 | IMPORTED_LOCATION "${BLUETOOTH_LIBRARY}" | ||
| 40 | INTERFACE_INCLUDE_DIRECTORIES "${BLUETOOTH_INCLUDE_DIR}") | ||
| 41 | endif() | ||
| 42 | endif() | ||
| 43 | |||
| 44 | mark_as_advanced(BLUETOOTH_INCLUDE_DIR BLUETOOTH_LIBRARY) | ||
diff --git a/project/cmake/modules/FindBluray.cmake b/project/cmake/modules/FindBluray.cmake index 2b0a449..b8422ed 100644 --- a/project/cmake/modules/FindBluray.cmake +++ b/project/cmake/modules/FindBluray.cmake | |||
| @@ -15,26 +15,27 @@ | |||
| 15 | # Bluray::Bluray - The libblueray library | 15 | # Bluray::Bluray - The libblueray library |
| 16 | 16 | ||
| 17 | if(PKG_CONFIG_FOUND) | 17 | if(PKG_CONFIG_FOUND) |
| 18 | pkg_check_modules(BLURAY libbluray>=0.7.0) | 18 | pkg_check_modules(PC_BLURAY libbluray>=0.7.0 QUIET) |
| 19 | set(BLURAY_VERSION ${PC_BLURAY_VERSION}) | 19 | endif() |
| 20 | |||
| 21 | find_path(BLURAY_INCLUDE_DIR libbluray/bluray.h | ||
| 22 | PATHS ${PC_BLURAY_INCLUDEDIR}) | ||
| 23 | |||
| 24 | set(BLURAY_VERSION ${PC_BLURAY_VERSION}) | ||
| 25 | |||
| 26 | include(FindPackageHandleStandardArgs) | ||
| 27 | if(NOT WIN32) | ||
| 28 | find_library(BLURAY_LIBRARY NAMES bluray | ||
| 29 | PATHS ${PC_BLURAY_LIBDIR}) | ||
| 30 | |||
| 31 | find_package_handle_standard_args(Bluray | ||
| 32 | REQUIRED_VARS BLURAY_LIBRARY BLURAY_INCLUDE_DIR | ||
| 33 | VERSION_VAR BLURAY_VERSION) | ||
| 20 | else() | 34 | else() |
| 21 | find_path(BLURAY_INCLUDE_DIR libbluray/bluray.h | 35 | # Dynamically loaded DLL |
| 22 | PATHS ${PC_BLURAY_INCLUDEDIR}) | 36 | find_package_handle_standard_args(Bluray |
| 23 | 37 | REQUIRED_VARS BLURAY_INCLUDE_DIR | |
| 24 | include(FindPackageHandleStandardArgs) | 38 | VERSION_VAR BLURAY_VERSION) |
| 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() | ||
| 38 | endif() | 39 | endif() |
| 39 | 40 | ||
| 40 | if(BLURAY_FOUND) | 41 | if(BLURAY_FOUND) |
diff --git a/project/cmake/modules/FindCCache.cmake b/project/cmake/modules/FindCCache.cmake index 4ad7d07..a7fd29f 100644 --- a/project/cmake/modules/FindCCache.cmake +++ b/project/cmake/modules/FindCCache.cmake | |||
| @@ -1,6 +1,18 @@ | |||
| 1 | find_program(CCACHE_FOUND ccache) | 1 | #.rst: |
| 2 | if(CCACHE_FOUND) | 2 | # FindCCache |
| 3 | set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache) | 3 | # ---------- |
| 4 | set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache) | 4 | # Finds ccache and sets it up as compiler wrapper. |
| 5 | endif(CCACHE_FOUND) | 5 | # This should ideally be called before the call to project(). |
| 6 | # | ||
| 7 | # See: https://crascit.com/2016/04/09/using-ccache-with-cmake/ | ||
| 8 | |||
| 9 | find_program(CCACHE_PROGRAM ccache) | ||
| 6 | 10 | ||
| 11 | include(FindPackageHandleStandardArgs) | ||
| 12 | find_package_handle_standard_args(CCACHE REQUIRED_VARS CCACHE_PROGRAM) | ||
| 13 | |||
| 14 | if(CCACHE_FOUND) | ||
| 15 | # Supports Unix Makefiles and Ninja | ||
| 16 | set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}") | ||
| 17 | set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK "${CCACHE_PROGRAM}") | ||
| 18 | endif() | ||
diff --git a/project/cmake/modules/FindCEC.cmake b/project/cmake/modules/FindCEC.cmake index 98e900d..bd6fd1d 100644 --- a/project/cmake/modules/FindCEC.cmake +++ b/project/cmake/modules/FindCEC.cmake | |||
| @@ -15,13 +15,23 @@ | |||
| 15 | # CEC::CEC - The libCEC library | 15 | # CEC::CEC - The libCEC library |
| 16 | 16 | ||
| 17 | if(PKG_CONFIG_FOUND) | 17 | if(PKG_CONFIG_FOUND) |
| 18 | pkg_check_modules(PC_CEC libCEC>=3.0.0 QUIET) | 18 | pkg_check_modules(PC_CEC libcec QUIET) |
| 19 | endif() | 19 | endif() |
| 20 | 20 | ||
| 21 | find_path(CEC_INCLUDE_DIR libCEC/CEC.h | 21 | find_path(CEC_INCLUDE_DIR NAMES libcec/cec.h libCEC/CEC.h |
| 22 | PATHS ${PC_CEC_INCLUDEDIR}) | 22 | PATHS ${PC_CEC_INCLUDEDIR}) |
| 23 | 23 | ||
| 24 | set(CEC_VERSION ${PC_CEC_VERSION}) | 24 | if(PC_CEC_VERSION) |
| 25 | set(CEC_VERSION ${PC_CEC_VERSION}) | ||
| 26 | elseif(CEC_INCLUDE_DIR AND EXISTS "${CEC_INCLUDE_DIR}/libcec/version.h") | ||
| 27 | file(STRINGS "${CEC_INCLUDE_DIR}/libcec/version.h" cec_version_str REGEX "^[\t ]+LIBCEC_VERSION_TO_UINT\\(.*\\)") | ||
| 28 | string(REGEX REPLACE "^[\t ]+LIBCEC_VERSION_TO_UINT\\(([0-9]+), ([0-9]+), ([0-9]+)\\)" "\\1.\\2.\\3" CEC_VERSION "${cec_version_str}") | ||
| 29 | unset(cec_version_str) | ||
| 30 | endif() | ||
| 31 | |||
| 32 | if(NOT CEC_FIND_VERSION) | ||
| 33 | set(CEC_FIND_VERSION 4.0.0) | ||
| 34 | endif() | ||
| 25 | 35 | ||
| 26 | include(FindPackageHandleStandardArgs) | 36 | include(FindPackageHandleStandardArgs) |
| 27 | if(NOT WIN32) | 37 | if(NOT WIN32) |
diff --git a/project/cmake/modules/FindCWiid.cmake b/project/cmake/modules/FindCWiid.cmake new file mode 100644 index 0000000..88cfbef --- /dev/null +++ b/project/cmake/modules/FindCWiid.cmake | |||
| @@ -0,0 +1,44 @@ | |||
| 1 | #.rst: | ||
| 2 | # FindCWiid | ||
| 3 | # --------- | ||
| 4 | # Finds the CWiid library | ||
| 5 | # | ||
| 6 | # This will will define the following variables:: | ||
| 7 | # | ||
| 8 | # CWIID_FOUND - system has CWiid | ||
| 9 | # CWIID_INCLUDE_DIRS - the CWiid include directory | ||
| 10 | # CWIID_LIBRARIES - the CWiid libraries | ||
| 11 | # | ||
| 12 | # and the following imported targets:: | ||
| 13 | # | ||
| 14 | # CWiid::CWiid - The CWiid library | ||
| 15 | |||
| 16 | if(PKG_CONFIG_FOUND) | ||
| 17 | pkg_check_modules(PC_CWIID cwiid QUIET) | ||
| 18 | endif() | ||
| 19 | |||
| 20 | find_path(CWIID_INCLUDE_DIR NAMES cwiid.h | ||
| 21 | PATHS ${PC_CWIID_INCLUDEDIR}) | ||
| 22 | find_library(CWIID_LIBRARY NAMES cwiid | ||
| 23 | PATHS ${PC_CWIID_LIBDIR}) | ||
| 24 | |||
| 25 | set(CWIID_VERSION ${PC_CWIID_VERSION}) | ||
| 26 | |||
| 27 | include(FindPackageHandleStandardArgs) | ||
| 28 | find_package_handle_standard_args(CWIID | ||
| 29 | REQUIRED_VARS CWIID_LIBRARY CWIID_INCLUDE_DIR | ||
| 30 | VERSION_VAR CWIID_VERSION) | ||
| 31 | |||
| 32 | if(CWIID_FOUND) | ||
| 33 | set(CWIID_INCLUDE_DIRS ${CWIID_INCLUDE_DIR}) | ||
| 34 | set(CWIID_LIBRARIES ${CWIID_LIBRARY}) | ||
| 35 | |||
| 36 | if(NOT TARGET CWiid::CWiid) | ||
| 37 | add_library(CWiid::CWiid UNKNOWN IMPORTED) | ||
| 38 | set_target_properties(CWiid::CWiid PROPERTIES | ||
| 39 | IMPORTED_LOCATION "${CWIID_LIBRARY}" | ||
| 40 | INTERFACE_INCLUDE_DIRECTORIES "${CWIID_INCLUDE_DIR}") | ||
| 41 | endif() | ||
| 42 | endif() | ||
| 43 | |||
| 44 | mark_as_advanced(CWIID_INCLUDE_DIR CWIID_LIBRARY) | ||
diff --git a/project/cmake/modules/FindCXX11.cmake b/project/cmake/modules/FindCXX11.cmake index f1b7346..c0b9a52 100644 --- a/project/cmake/modules/FindCXX11.cmake +++ b/project/cmake/modules/FindCXX11.cmake | |||
| @@ -11,8 +11,8 @@ else() | |||
| 11 | if(CXX_FLAG_CXX0X) | 11 | if(CXX_FLAG_CXX0X) |
| 12 | add_options (CXX ALL_BUILDS "-std=c++0x") | 12 | add_options (CXX ALL_BUILDS "-std=c++0x") |
| 13 | set(CXX_STD11_FLAGS "-std=c++0x") | 13 | set(CXX_STD11_FLAGS "-std=c++0x") |
| 14 | endif(CXX_FLAG_CXX0X) | 14 | endif() |
| 15 | endif(CXX_FLAG_CXX11) | 15 | endif() |
| 16 | 16 | ||
| 17 | include(FindPackageHandleStandardArgs) | 17 | include(FindPackageHandleStandardArgs) |
| 18 | find_package_handle_standard_args(CXX11 DEFAULT_MSG CXX_STD11_FLAGS) | 18 | 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 index 1b6b8cd..aa089c2 100644 --- a/project/cmake/modules/FindCdio.cmake +++ b/project/cmake/modules/FindCdio.cmake | |||
| @@ -1,20 +1,45 @@ | |||
| 1 | # - Try to find cdio | 1 | #.rst: |
| 2 | # Once done this will define | 2 | # FindCdio |
| 3 | # -------- | ||
| 4 | # Finds the cdio library | ||
| 3 | # | 5 | # |
| 4 | # CDIO_FOUND - system has libcdio | 6 | # This will will define the following variables:: |
| 5 | # CDIO_INCLUDE_DIRS - the libcdio include directory | 7 | # |
| 6 | # CDIO_LIBRARIES - The libcdio libraries | 8 | # CDIO_FOUND - system has cdio |
| 9 | # CDIO_INCLUDE_DIRS - the cdio include directory | ||
| 10 | # CDIO_LIBRARIES - the cdio libraries | ||
| 11 | # | ||
| 12 | # and the following imported targets:: | ||
| 13 | # | ||
| 14 | # CDIO::CDIO - The cdio library | ||
| 7 | 15 | ||
| 8 | if(PKG_CONFIG_FOUND) | 16 | if(PKG_CONFIG_FOUND) |
| 9 | pkg_check_modules (CDIO libcdio libiso9660) | 17 | pkg_check_modules(PC_CDIO libcdio libiso9660 QUIET) |
| 10 | list(APPEND CDIO_INCLUDE_DIRS ${CDIO_libcdio_INCLUDEDIR} ${CDIO_libiso9660_INCLUDEDIR}) | ||
| 11 | endif() | ||
| 12 | if(NOT CDIO_FOUND) | ||
| 13 | find_path(CDIO_INCLUDE_DIRS cdio/cdio.h) | ||
| 14 | find_library(MODPLUG_LIBRARIES NAMES cdio) | ||
| 15 | endif() | 18 | endif() |
| 16 | 19 | ||
| 20 | find_path(CDIO_INCLUDE_DIR NAMES cdio/cdio.h | ||
| 21 | PATHS ${PC_CDIO_libcdio_INCLUDEDIR} | ||
| 22 | ${PC_CDIO_libiso9660_INCLUDEDIR}) | ||
| 23 | find_library(CDIO_LIBRARY NAMES cdio | ||
| 24 | PATHS ${CDIO_libcdio_LIBDIR} ${CDIO_libiso9660_LIBDIR}) | ||
| 25 | |||
| 26 | set(CDIO_VERSION ${PC_CDIO_libcdio_VERSION}) | ||
| 27 | |||
| 17 | include(FindPackageHandleStandardArgs) | 28 | include(FindPackageHandleStandardArgs) |
| 18 | find_package_handle_standard_args(Cdio DEFAULT_MSG CDIO_INCLUDE_DIRS CDIO_LIBRARIES) | 29 | find_package_handle_standard_args(CDIO |
| 30 | REQUIRED_VARS CDIO_LIBRARY CDIO_INCLUDE_DIR | ||
| 31 | VERSION_VAR CDIO_VERSION) | ||
| 32 | |||
| 33 | if(CDIO_FOUND) | ||
| 34 | set(CDIO_LIBRARIES ${CDIO_LIBRARY}) | ||
| 35 | set(CDIO_INCLUDE_DIRS ${CDIO_INCLUDE_DIR}) | ||
| 36 | |||
| 37 | if(NOT TARGET CDIO::CDIO) | ||
| 38 | add_library(CDIO::CDIO UNKNOWN IMPORTED) | ||
| 39 | set_target_properties(CDIO::CDIO PROPERTIES | ||
| 40 | IMPORTED_LOCATION "${CDIO_LIBRARY}" | ||
| 41 | INTERFACE_INCLUDE_DIRECTORIES "${CDIO_INCLUDE_DIR}") | ||
| 42 | endif() | ||
| 43 | endif() | ||
| 19 | 44 | ||
| 20 | mark_as_advanced(CDIO_INCLUDE_DIRS CDIO_LIBRARIES) | 45 | mark_as_advanced(CDIO_INCLUDE_DIR CDIO_LIBRARY) |
diff --git a/project/cmake/modules/FindCpluff.cmake b/project/cmake/modules/FindCpluff.cmake index c6693fa..fb2bb25 100644 --- a/project/cmake/modules/FindCpluff.cmake +++ b/project/cmake/modules/FindCpluff.cmake | |||
| @@ -8,38 +8,46 @@ | |||
| 8 | 8 | ||
| 9 | if(NOT WIN32) | 9 | if(NOT WIN32) |
| 10 | string(REPLACE ";" " " defines "${CMAKE_C_FLAGS} ${SYSTEM_DEFINES} -I${EXPAT_INCLUDE_DIR}") | 10 | string(REPLACE ";" " " defines "${CMAKE_C_FLAGS} ${SYSTEM_DEFINES} -I${EXPAT_INCLUDE_DIR}") |
| 11 | get_filename_component(expat_dir ${EXPAT_LIBRARY} PATH) | 11 | get_filename_component(expat_dir ${EXPAT_LIBRARY} DIRECTORY) |
| 12 | set(ldflags "-L${expat_dir}") | 12 | set(ldflags "-L${expat_dir}") |
| 13 | ExternalProject_Add(libcpluff SOURCE_DIR ${CORE_SOURCE_DIR}/lib/cpluff | 13 | ExternalProject_Add(libcpluff SOURCE_DIR ${CORE_SOURCE_DIR}/lib/cpluff |
| 14 | BUILD_IN_SOURCE 1 | 14 | BUILD_IN_SOURCE 1 |
| 15 | PREFIX ${CORE_BUILD_DIR}/cpluff | 15 | PREFIX ${CORE_BUILD_DIR}/cpluff |
| 16 | PATCH_COMMAND rm -f config.status | ||
| 17 | UPDATE_COMMAND PATH=${NATIVEPREFIX}/bin:$ENV{PATH} autoreconf -vif | ||
| 18 | CONFIGURE_COMMAND CC=${CMAKE_C_COMPILER} ${CORE_SOURCE_DIR}/lib/cpluff/configure | 16 | CONFIGURE_COMMAND CC=${CMAKE_C_COMPILER} ${CORE_SOURCE_DIR}/lib/cpluff/configure |
| 19 | --disable-nls | 17 | --disable-nls |
| 20 | --enable-static | 18 | --enable-static |
| 21 | --disable-shared | 19 | --disable-shared |
| 22 | --with-pic | 20 | --with-pic |
| 23 | --prefix=<INSTALL_DIR> | 21 | --prefix=<INSTALL_DIR> |
| 22 | --libdir=<INSTALL_DIR>/lib | ||
| 24 | --host=${ARCH} | 23 | --host=${ARCH} |
| 25 | CFLAGS=${defines} | 24 | CFLAGS=${defines} |
| 26 | LDFLAGS=${ldflags} | 25 | LDFLAGS=${ldflags}) |
| 27 | BUILD_COMMAND make V=1) | 26 | ExternalProject_Add_Step(libcpluff autoreconf |
| 27 | DEPENDEES download update patch | ||
| 28 | DEPENDERS configure | ||
| 29 | COMMAND rm -f config.status | ||
| 30 | COMMAND PATH=${NATIVEPREFIX}/bin:$ENV{PATH} autoreconf -vif | ||
| 31 | WORKING_DIRECTORY <SOURCE_DIR>) | ||
| 32 | |||
| 28 | set(ldflags "${ldflags};-lexpat") | 33 | set(ldflags "${ldflags};-lexpat") |
| 29 | core_link_library(${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/cpluff/lib/libcpluff.a | 34 | core_link_library(${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/cpluff/lib/libcpluff.a |
| 30 | system/libcpluff libcpluff extras "${ldflags}") | 35 | system/libcpluff libcpluff extras "${ldflags}") |
| 31 | set(WRAP_FILES ${WRAP_FILES} PARENT_SCOPE) | 36 | set(CPLUFF_INCLUDE_DIRS ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/cpluff/include) |
| 37 | set(CPLUFF_FOUND 1) | ||
| 38 | mark_as_advanced(CPLUFF_INCLUDE_DIRS CPLUFF_FOUND) | ||
| 32 | else() | 39 | else() |
| 33 | ExternalProject_Add(libcpluff SOURCE_DIR ${CORE_SOURCE_DIR}/lib/cpluff | 40 | find_path(CPLUFF_INCLUDE_DIR cpluff.h) |
| 34 | PREFIX ${CORE_BUILD_DIR}/cpluff | ||
| 35 | CONFIGURE_COMMAND "" | ||
| 36 | # TODO: Building the project directly from lib/cpluff/libcpluff/win32/cpluff.vcxproj | ||
| 37 | # fails becaue it imports XBMC.defaults.props | ||
| 38 | BUILD_COMMAND msbuild ${CORE_SOURCE_DIR}/project/VS2010Express/XBMC\ for\ Windows.sln | ||
| 39 | /t:cpluff /p:Configuration=${CORE_BUILD_CONFIG} | ||
| 40 | INSTALL_COMMAND "") | ||
| 41 | endif() | ||
| 42 | 41 | ||
| 43 | set(CPLUFF_INCLUDE_DIRS ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/cpluff/include) | 42 | include(FindPackageHandleStandardArgs) |
| 44 | set(CPLUFF_FOUND 1) | 43 | find_package_handle_standard_args(CPLUFF |
| 45 | mark_as_advanced(CPLUFF_INCLUDE_DIRS CPLUFF_FOUND) | 44 | REQUIRED_VARS CPLUFF_INCLUDE_DIR) |
| 45 | |||
| 46 | if(CPLUFF_FOUND) | ||
| 47 | set(CPLUFF_INCLUDE_DIRS ${CPLUFF_INCLUDE_DIR}) | ||
| 48 | endif() | ||
| 49 | mark_as_advanced(CPLUFF_INCLUDE_DIRS CPLUFF_FOUND) | ||
| 50 | |||
| 51 | add_custom_target(libcpluff) | ||
| 52 | endif() | ||
| 53 | set_target_properties(libcpluff PROPERTIES FOLDER "External Projects") | ||
diff --git a/project/cmake/modules/FindCrossGUID.cmake b/project/cmake/modules/FindCrossGUID.cmake index df40c9e..bcae3d3 100644 --- a/project/cmake/modules/FindCrossGUID.cmake +++ b/project/cmake/modules/FindCrossGUID.cmake | |||
| @@ -5,8 +5,22 @@ if(ENABLE_INTERNAL_CROSSGUID) | |||
| 5 | list(GET CGUID_VER 0 CGUID_VER) | 5 | list(GET CGUID_VER 0 CGUID_VER) |
| 6 | string(SUBSTRING "${CGUID_VER}" 8 -1 CGUID_VER) | 6 | string(SUBSTRING "${CGUID_VER}" 8 -1 CGUID_VER) |
| 7 | 7 | ||
| 8 | # allow user to override the download URL with a local tarball | ||
| 9 | # needed for offline build envs | ||
| 10 | if(CROSSGUID_URL) | ||
| 11 | get_filename_component(CROSSGUID_URL "${CROSSGUID_URL}" ABSOLUTE) | ||
| 12 | else() | ||
| 13 | set(CROSSGUID_URL http://mirrors.kodi.tv/build-deps/sources/crossguid-${CGUID_VER}.tar.gz) | ||
| 14 | endif() | ||
| 15 | if(VERBOSE) | ||
| 16 | message(STATUS "CROSSGUID_URL: ${CROSSGUID_URL}") | ||
| 17 | endif() | ||
| 18 | |||
| 19 | set(CROSSGUID_LIBRARY ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/libcrossguid.a) | ||
| 20 | set(CROSSGUID_INCLUDE_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/include) | ||
| 8 | externalproject_add(crossguid | 21 | externalproject_add(crossguid |
| 9 | URL http://mirrors.kodi.tv/build-deps/sources/crossguid-${CGUID_VER}.tar.gz | 22 | URL ${CROSSGUID_URL} |
| 23 | DOWNLOAD_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/download | ||
| 10 | PREFIX ${CORE_BUILD_DIR}/crossguid | 24 | PREFIX ${CORE_BUILD_DIR}/crossguid |
| 11 | CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR} | 25 | CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR} |
| 12 | -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} | 26 | -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} |
| @@ -18,17 +32,19 @@ if(ENABLE_INTERNAL_CROSSGUID) | |||
| 18 | <SOURCE_DIR> && | 32 | <SOURCE_DIR> && |
| 19 | ${CMAKE_COMMAND} -E copy | 33 | ${CMAKE_COMMAND} -E copy |
| 20 | ${CORE_SOURCE_DIR}/tools/depends/target/crossguid/FindCXX11.cmake | 34 | ${CORE_SOURCE_DIR}/tools/depends/target/crossguid/FindCXX11.cmake |
| 21 | <SOURCE_DIR>) | 35 | <SOURCE_DIR> |
| 22 | 36 | BUILD_BYPRODUCTS ${CROSSGUID_LIBRARY}) | |
| 23 | set(CROSSGUID_FOUND 1) | 37 | set_target_properties(crossguid PROPERTIES FOLDER "External Projects") |
| 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 | 38 | ||
| 27 | include(FindPackageHandleStandardArgs) | 39 | include(FindPackageHandleStandardArgs) |
| 28 | find_package_handle_standard_args(CROSSGUID DEFAULT_MSG CROSSGUID_INCLUDE_DIRS CROSSGUID_LIBRARIES) | 40 | find_package_handle_standard_args(CrossGuid |
| 29 | mark_as_advanced(CROSSGUID_INCLUDE_DIRS CROSSGUID_LIBRARIES CROSSGUID_DEFINITIONS CROSSGUID_FOUND) | 41 | REQUIRED_VARS CROSSGUID_LIBRARY CROSSGUID_INCLUDE_DIR |
| 42 | VERSION_VAR CGUID_VER) | ||
| 43 | |||
| 44 | set(CROSSGUID_LIBRARIES ${CROSSGUID_LIBRARY}) | ||
| 45 | set(CROSSGUID_INCLUDE_DIRS ${CROSSGUID_INCLUDE_DIR}) | ||
| 30 | else() | 46 | else() |
| 31 | find_path(CROSSGUID_INCLUDE_DIR guid.h) | 47 | find_path(CROSSGUID_INCLUDE_DIR NAMES guid.h) |
| 32 | 48 | ||
| 33 | find_library(CROSSGUID_LIBRARY_RELEASE NAMES crossguid) | 49 | find_library(CROSSGUID_LIBRARY_RELEASE NAMES crossguid) |
| 34 | find_library(CROSSGUID_LIBRARY_DEBUG NAMES crossguidd) | 50 | find_library(CROSSGUID_LIBRARY_DEBUG NAMES crossguidd) |
| @@ -37,12 +53,15 @@ else() | |||
| 37 | select_library_configurations(CROSSGUID) | 53 | select_library_configurations(CROSSGUID) |
| 38 | 54 | ||
| 39 | include(FindPackageHandleStandardArgs) | 55 | include(FindPackageHandleStandardArgs) |
| 40 | find_package_handle_standard_args(CROSSGUID | 56 | find_package_handle_standard_args(CrossGuid |
| 41 | REQUIRED_VARS CROSSGUID_LIBRARY CROSSGUID_INCLUDE_DIR) | 57 | REQUIRED_VARS CROSSGUID_LIBRARY CROSSGUID_INCLUDE_DIR) |
| 42 | 58 | ||
| 43 | if(CROSSGUID_FOUND) | 59 | if(CROSSGUID_FOUND) |
| 44 | set(CROSSGUID_LIBRARIES ${CROSSGUID_LIBRARY}) | 60 | set(CROSSGUID_LIBRARIES ${CROSSGUID_LIBRARY}) |
| 45 | set(CROSSGUID_INCLUDE_DIRS ${CROSSGUID_INCLUDE_DIR}) | 61 | set(CROSSGUID_INCLUDE_DIRS ${CROSSGUID_INCLUDE_DIR}) |
| 62 | |||
| 63 | add_custom_target(crossguid) | ||
| 64 | set_target_properties(crossguid PROPERTIES FOLDER "External Projects") | ||
| 46 | endif() | 65 | endif() |
| 47 | mark_as_advanced(CROSSGUID_INCLUDE_DIR CROSSGUID_LIBRARY) | 66 | mark_as_advanced(CROSSGUID_INCLUDE_DIR CROSSGUID_LIBRARY) |
| 48 | endif() | 67 | endif() |
diff --git a/project/cmake/modules/FindCurl.cmake b/project/cmake/modules/FindCurl.cmake index a2e8862..ed4d81f 100644 --- a/project/cmake/modules/FindCurl.cmake +++ b/project/cmake/modules/FindCurl.cmake | |||
| @@ -1,37 +1,83 @@ | |||
| 1 | # - Try to find CURL | 1 | #.rst: |
| 2 | # Once done this will define | 2 | # FindCurl |
| 3 | # -------- | ||
| 4 | # Finds the Curl library | ||
| 3 | # | 5 | # |
| 4 | # CURL_FOUND - system has libcurl | 6 | # This will will define the following variables:: |
| 5 | # CURL_INCLUDE_DIRS - the libcurl include directory | 7 | # |
| 6 | # CURL_LIBRARIES - The libcurl libraries | 8 | # CURL_FOUND - system has Curl |
| 9 | # CURL_INCLUDE_DIRS - the Curl include directory | ||
| 10 | # CURL_LIBRARIES - the Curl libraries | ||
| 11 | # CURL_DEFINITIONS - the Curl definitions | ||
| 12 | # | ||
| 13 | # and the following imported targets:: | ||
| 14 | # | ||
| 15 | # Curl::Curl - The Curl library | ||
| 7 | 16 | ||
| 8 | if(PKG_CONFIG_FOUND) | 17 | if(PKG_CONFIG_FOUND) |
| 9 | pkg_check_modules (CURL libcurl) | 18 | pkg_check_modules(PC_CURL libcurl QUIET) |
| 10 | list(APPEND CURL_INCLUDE_DIRS ${CURL_INCLUDEDIR}) | ||
| 11 | else() | ||
| 12 | find_path(CURL_INCLUDE_DIRS curl/curl.h) | ||
| 13 | find_library(CURL_LIBRARIES NAMES curl libcurl) | ||
| 14 | endif() | 19 | endif() |
| 15 | include(FindPackageHandleStandardArgs) | ||
| 16 | find_package_handle_standard_args(Curl DEFAULT_MSG CURL_INCLUDE_DIRS CURL_LIBRARIES) | ||
| 17 | 20 | ||
| 18 | mark_as_advanced(CURL_INCLUDE_DIRS CURL_LIBRARIES) | 21 | find_path(CURL_INCLUDE_DIR NAMES curl/curl.h |
| 22 | PATHS ${PC_CURL_INCLUDEDIR}) | ||
| 23 | find_library(CURL_LIBRARY NAMES curl libcurl | ||
| 24 | PATHS ${PC_CURL_LIBDIR}) | ||
| 25 | |||
| 26 | set(CURL_VERSION ${PC_CURL_VERSION}) | ||
| 27 | |||
| 28 | include(FindPackageHandleStandardArgs) | ||
| 29 | find_package_handle_standard_args(Curl | ||
| 30 | REQUIRED_VARS CURL_LIBRARY CURL_INCLUDE_DIR | ||
| 31 | VERSION_VAR CURL_VERSION) | ||
| 19 | 32 | ||
| 20 | if(CURL_FOUND) | 33 | if(CURL_FOUND) |
| 21 | if(NOT CURL_LIBRARY_DIRS AND CURL_LIBDIR) | 34 | set(CURL_INCLUDE_DIRS ${CURL_INCLUDE_DIR}) |
| 22 | set(CURL_LIBRARY_DIRS ${CURL_LIBDIR}) | 35 | set(CURL_LIBRARIES ${CURL_LIBRARY}) |
| 36 | |||
| 37 | # Check whether OpenSSL inside libcurl is static. | ||
| 38 | if(UNIX) | ||
| 39 | if(NOT DEFINED HAS_CURL_STATIC) | ||
| 40 | get_filename_component(CURL_LIBRARY_DIR ${CURL_LIBRARY} DIRECTORY) | ||
| 41 | find_soname(CURL REQUIRED) | ||
| 42 | |||
| 43 | if(APPLE) | ||
| 44 | set(libchecker nm) | ||
| 45 | set(searchpattern "T [_]?CRYPTO_set_locking_call") | ||
| 46 | else() | ||
| 47 | set(libchecker readelf -s) | ||
| 48 | set(searchpattern "CRYPTO_set_locking_call") | ||
| 49 | endif() | ||
| 50 | execute_process( | ||
| 51 | COMMAND ${libchecker} ${CURL_LIBRARY_DIR}/${CURL_SONAME} | ||
| 52 | COMMAND grep -Eq ${searchpattern} | ||
| 53 | RESULT_VARIABLE HAS_CURL_STATIC) | ||
| 54 | unset(libchecker) | ||
| 55 | unset(searchpattern) | ||
| 56 | if(HAS_CURL_STATIC EQUAL 0) | ||
| 57 | set(HAS_CURL_STATIC TRUE) | ||
| 58 | else() | ||
| 59 | set(HAS_CURL_STATIC FALSE) | ||
| 60 | endif() | ||
| 61 | set(HAS_CURL_STATIC ${HAS_CURL_STATIC} CACHE INTERNAL | ||
| 62 | "OpenSSL is statically linked into Curl") | ||
| 63 | message(STATUS "OpenSSL is statically linked into Curl: ${HAS_CURL_STATIC}") | ||
| 64 | endif() | ||
| 23 | endif() | 65 | endif() |
| 24 | 66 | ||
| 25 | find_soname(CURL) | 67 | if(HAS_CURL_STATIC) |
| 68 | set(CURL_DEFINITIONS -DHAS_CURL_STATIC=1) | ||
| 69 | endif() | ||
| 26 | 70 | ||
| 27 | if(EXISTS "${CURL_LIBRARY_DIRS}/${CURL_SONAME}") | 71 | if(NOT TARGET Curl::Curl) |
| 28 | execute_process(COMMAND readelf -s ${CURL_LIBRARY_DIRS}/${CURL_SONAME} COMMAND grep CRYPTO_set_locking_call OUTPUT_VARIABLE HAS_CURL_STATIC) | 72 | add_library(Curl::Curl UNKNOWN IMPORTED) |
| 29 | else() | 73 | set_target_properties(Curl::Curl PROPERTIES |
| 30 | message(FATAL_ERROR "curl library not found") | 74 | IMPORTED_LOCATION "${CURL_LIBRARY}" |
| 75 | INTERFACE_INCLUDE_DIRECTORIES "${CURL_INCLUDE_DIR}") | ||
| 76 | if(HAS_CURL_STATIC) | ||
| 77 | set_target_properties(Curl::Curl PROPERTIES | ||
| 78 | INTERFACE_COMPILE_DEFINITIONS HAS_CURL_STATIC=1) | ||
| 79 | endif() | ||
| 31 | endif() | 80 | endif() |
| 32 | endif() | 81 | endif() |
| 33 | 82 | ||
| 34 | if(HAS_CURL_STATIC) | 83 | mark_as_advanced(CURL_INCLUDE_DIR CURL_LIBRARY) |
| 35 | mark_as_advanced(HAS_CURL_STATIC) | ||
| 36 | list(APPEND CURL_DEFINITIONS -DHAS_CURL_STATIC=1) | ||
| 37 | endif() | ||
diff --git a/project/cmake/modules/FindD3DX11Effects.cmake b/project/cmake/modules/FindD3DX11Effects.cmake index 9de8c2b..d7468e1 100644 --- a/project/cmake/modules/FindD3DX11Effects.cmake +++ b/project/cmake/modules/FindD3DX11Effects.cmake | |||
| @@ -1,28 +1,8 @@ | |||
| 1 | # - Builds D3DX11Effects as external project | 1 | # - Finds D3DX11 dependencies |
| 2 | # Once done this will define | 2 | # Once done this will define |
| 3 | # | 3 | # |
| 4 | # D3DX11EFFECTS_FOUND - system has D3DX11Effects | ||
| 5 | # D3DX11EFFECTS_INCLUDE_DIRS - the D3DX11Effects include directories | ||
| 6 | # D3DCOMPILER_DLL - Path to the Direct3D Compiler | 4 | # D3DCOMPILER_DLL - Path to the Direct3D Compiler |
| 7 | 5 | # FXC - Path to the DirectX Effects Compiler (FXC) | |
| 8 | include(ExternalProject) | ||
| 9 | ExternalProject_Add(d3dx11effects | ||
| 10 | SOURCE_DIR ${CORE_SOURCE_DIR}/lib/win32/Effects11 | ||
| 11 | PREFIX ${CORE_BUILD_DIR}/Effects11 | ||
| 12 | CONFIGURE_COMMAND "" | ||
| 13 | BUILD_COMMAND msbuild ${CORE_SOURCE_DIR}/lib/win32/Effects11/Effects11_2013.sln | ||
| 14 | /t:Effects11 /p:Configuration=${CORE_BUILD_CONFIG} | ||
| 15 | INSTALL_COMMAND "") | ||
| 16 | |||
| 17 | set(D3DX11EFFECTS_FOUND 1) | ||
| 18 | set(D3DX11EFFECTS_INCLUDE_DIRS ${CORE_SOURCE_DIR}/lib/win32/Effects11/inc) | ||
| 19 | |||
| 20 | set(D3DX11EFFECTS_LIBRARY_RELEASE ${CORE_SOURCE_DIR}/lib/win32/Effects11/libs/Effects11/Release/Effects11.lib) | ||
| 21 | set(D3DX11EFFECTS_LIBRARY_DEBUG ${CORE_SOURCE_DIR}/lib/win32/Effects11/libs/Effects11/Debug/Effects11.lib) | ||
| 22 | include(SelectLibraryConfigurations) | ||
| 23 | select_library_configurations(D3DX11EFFECTS) | ||
| 24 | |||
| 25 | mark_as_advanced(D3DX11EFFECTS_FOUND) | ||
| 26 | 6 | ||
| 27 | find_file(D3DCOMPILER_DLL | 7 | find_file(D3DCOMPILER_DLL |
| 28 | NAMES d3dcompiler_47.dll d3dcompiler_46.dll | 8 | NAMES d3dcompiler_47.dll d3dcompiler_46.dll |
| @@ -36,6 +16,7 @@ if(NOT D3DCOMPILER_DLL) | |||
| 36 | message(WARNING "Could NOT find Direct3D Compiler") | 16 | message(WARNING "Could NOT find Direct3D Compiler") |
| 37 | endif() | 17 | endif() |
| 38 | mark_as_advanced(D3DCOMPILER_DLL) | 18 | mark_as_advanced(D3DCOMPILER_DLL) |
| 19 | copy_file_to_buildtree(${D3DCOMPILER_DLL} DIRECTORY .) | ||
| 39 | 20 | ||
| 40 | find_program(FXC fxc | 21 | find_program(FXC fxc |
| 41 | PATHS | 22 | PATHS |
diff --git a/project/cmake/modules/FindDBus.cmake b/project/cmake/modules/FindDBus.cmake new file mode 100644 index 0000000..2d64af4 --- /dev/null +++ b/project/cmake/modules/FindDBus.cmake | |||
| @@ -0,0 +1,52 @@ | |||
| 1 | #.rst: | ||
| 2 | # FindDBUS | ||
| 3 | # ------- | ||
| 4 | # Finds the DBUS library | ||
| 5 | # | ||
| 6 | # This will will define the following variables:: | ||
| 7 | # | ||
| 8 | # DBUS_FOUND - system has DBUS | ||
| 9 | # DBUS_INCLUDE_DIRS - the DBUS include directory | ||
| 10 | # DBUS_LIBRARIES - the DBUS libraries | ||
| 11 | # DBUS_DEFINITIONS - the DBUS definitions | ||
| 12 | # | ||
| 13 | # and the following imported targets:: | ||
| 14 | # | ||
| 15 | # DBus::DBus - The DBUS library | ||
| 16 | |||
| 17 | if(PKG_CONFIG_FOUND) | ||
| 18 | pkg_check_modules(PC_DBUS dbus-1 QUIET) | ||
| 19 | endif() | ||
| 20 | |||
| 21 | find_path(DBUS_INCLUDE_DIR NAMES dbus/dbus.h | ||
| 22 | PATH_SUFFIXES dbus-1.0 | ||
| 23 | PATHS ${PC_DBUS_INCLUDE_DIR}) | ||
| 24 | find_path(DBUS_ARCH_INCLUDE_DIR NAMES dbus/dbus-arch-deps.h | ||
| 25 | PATH_SUFFIXES dbus-1.0/include | ||
| 26 | PATHS ${PC_DBUS_LIBDIR} | ||
| 27 | /usr/lib/${CMAKE_LIBRARY_ARCHITECTURE}) | ||
| 28 | find_library(DBUS_LIBRARY NAMES dbus-1 | ||
| 29 | PATHS ${PC_DBUS_LIBDIR}) | ||
| 30 | |||
| 31 | set(DBUS_VERSION ${PC_DBUS_VERSION}) | ||
| 32 | |||
| 33 | include(FindPackageHandleStandardArgs) | ||
| 34 | find_package_handle_standard_args(DBus | ||
| 35 | REQUIRED_VARS DBUS_LIBRARY DBUS_INCLUDE_DIR DBUS_ARCH_INCLUDE_DIR | ||
| 36 | VERSION_VAR DBUS_VERSION) | ||
| 37 | |||
| 38 | if(DBUS_FOUND) | ||
| 39 | set(DBUS_LIBRARIES ${DBUS_LIBRARY}) | ||
| 40 | set(DBUS_INCLUDE_DIRS ${DBUS_INCLUDE_DIR} ${DBUS_ARCH_INCLUDE_DIR}) | ||
| 41 | set(DBUS_DEFINITIONS -DHAVE_DBUS=1) | ||
| 42 | |||
| 43 | if(NOT TARGET DBus::DBus) | ||
| 44 | add_library(DBus::DBus UNKNOWN IMPORTED) | ||
| 45 | set_target_properties(DBus::DBus PROPERTIES | ||
| 46 | IMPORTED_LOCATION "${DBUS_LIBRARY}" | ||
| 47 | INTERFACE_INCLUDE_DIRECTORIES "${DBUS_INCLUDE_DIR}" | ||
| 48 | INTERFACE_COMPILE_DEFINITIONS HAVE_DBUS=1) | ||
| 49 | endif() | ||
| 50 | endif() | ||
| 51 | |||
| 52 | mark_as_advanced(DBUS_INCLUDE_DIR DBUS_LIBRARY) | ||
diff --git a/project/cmake/modules/FindDbus.cmake b/project/cmake/modules/FindDbus.cmake deleted file mode 100644 index cdc3f52..0000000 --- a/project/cmake/modules/FindDbus.cmake +++ /dev/null | |||
| @@ -1,21 +0,0 @@ | |||
| 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 | |||
| 8 | if(PKG_CONFIG_FOUND) | ||
| 9 | pkg_check_modules (DBUS dbus-1) | ||
| 10 | endif() | ||
| 11 | |||
| 12 | if(DBUS_FOUND) | ||
| 13 | find_path(DBUS_INCLUDE_DIRS dbus/dbus.h PATH_SUFFIXES dbus-1.0) | ||
| 14 | find_library(DBUS_LIBRARIES dbus-1.0) | ||
| 15 | endif() | ||
| 16 | |||
| 17 | include(FindPackageHandleStandardArgs) | ||
| 18 | find_package_handle_standard_args(Dbus DEFAULT_MSG DBUS_INCLUDE_DIRS DBUS_LIBRARIES) | ||
| 19 | |||
| 20 | list(APPEND DBUS_DEFINITIONS -DHAVE_DBUS=1) | ||
| 21 | mark_as_advanced(DBUS_INCLUDE_DIRS DBUS_LIBRARIES DBUS_DEFINITIONS) | ||
diff --git a/project/cmake/modules/FindEMBEDDED.cmake b/project/cmake/modules/FindEMBEDDED.cmake index bc1b456..aa938c5 100644 --- a/project/cmake/modules/FindEMBEDDED.cmake +++ b/project/cmake/modules/FindEMBEDDED.cmake | |||
| @@ -11,7 +11,6 @@ endif() | |||
| 11 | string(REGEX MATCH "^arm" TARGET_ARCH_ARM "${CMAKE_SYSTEM_PROCESSOR}") | 11 | string(REGEX MATCH "^arm" TARGET_ARCH_ARM "${CMAKE_SYSTEM_PROCESSOR}") |
| 12 | if(NOT CMAKE_CROSSCOMPILING AND NOT TARGET_ARCH_ARM) | 12 | if(NOT CMAKE_CROSSCOMPILING AND NOT TARGET_ARCH_ARM) |
| 13 | return() | 13 | return() |
| 14 | endif(NOT CMAKE_CROSSCOMPILING AND NOT TARGET_ARCH_ARM) | 14 | endif() |
| 15 | 15 | ||
| 16 | find_path(EMBEDDED_FOUND NAMES include/linux/imxfb.h include/bcm_host.h PATHS /opt/vc) | 16 | find_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 index 7f8e37f..a9f88fb 100644 --- a/project/cmake/modules/FindFFMPEG.cmake +++ b/project/cmake/modules/FindFFMPEG.cmake | |||
| @@ -12,6 +12,18 @@ if(ENABLE_INTERNAL_FFMPEG) | |||
| 12 | if(FFMPEG_PATH) | 12 | if(FFMPEG_PATH) |
| 13 | message(WARNING "Internal FFmpeg enabled, but FFMPEG_PATH given, ignoring") | 13 | message(WARNING "Internal FFmpeg enabled, but FFMPEG_PATH given, ignoring") |
| 14 | endif() | 14 | endif() |
| 15 | |||
| 16 | # allow user to override the download URL with a local tarball | ||
| 17 | # needed for offline build envs | ||
| 18 | if(FFMPEG_URL) | ||
| 19 | get_filename_component(FFMPEG_URL "${FFMPEG_URL}" ABSOLUTE) | ||
| 20 | else() | ||
| 21 | set(FFMPEG_URL ${FFMPEG_BASE_URL}/${FFMPEG_VER}.tar.gz) | ||
| 22 | endif() | ||
| 23 | if(VERBOSE) | ||
| 24 | message(STATUS "FFMPEG_URL: ${FFMPEG_URL}") | ||
| 25 | endif() | ||
| 26 | |||
| 15 | if(CMAKE_CROSSCOMPILING) | 27 | if(CMAKE_CROSSCOMPILING) |
| 16 | set(CROSS_ARGS -DDEPENDS_PATH=${DEPENDS_PATH} | 28 | set(CROSS_ARGS -DDEPENDS_PATH=${DEPENDS_PATH} |
| 17 | -DPKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE} | 29 | -DPKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE} |
| @@ -28,7 +40,9 @@ if(ENABLE_INTERNAL_FFMPEG) | |||
| 28 | endif() | 40 | endif() |
| 29 | 41 | ||
| 30 | externalproject_add(ffmpeg | 42 | externalproject_add(ffmpeg |
| 31 | URL ${FFMPEG_BASE_URL}/${FFMPEG_VER}.tar.gz | 43 | URL ${FFMPEG_URL} |
| 44 | DOWNLOAD_NAME ffmpeg-${FFMPEG_VER}.tar.gz | ||
| 45 | DOWNLOAD_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/download | ||
| 32 | PREFIX ${CORE_BUILD_DIR}/ffmpeg | 46 | PREFIX ${CORE_BUILD_DIR}/ffmpeg |
| 33 | CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR} | 47 | CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR} |
| 34 | -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} | 48 | -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} |
| @@ -44,7 +58,7 @@ if(ENABLE_INTERNAL_FFMPEG) | |||
| 44 | 58 | ||
| 45 | file(WRITE ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/ffmpeg/ffmpeg-link-wrapper | 59 | file(WRITE ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/ffmpeg/ffmpeg-link-wrapper |
| 46 | "#!/bin/bash | 60 | "#!/bin/bash |
| 47 | if [[ $@ == *${APP_NAME_LC}.bin* || $@ == *${APP_NAME_LC}-test* ]] | 61 | if [[ $@ == *${APP_NAME_LC}.bin* || $@ == *${APP_NAME_LC}.so* || $@ == *${APP_NAME_LC}-test* ]] |
| 48 | then | 62 | then |
| 49 | avformat=`PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/pkgconfig ${PKG_CONFIG_EXECUTABLE} --libs --static libavcodec` | 63 | 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` | 64 | avcodec=`PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/pkgconfig ${PKG_CONFIG_EXECUTABLE} --libs --static libavformat` |
| @@ -53,8 +67,7 @@ then | |||
| 53 | swscale=`PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/pkgconfig ${PKG_CONFIG_EXECUTABLE} --libs --static libswscale` | 67 | 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` | 68 | 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` | 69 | 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` | 70 | $@ $avcodec $avformat $avcodec $avfilter $swscale $swresample -lpostproc $gnutls |
| 57 | $@ $avcodec $avformat $avcodec $avfilter $swscale $swresample -lpostproc $gnutls $vorbisenc | ||
| 58 | else | 71 | else |
| 59 | $@ | 72 | $@ |
| 60 | fi") | 73 | fi") |
| @@ -62,6 +75,7 @@ fi") | |||
| 62 | DESTINATION ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR} | 75 | DESTINATION ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR} |
| 63 | FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) | 76 | FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) |
| 64 | 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) | 77 | 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) |
| 78 | set(FFMPEG_CREATE_SHARED_LIBRARY "${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/ffmpeg-link-wrapper <CMAKE_CXX_COMPILER> <CMAKE_SHARED_LIBRARY_CXX_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS> <SONAME_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>" PARENT_SCOPE) | ||
| 65 | set(FFMPEG_INCLUDE_DIRS ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/include) | 79 | set(FFMPEG_INCLUDE_DIRS ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/include) |
| 66 | list(APPEND FFMPEG_DEFINITIONS -DFFMPEG_VER_SHA=\"${FFMPEG_VER}\" | 80 | list(APPEND FFMPEG_DEFINITIONS -DFFMPEG_VER_SHA=\"${FFMPEG_VER}\" |
| 67 | -DUSE_STATIC_FFMPEG=1) | 81 | -DUSE_STATIC_FFMPEG=1) |
| @@ -72,10 +86,11 @@ else() | |||
| 72 | endif() | 86 | endif() |
| 73 | set(FFMPEG_PKGS libavcodec>=56.26.100 libavfilter>=5.11.100 libavformat>=56.25.101 | 87 | set(FFMPEG_PKGS libavcodec>=56.26.100 libavfilter>=5.11.100 libavformat>=56.25.101 |
| 74 | libavutil>=54.20.100 libswscale>=3.1.101 libswresample>=1.1.100 libpostproc>=53.3.100) | 88 | libavutil>=54.20.100 libswscale>=3.1.101 libswresample>=1.1.100 libpostproc>=53.3.100) |
| 75 | if(PKG_CONFIG_FOUND) | 89 | if(PKG_CONFIG_FOUND AND NOT WIN32) |
| 76 | pkg_check_modules (FFMPEG ${FFMPEG_PKGS}) | 90 | pkg_check_modules (FFMPEG ${FFMPEG_PKGS}) |
| 77 | string(REGEX REPLACE "framework;" "framework " FFMPEG_LDFLAGS "${FFMPEG_LDFLAGS}") | 91 | string(REGEX REPLACE "framework;" "framework " FFMPEG_LDFLAGS "${FFMPEG_LDFLAGS}") |
| 78 | set(FFMPEG_LIBRARIES ${FFMPEG_LDFLAGS}) | 92 | set(FFMPEG_LIBRARIES ${FFMPEG_LDFLAGS}) |
| 93 | add_custom_target(ffmpeg) | ||
| 79 | else() | 94 | else() |
| 80 | find_path(FFMPEG_INCLUDE_DIRS libavcodec/avcodec.h PATH_SUFFIXES ffmpeg) | 95 | find_path(FFMPEG_INCLUDE_DIRS libavcodec/avcodec.h PATH_SUFFIXES ffmpeg) |
| 81 | find_library(FFMPEG_LIBAVCODEC NAMES avcodec libavcodec PATH_SUFFIXES ffmpeg/libavcodec) | 96 | find_library(FFMPEG_LIBAVCODEC NAMES avcodec libavcodec PATH_SUFFIXES ffmpeg/libavcodec) |
| @@ -94,5 +109,6 @@ else() | |||
| 94 | set(FFMPEG_FOUND 1) | 109 | set(FFMPEG_FOUND 1) |
| 95 | list(APPEND FFMPEG_DEFINITIONS -DFFMPEG_VER_SHA=\"${FFMPEG_VER}\") | 110 | list(APPEND FFMPEG_DEFINITIONS -DFFMPEG_VER_SHA=\"${FFMPEG_VER}\") |
| 96 | endif() | 111 | endif() |
| 112 | set_target_properties(ffmpeg PROPERTIES FOLDER "External Projects") | ||
| 97 | 113 | ||
| 98 | mark_as_advanced(FFMPEG_INCLUDE_DIRS FFMPEG_LIBRARIES FFMPEG_DEFINITIONS FFMPEG_FOUND) | 114 | 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 index a1e69ab..fb4c668 100644 --- a/project/cmake/modules/FindFreeType.cmake +++ b/project/cmake/modules/FindFreeType.cmake | |||
| @@ -1,18 +1,45 @@ | |||
| 1 | # - Try to find freetype | 1 | #.rst: |
| 2 | # Once done this will define | 2 | # FindFreetype |
| 3 | # ------------ | ||
| 4 | # Finds the FreeType library | ||
| 3 | # | 5 | # |
| 4 | # FREETYPE_FOUND - system has freetype | 6 | # This will will define the following variables:: |
| 5 | # FREETYPE_INCLUDE_DIRS - the freetype include directory | 7 | # |
| 6 | # FREETYPE_LIBRARIES - The freetype libraries | 8 | # FREETYPE_FOUND - system has FreeType |
| 9 | # FREETYPE_INCLUDE_DIRS - the FreeType include directory | ||
| 10 | # FREETYPE_LIBRARIES - the FreeType libraries | ||
| 11 | # | ||
| 12 | # and the following imported targets:: | ||
| 13 | # | ||
| 14 | # FreeType::FreeType - The FreeType library | ||
| 7 | 15 | ||
| 8 | if(PKG_CONFIG_FOUND) | 16 | if(PKG_CONFIG_FOUND) |
| 9 | pkg_check_modules (FREETYPE freetype2) | 17 | pkg_check_modules(PC_FREETYPE freetype2 QUIET) |
| 10 | else() | ||
| 11 | find_path(FREETYPE_INCLUDE_DIRS freetype/freetype.h) | ||
| 12 | find_library(FREETYPE_LIBRARIES NAMES freetype freetype246MT) | ||
| 13 | endif() | 18 | endif() |
| 14 | 19 | ||
| 20 | find_path(FREETYPE_INCLUDE_DIR NAMES freetype/freetype.h freetype.h | ||
| 21 | PATHS ${PC_FREETYPE_INCLUDEDIR} | ||
| 22 | ${PC_FREETYPE_INCLUDE_DIRS}) | ||
| 23 | find_library(FREETYPE_LIBRARY NAMES freetype freetype246MT | ||
| 24 | PATHS ${PC_FREETYPE_LIBDIR}) | ||
| 25 | |||
| 26 | set(FREETYPE_VERSION ${PC_FREETYPE_VERSION}) | ||
| 27 | |||
| 15 | include(FindPackageHandleStandardArgs) | 28 | include(FindPackageHandleStandardArgs) |
| 16 | find_package_handle_standard_args(FreeType DEFAULT_MSG FREETYPE_INCLUDE_DIRS FREETYPE_LIBRARIES) | 29 | find_package_handle_standard_args(FreeType |
| 30 | REQUIRED_VARS FREETYPE_LIBRARY FREETYPE_INCLUDE_DIR | ||
| 31 | VERSION_VAR FREETYPE_VERSION) | ||
| 32 | |||
| 33 | if(FREETYPE_FOUND) | ||
| 34 | set(FREETYPE_LIBRARIES ${FREETYPE_LIBRARY}) | ||
| 35 | set(FREETYPE_INCLUDE_DIRS ${FREETYPE_INCLUDE_DIR}) | ||
| 36 | |||
| 37 | if(NOT TARGET FreeType::FreeType) | ||
| 38 | add_library(FreeType::FreeType UNKNOWN IMPORTED) | ||
| 39 | set_target_properties(FreeType::FreeType PROPERTIES | ||
| 40 | IMPORTED_LOCATION "${FREETYPE_LIBRARY}" | ||
| 41 | INTERFACE_INCLUDE_DIRECTORIES "${FREETYPE_INCLUDE_DIR}") | ||
| 42 | endif() | ||
| 43 | endif() | ||
| 17 | 44 | ||
| 18 | mark_as_advanced(FREETYPE_INCLUDE_DIRS FREETYPE_LIBRARIES) | 45 | mark_as_advanced(FREETYPE_INCLUDE_DIR FREETYPE_LIBRARY) |
diff --git a/project/cmake/modules/FindFribidi.cmake b/project/cmake/modules/FindFribidi.cmake index 65a8d8b..03c2f53 100644 --- a/project/cmake/modules/FindFribidi.cmake +++ b/project/cmake/modules/FindFribidi.cmake | |||
| @@ -1,18 +1,44 @@ | |||
| 1 | # - Try to find Fribidi | 1 | #.rst: |
| 2 | # Once done this will define | 2 | # FindFribidi |
| 3 | # ----------- | ||
| 4 | # Finds the GNU FriBidi library | ||
| 3 | # | 5 | # |
| 4 | # FRIBIDI_FOUND - system has fribidi | 6 | # This will will define the following variables:: |
| 5 | # FRIBIDI_INCLUDE_DIRS - the fribidi include directory | 7 | # |
| 6 | # FRIBIDI_LIBRARIES - The fribidi libraries | 8 | # FRIBIDI_FOUND - system has FriBidi |
| 9 | # FRIBIDI_INCLUDE_DIRS - the FriBidi include directory | ||
| 10 | # FRIBIDI_LIBRARIES - the FriBidi libraries | ||
| 11 | # | ||
| 12 | # and the following imported targets:: | ||
| 13 | # | ||
| 14 | # FriBidi::FriBidi - The FriBidi library | ||
| 7 | 15 | ||
| 8 | if(PKG_CONFIG_FOUND) | 16 | if(PKG_CONFIG_FOUND) |
| 9 | pkg_check_modules (FRIBIDI fribidi) | 17 | pkg_check_modules(PC_FRIBIDI fribidi QUIET) |
| 10 | else() | ||
| 11 | find_path(FRIBIDI_INCLUDE_DIRS fribidi/fribidi.h) | ||
| 12 | find_library(FRIBIDI_LIBRARIES NAMES fribidi libfribidi) | ||
| 13 | endif() | 18 | endif() |
| 14 | 19 | ||
| 20 | find_path(FRIBIDI_INCLUDE_DIR NAMES fribidi/fribidi.h | ||
| 21 | PATHS ${PC_FRIBIDI_INCLUDEDIR}) | ||
| 22 | find_library(FRIBIDI_LIBRARY NAMES fribidi libfribidi | ||
| 23 | PATHS ${PC_FRIBIDI_LIBDIR}) | ||
| 24 | |||
| 25 | set(FRIBIDI_VERSION ${PC_FRIBIDI_VERSION}) | ||
| 26 | |||
| 15 | include(FindPackageHandleStandardArgs) | 27 | include(FindPackageHandleStandardArgs) |
| 16 | find_package_handle_standard_args(Fribidi DEFAULT_MSG FRIBIDI_INCLUDE_DIRS FRIBIDI_LIBRARIES) | 28 | find_package_handle_standard_args(FriBidi |
| 29 | REQUIRED_VARS FRIBIDI_LIBRARY FRIBIDI_INCLUDE_DIR | ||
| 30 | VERSION_VAR FRIBIDI_VERSION) | ||
| 31 | |||
| 32 | if(FRIBIDI_FOUND) | ||
| 33 | set(FRIBIDI_LIBRARIES ${FRIBIDI_LIBRARY}) | ||
| 34 | set(FRIBIDI_INCLUDE_DIRS ${FRIBIDI_INCLUDE_DIR}) | ||
| 35 | |||
| 36 | if(NOT TARGET FriBidi::FriBidi) | ||
| 37 | add_library(FriBidi::FriBidi UNKNOWN IMPORTED) | ||
| 38 | set_target_properties(FriBidi::FriBidi PROPERTIES | ||
| 39 | IMPORTED_LOCATION "${FRIBIDI_LIBRARY}" | ||
| 40 | INTERFACE_INCLUDE_DIRECTORIES "${FRIBIDI_INCLUDE_DIR}") | ||
| 41 | endif() | ||
| 42 | endif() | ||
| 17 | 43 | ||
| 18 | mark_as_advanced(FRIBIDI_INCLUDE_DIRS FRIBIDI_LIBRARIES) | 44 | mark_as_advanced(FRIBIDI_INCLUDE_DIR FRIBIDI_LIBRARY) |
diff --git a/project/cmake/modules/FindJsonSchemaBuilder.cmake b/project/cmake/modules/FindJsonSchemaBuilder.cmake index 78e8d0a..ecff1e4 100644 --- a/project/cmake/modules/FindJsonSchemaBuilder.cmake +++ b/project/cmake/modules/FindJsonSchemaBuilder.cmake | |||
| @@ -12,8 +12,10 @@ if(NOT TARGET JsonSchemaBuilder::JsonSchemaBuilder) | |||
| 12 | add_executable(JsonSchemaBuilder::JsonSchemaBuilder IMPORTED GLOBAL) | 12 | add_executable(JsonSchemaBuilder::JsonSchemaBuilder IMPORTED GLOBAL) |
| 13 | set_target_properties(JsonSchemaBuilder::JsonSchemaBuilder PROPERTIES | 13 | set_target_properties(JsonSchemaBuilder::JsonSchemaBuilder PROPERTIES |
| 14 | IMPORTED_LOCATION "${NATIVEPREFIX}/bin/JsonSchemaBuilder") | 14 | IMPORTED_LOCATION "${NATIVEPREFIX}/bin/JsonSchemaBuilder") |
| 15 | set_target_properties(JsonSchemaBuilder::JsonSchemaBuilder PROPERTIES FOLDER Tools) | ||
| 15 | else() | 16 | else() |
| 16 | add_subdirectory(${CORE_SOURCE_DIR}/tools/depends/native/JsonSchemaBuilder build/jsonschemabuilder) | 17 | add_subdirectory(${CORE_SOURCE_DIR}/tools/depends/native/JsonSchemaBuilder build/jsonschemabuilder) |
| 17 | add_executable(JsonSchemaBuilder::JsonSchemaBuilder ALIAS JsonSchemaBuilder) | 18 | add_executable(JsonSchemaBuilder::JsonSchemaBuilder ALIAS JsonSchemaBuilder) |
| 19 | set_target_properties(JsonSchemaBuilder PROPERTIES FOLDER Tools) | ||
| 18 | endif() | 20 | endif() |
| 19 | endif() | 21 | endif() |
diff --git a/project/cmake/modules/FindLibDRM.cmake b/project/cmake/modules/FindLibDRM.cmake new file mode 100644 index 0000000..35d632e --- /dev/null +++ b/project/cmake/modules/FindLibDRM.cmake | |||
| @@ -0,0 +1,45 @@ | |||
| 1 | #.rst: | ||
| 2 | # FindLibDRM | ||
| 3 | # ---------- | ||
| 4 | # Finds the LibDRM library | ||
| 5 | # | ||
| 6 | # This will will define the following variables:: | ||
| 7 | # | ||
| 8 | # LIBDRM_FOUND - system has LibDRM | ||
| 9 | # LIBDRM_INCLUDE_DIRS - the LibDRM include directory | ||
| 10 | # LIBDRM_LIBRARIES - the LibDRM libraries | ||
| 11 | # | ||
| 12 | # and the following imported targets:: | ||
| 13 | # | ||
| 14 | # LibDRM::LibDRM - The LibDRM library | ||
| 15 | |||
| 16 | if(PKG_CONFIG_FOUND) | ||
| 17 | pkg_check_modules(PC_LIBDRM libdrm QUIET) | ||
| 18 | endif() | ||
| 19 | |||
| 20 | find_path(LIBDRM_INCLUDE_DIR NAMES drm.h | ||
| 21 | PATH_SUFFIXES libdrm drm | ||
| 22 | PATHS ${PC_LIBDRM_INCLUDEDIR}) | ||
| 23 | find_library(LIBDRM_LIBRARY NAMES drm | ||
| 24 | PATHS ${PC_LIBDRM_LIBDIR}) | ||
| 25 | |||
| 26 | set(LIBDRM_VERSION ${PC_LIBDRM_VERSION}) | ||
| 27 | |||
| 28 | include(FindPackageHandleStandardArgs) | ||
| 29 | find_package_handle_standard_args(LibDRM | ||
| 30 | REQUIRED_VARS LIBDRM_LIBRARY LIBDRM_INCLUDE_DIR | ||
| 31 | VERSION_VAR LIBDRM_VERSION) | ||
| 32 | |||
| 33 | if(LIBDRM_FOUND) | ||
| 34 | set(LIBDRM_LIBRARIES ${LIBDRM_LIBRARY}) | ||
| 35 | set(LIBDRM_INCLUDE_DIRS ${LIBDRM_INCLUDE_DIR}) | ||
| 36 | |||
| 37 | if(NOT TARGET LIBDRM::LIBDRM) | ||
| 38 | add_library(LIBDRM::LIBDRM UNKNOWN IMPORTED) | ||
| 39 | set_target_properties(LIBDRM::LIBDRM PROPERTIES | ||
| 40 | IMPORTED_LOCATION "${LIBDRM_LIBRARY}" | ||
| 41 | INTERFACE_INCLUDE_DIRECTORIES "${LIBDRM_INCLUDE_DIR}") | ||
| 42 | endif() | ||
| 43 | endif() | ||
| 44 | |||
| 45 | mark_as_advanced(LIBDRM_INCLUDE_DIR LIBDRM_LIBRARY) | ||
diff --git a/project/cmake/modules/FindLibDvd.cmake b/project/cmake/modules/FindLibDvd.cmake index f281773..fa644d6 100644 --- a/project/cmake/modules/FindLibDvd.cmake +++ b/project/cmake/modules/FindLibDvd.cmake | |||
| @@ -1,106 +1,206 @@ | |||
| 1 | set(dvdlibs libdvdread libdvdnav) | ||
| 2 | if(ENABLE_DVDCSS) | ||
| 3 | list(APPEND dvdlibs libdvdcss) | ||
| 4 | endif() | ||
| 5 | |||
| 6 | if(NOT WIN32) | 1 | if(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) | 2 | if(CMAKE_CROSSCOMPILING) |
| 20 | set(EXTRA_FLAGS "CC=${CMAKE_C_COMPILER}") | 3 | set(_dvdlibs dvdread dvdnav) |
| 21 | endif() | 4 | set(_handlevars LIBDVD_INCLUDE_DIRS DVDREAD_LIBRARY DVDNAV_LIBRARY) |
| 5 | if(ENABLE_DVDCSS) | ||
| 6 | list(APPEND _dvdlibs libdvdcss) | ||
| 7 | list(APPEND _handlevars DVDCSS_LIBRARY) | ||
| 8 | endif() | ||
| 9 | |||
| 10 | if(PKG_CONFIG_FOUND) | ||
| 11 | pkg_check_modules(PC_DVD ${_dvdlibs} QUIET) | ||
| 12 | endif() | ||
| 13 | |||
| 14 | find_path(LIBDVD_INCLUDE_DIRS dvdnav/dvdnav.h PATHS ${PC_DVD_INCLUDE_DIRS}) | ||
| 15 | find_library(DVDREAD_LIBRARY NAMES dvdread libdvdread PATHS ${PC_DVD_dvdread_LIBDIR}) | ||
| 16 | find_library(DVDNAV_LIBRARY NAMES dvdnav libdvdnav PATHS ${PC_DVD_dvdnav_LIBDIR}) | ||
| 17 | if(ENABLE_DVDCSS) | ||
| 18 | find_library(DVDCSS_LIBRARY NAMES dvdcss libdvdcss PATHS ${PC_DVD_libdvdcss_LIBDIR}) | ||
| 19 | endif() | ||
| 20 | |||
| 21 | include(FindPackageHandleStandardArgs) | ||
| 22 | find_package_handle_standard_args(LIBDVD REQUIRED_VARS ${_handlevars}) | ||
| 23 | if(LIBDVD_FOUND) | ||
| 24 | add_library(dvdnav UNKNOWN IMPORTED) | ||
| 25 | set_target_properties(dvdnav PROPERTIES | ||
| 26 | FOLDER "External Projects" | ||
| 27 | IMPORTED_LOCATION "${DVDNAV_LIBRARY}") | ||
| 28 | |||
| 29 | add_library(dvdread UNKNOWN IMPORTED) | ||
| 30 | set_target_properties(dvdread PROPERTIES | ||
| 31 | FOLDER "External Projects" | ||
| 32 | IMPORTED_LOCATION "${DVDREAD_LIBRARY}") | ||
| 33 | add_library(dvdcss UNKNOWN IMPORTED) | ||
| 34 | set_target_properties(dvdcss PROPERTIES | ||
| 35 | FOLDER "External Projects" | ||
| 36 | IMPORTED_LOCATION "${DVDCSS_LIBRARY}") | ||
| 22 | 37 | ||
| 23 | if(APPLE) | 38 | set(_linklibs ${DVDREAD_LIBRARY}) |
| 39 | if(ENABLE_DVDCSS) | ||
| 40 | list(APPEND _linklibs ${DVDCSS_LIBRARY}) | ||
| 41 | endif() | ||
| 42 | core_link_library(${DVDNAV_LIBRARY} system/players/VideoPlayer/libdvdnav dvdnav archives "${_linklibs}") | ||
| 43 | set(LIBDVD_LIBRARIES ${DVDNAV_LIBRARY}) | ||
| 44 | mark_as_advanced(LIBDVD_INCLUDE_DIRS LIBDVD_LIBRARIES) | ||
| 45 | endif() | ||
| 46 | else() | ||
| 47 | set(dvdlibs libdvdread libdvdnav) | ||
| 48 | if(ENABLE_DVDCSS) | ||
| 49 | list(APPEND dvdlibs libdvdcss) | ||
| 50 | endif() | ||
| 51 | foreach(dvdlib ${dvdlibs}) | ||
| 52 | file(GLOB VERSION_FILE ${CORE_SOURCE_DIR}/tools/depends/target/${dvdlib}/DVD*-VERSION) | ||
| 53 | file(STRINGS ${VERSION_FILE} VER) | ||
| 54 | string(REGEX MATCH "VERSION=[^ ]*$.*" ${dvdlib}_VER "${VER}") | ||
| 55 | list(GET ${dvdlib}_VER 0 ${dvdlib}_VER) | ||
| 56 | string(SUBSTRING "${${dvdlib}_VER}" 8 -1 ${dvdlib}_VER) | ||
| 57 | string(REGEX MATCH "BASE_URL=([^ ]*)" ${dvdlib}_BASE_URL "${VER}") | ||
| 58 | list(GET ${dvdlib}_BASE_URL 0 ${dvdlib}_BASE_URL) | ||
| 59 | string(SUBSTRING "${${dvdlib}_BASE_URL}" 9 -1 ${dvdlib}_BASE_URL) | ||
| 60 | string(TOUPPER ${dvdlib} DVDLIB) | ||
| 61 | |||
| 62 | # allow user to override the download URL with a local tarball | ||
| 63 | # needed for offline build envs | ||
| 64 | # allow upper and lowercase var name | ||
| 65 | if(${dvdlib}_URL) | ||
| 66 | set(${DVDLIB}_URL ${${dvdlib}_URL}) | ||
| 67 | endif() | ||
| 68 | if(${DVDLIB}_URL) | ||
| 69 | get_filename_component(${DVDLIB}_URL "${${DVDLIB}_URL}" ABSOLUTE) | ||
| 70 | else() | ||
| 71 | set(${DVDLIB}_URL ${${dvdlib}_BASE_URL}/archive/${${dvdlib}_VER}.tar.gz) | ||
| 72 | endif() | ||
| 73 | if(VERBOSE) | ||
| 74 | message(STATUS "${DVDLIB}_URL: ${${DVDLIB}_URL}") | ||
| 75 | endif() | ||
| 76 | endforeach() | ||
| 77 | |||
| 78 | set(DVDREAD_CFLAGS "${DVDREAD_CFLAGS} -I${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/include") | ||
| 79 | if(CMAKE_CROSSCOMPILING) | ||
| 80 | set(EXTRA_FLAGS "CC=${CMAKE_C_COMPILER}") | ||
| 81 | endif() | ||
| 82 | |||
| 83 | if(APPLE) | ||
| 24 | set(CMAKE_LD_FLAGS "-framework IOKit -framework CoreFoundation") | 84 | set(CMAKE_LD_FLAGS "-framework IOKit -framework CoreFoundation") |
| 25 | endif() | 85 | endif() |
| 86 | |||
| 87 | set(HOST_ARCH ${ARCH}) | ||
| 88 | if(CORE_SYSTEM_NAME STREQUAL android) | ||
| 89 | if(ARCH STREQUAL arm) | ||
| 90 | set(HOST_ARCH arm-linux-androideabi) | ||
| 91 | elseif(ARCH STREQUAL aarch64) | ||
| 92 | set(HOST_ARCH aarch64-linux-android) | ||
| 93 | elseif(ARCH STREQUAL i486-linux) | ||
| 94 | set(HOST_ARCH i686-linux-android) | ||
| 95 | endif() | ||
| 96 | endif() | ||
| 26 | 97 | ||
| 27 | if(ENABLE_DVDCSS) | 98 | if(ENABLE_DVDCSS) |
| 28 | ExternalProject_ADD(dvdcss URL ${libdvdcss_BASE_URL}/archive/${libdvdcss_VER}.tar.gz | 99 | set(DVDCSS_LIBRARY ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdcss.a) |
| 100 | ExternalProject_Add(dvdcss URL ${LIBDVDCSS_URL} | ||
| 101 | DOWNLOAD_NAME libdvdcss-${libdvdcss_VER}.tar.gz | ||
| 102 | DOWNLOAD_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/download | ||
| 103 | PREFIX ${CORE_BUILD_DIR}/libdvd | ||
| 104 | CONFIGURE_COMMAND ac_cv_path_GIT= <SOURCE_DIR>/configure | ||
| 105 | --target=${HOST_ARCH} | ||
| 106 | --host=${HOST_ARCH} | ||
| 107 | --disable-doc | ||
| 108 | --enable-static | ||
| 109 | --disable-shared | ||
| 110 | --with-pic | ||
| 111 | --prefix=<INSTALL_DIR> | ||
| 112 | --libdir=<INSTALL_DIR>/lib | ||
| 113 | "${EXTRA_FLAGS}" | ||
| 114 | "CFLAGS=${CMAKE_C_FLAGS} ${DVDREAD_CFLAGS}" | ||
| 115 | "LDFLAGS=${CMAKE_LD_FLAGS}" | ||
| 116 | BUILD_BYPRODUCTS ${DVDCSS_LIBRARY}) | ||
| 117 | ExternalProject_Add_Step(dvdcss autoreconf | ||
| 118 | DEPENDEES download update patch | ||
| 119 | DEPENDERS configure | ||
| 120 | COMMAND PATH=${NATIVEPREFIX}/bin:$ENV{PATH} autoreconf -vif | ||
| 121 | WORKING_DIRECTORY <SOURCE_DIR>) | ||
| 122 | |||
| 123 | set_target_properties(dvdcss PROPERTIES FOLDER "External Projects") | ||
| 124 | endif() | ||
| 125 | |||
| 126 | set(DVDREAD_CFLAGS "-D_XBMC") | ||
| 127 | if(ENABLE_DVDCSS) | ||
| 128 | set(DVDREAD_CFLAGS "${DVDREAD_CFLAGS} -DHAVE_DVDCSS_DVDCSS_H -I${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/include") | ||
| 129 | endif() | ||
| 130 | |||
| 131 | set(DVDREAD_LIBRARY ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdread.a) | ||
| 132 | ExternalProject_Add(dvdread URL ${LIBDVDREAD_URL} | ||
| 133 | DOWNLOAD_NAME libdvdread-${libdvdread_VER}.tar.gz | ||
| 134 | DOWNLOAD_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/download | ||
| 135 | PREFIX ${CORE_BUILD_DIR}/libdvd | ||
| 136 | CONFIGURE_COMMAND ac_cv_path_GIT= <SOURCE_DIR>/configure | ||
| 137 | --target=${HOST_ARCH} | ||
| 138 | --host=${HOST_ARCH} | ||
| 139 | --enable-static | ||
| 140 | --disable-shared | ||
| 141 | --with-pic | ||
| 142 | --prefix=<INSTALL_DIR> | ||
| 143 | --libdir=<INSTALL_DIR>/lib | ||
| 144 | "${EXTRA_FLAGS}" | ||
| 145 | "CFLAGS=${CMAKE_C_FLAGS} ${DVDREAD_CFLAGS}" | ||
| 146 | "LDFLAGS=${CMAKE_LD_FLAGS}" | ||
| 147 | BUILD_BYPRODUCTS ${DVDREAD_LIBRARY}) | ||
| 148 | ExternalProject_Add_Step(dvdread autoreconf | ||
| 149 | DEPENDEES download update patch | ||
| 150 | DEPENDERS configure | ||
| 151 | COMMAND PATH=${NATIVEPREFIX}/bin:$ENV{PATH} autoreconf -vif | ||
| 152 | WORKING_DIRECTORY <SOURCE_DIR>) | ||
| 153 | if(ENABLE_DVDCSS) | ||
| 154 | add_dependencies(dvdread dvdcss) | ||
| 155 | endif() | ||
| 156 | |||
| 157 | set_target_properties(dvdread PROPERTIES FOLDER "External Projects") | ||
| 158 | |||
| 159 | if(ENABLE_DVDCSS) | ||
| 160 | set(DVDNAV_LIBS -ldvdcss) | ||
| 161 | endif() | ||
| 162 | |||
| 163 | set(DVDNAV_LIBRARY ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdnav.a) | ||
| 164 | ExternalProject_Add(dvdnav URL ${LIBDVDNAV_URL} | ||
| 165 | DOWNLOAD_NAME libdvdnav-${libdvdnav_VER}.tar.gz | ||
| 166 | DOWNLOAD_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/download | ||
| 29 | PREFIX ${CORE_BUILD_DIR}/libdvd | 167 | 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 | 168 | CONFIGURE_COMMAND ac_cv_path_GIT= <SOURCE_DIR>/configure |
| 32 | --target=${ARCH} | 169 | --target=${HOST_ARCH} |
| 33 | --host=${ARCH} | 170 | --host=${HOST_ARCH} |
| 34 | --disable-doc | 171 | --enable-static |
| 35 | --enable-static | 172 | --disable-shared |
| 36 | --disable-shared | 173 | --with-pic |
| 37 | --with-pic | 174 | --prefix=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd |
| 38 | --prefix=<INSTALL_DIR> | 175 | --libdir=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib |
| 39 | "${EXTRA_FLAGS}" | 176 | "${EXTRA_FLAGS}" |
| 40 | "CFLAGS=${CMAKE_C_FLAGS} ${DVDREAD_CFLAGS}" | 177 | "LDFLAGS=${CMAKE_LD_FLAGS} -L${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib" |
| 41 | "LDFLAGS=${CMAKE_LD_FLAGS}") | 178 | "CFLAGS=${CMAKE_C_FLAGS} ${DVDREAD_CFLAGS}" |
| 42 | 179 | "DVDREAD_CFLAGS=${DVDREAD_CFLAGS}" | |
| 43 | core_link_library(${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdcss.a | 180 | "DVDREAD_LIBS=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdread.la" |
| 44 | system/players/VideoPlayer/libdvdcss dvdcss) | 181 | "LIBS=${DVDNAV_LIBS}" |
| 45 | endif() | 182 | BUILD_BYPRODUCTS ${DVDNAV_LIBRARY}) |
| 183 | ExternalProject_Add_Step(dvdnav autoreconf | ||
| 184 | DEPENDEES download update patch | ||
| 185 | DEPENDERS configure | ||
| 186 | COMMAND PATH=${NATIVEPREFIX}/bin:$ENV{PATH} autoreconf -vif | ||
| 187 | WORKING_DIRECTORY <SOURCE_DIR>) | ||
| 188 | add_dependencies(dvdnav dvdread) | ||
| 189 | set_target_properties(dvdnav PROPERTIES FOLDER "External Projects") | ||
| 46 | 190 | ||
| 47 | set(DVDREAD_CFLAGS "-D_XBMC") | 191 | set(_dvdlibs ${DVDREAD_LIBRARY} ${DVDCSS_LIBRARY}) |
| 48 | if(ENABLE_DVDCSS) | 192 | # link a shared dvdnav library that includes the whole archives of dvdread and dvdcss as well |
| 49 | set(DVDREAD_CFLAGS "${DVDREAD_CFLAGS} -DHAVE_DVDCSS_DVDCSS_H -I${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/include") | 193 | # the quotes around _dvdlibs are on purpose, since we want to pass a list to the function that will be unpacked automatically |
| 50 | endif(ENABLE_DVDCSS) | 194 | core_link_library(${DVDNAV_LIBRARY} system/players/VideoPlayer/libdvdnav dvdnav archives "${_dvdlibs}") |
| 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 | 195 | ||
| 69 | core_link_library(${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdread.a | 196 | set(LIBDVD_INCLUDE_DIRS ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/include) |
| 70 | system/players/VideoPlayer/libdvdread dvdread) | 197 | set(LIBDVD_LIBRARIES ${DVDNAV_LIBRARY} ${DVDREAD_LIBRARY}) |
| 71 | 198 | if(ENABLE_DVDCSS) | |
| 72 | if(ENABLE_DVDCSS) | 199 | list(APPEND LIBDVD_LIBRARIES ${DVDCSS_LIBRARY}) |
| 73 | set(DVDNAV_LIBS -ldvdcss) | 200 | endif() |
| 74 | endif(ENABLE_DVDCSS) | 201 | set(LIBDVD_LIBRARIES ${LIBDVD_LIBRARIES} CACHE STRING "libdvd libraries" FORCE) |
| 75 | 202 | set(LIBDVD_FOUND 1 CACHE BOOL "libdvd found" FORCE) | |
| 76 | ExternalProject_ADD(dvdnav URL ${libdvdnav_BASE_URL}/archive/${libdvdnav_VER}.tar.gz | 203 | endif() |
| 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) | ||
| 104 | else() | 204 | else() |
| 105 | # Dynamically loaded on Windows | 205 | # Dynamically loaded on Windows |
| 106 | find_path(LIBDVD_INCLUDE_DIR dvdcss/dvdcss.h PATHS ${CORE_SOURCE_DIR}/lib/libdvd/include) | 206 | find_path(LIBDVD_INCLUDE_DIR dvdcss/dvdcss.h PATHS ${CORE_SOURCE_DIR}/lib/libdvd/include) |
| @@ -110,6 +210,9 @@ else() | |||
| 110 | 210 | ||
| 111 | if(LIBDVD_FOUND) | 211 | if(LIBDVD_FOUND) |
| 112 | set(LIBDVD_INCLUDE_DIRS ${LIBDVD_INCLUDE_DIR}) | 212 | set(LIBDVD_INCLUDE_DIRS ${LIBDVD_INCLUDE_DIR}) |
| 213 | |||
| 214 | add_custom_target(dvdnav) | ||
| 215 | set_target_properties(dvdnav PROPERTIES FOLDER "External Projects") | ||
| 113 | endif() | 216 | endif() |
| 114 | 217 | ||
| 115 | mark_as_advanced(LIBDVD_INCLUDE_DIR) | 218 | mark_as_advanced(LIBDVD_INCLUDE_DIR) |
diff --git a/project/cmake/modules/FindLibSmbClient.cmake b/project/cmake/modules/FindLibSmbClient.cmake deleted file mode 100644 index 897fa7b..0000000 --- a/project/cmake/modules/FindLibSmbClient.cmake +++ /dev/null | |||
| @@ -1,65 +0,0 @@ | |||
| 1 | # - Try to find Libsmbclient | ||
| 2 | |||
| 3 | if(PKGCONFIG_FOUND) | ||
| 4 | pkg_check_modules(LIBSMBCLIENT smbclient) | ||
| 5 | set(LIBSMBCLIENT_DEFINITIONS -DHAVE_LIBSMBCLIENT=1) | ||
| 6 | endif() | ||
| 7 | |||
| 8 | if (LIBSMBCLIENT_LIBRARIES AND LIBSMBCLIENT_INCLUDE_DIRS) | ||
| 9 | # in cache already | ||
| 10 | set(LIBSMBCLIENT_FOUND TRUE) | ||
| 11 | else (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 | |||
| 65 | endif (LIBSMBCLIENT_LIBRARIES AND LIBSMBCLIENT_INCLUDE_DIRS) | ||
diff --git a/project/cmake/modules/FindLibXml2.cmake b/project/cmake/modules/FindLibXml2.cmake new file mode 100644 index 0000000..caeb945 --- /dev/null +++ b/project/cmake/modules/FindLibXml2.cmake | |||
| @@ -0,0 +1,84 @@ | |||
| 1 | #.rst: | ||
| 2 | # FindLibXml2 | ||
| 3 | # ----------- | ||
| 4 | # | ||
| 5 | # Try to find the LibXml2 xml processing library | ||
| 6 | # | ||
| 7 | # Once done this will define | ||
| 8 | # | ||
| 9 | # :: | ||
| 10 | # | ||
| 11 | # LIBXML2_FOUND - System has LibXml2 | ||
| 12 | # LIBXML2_INCLUDE_DIR - The LibXml2 include directory | ||
| 13 | # LIBXML2_LIBRARIES - The libraries needed to use LibXml2 | ||
| 14 | # LIBXML2_DEFINITIONS - Compiler switches required for using LibXml2 | ||
| 15 | # LIBXML2_XMLLINT_EXECUTABLE - The XML checking tool xmllint coming with LibXml2 | ||
| 16 | # LIBXML2_VERSION_STRING - the version of LibXml2 found (since CMake 2.8.8) | ||
| 17 | |||
| 18 | #============================================================================= | ||
| 19 | # Copyright 2006-2009 Kitware, Inc. | ||
| 20 | # Copyright 2006 Alexander Neundorf <neundorf@kde.org> | ||
| 21 | # Copyright 2016 Team Kodi | ||
| 22 | # | ||
| 23 | # Distributed under the OSI-approved BSD License (the "License"); | ||
| 24 | # see accompanying file Copyright.txt for details. | ||
| 25 | # | ||
| 26 | # This software is distributed WITHOUT ANY WARRANTY; without even the | ||
| 27 | # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||
| 28 | # See the License for more information. | ||
| 29 | #============================================================================= | ||
| 30 | # (To distribute this file outside of CMake, substitute the full | ||
| 31 | # License text for the above reference.) | ||
| 32 | |||
| 33 | # use pkg-config to get the directories and then use these values | ||
| 34 | # in the find_path() and find_library() calls | ||
| 35 | find_package(PkgConfig QUIET) | ||
| 36 | PKG_CHECK_MODULES(PC_LIBXML QUIET libxml-2.0) | ||
| 37 | set(LIBXML2_DEFINITIONS ${PC_LIBXML_CFLAGS_OTHER}) | ||
| 38 | |||
| 39 | find_path(LIBXML2_INCLUDE_DIR NAMES libxml/xpath.h | ||
| 40 | HINTS | ||
| 41 | ${PC_LIBXML_INCLUDEDIR} | ||
| 42 | ${PC_LIBXML_INCLUDE_DIRS} | ||
| 43 | PATH_SUFFIXES libxml2 | ||
| 44 | ) | ||
| 45 | |||
| 46 | find_library(LIBXML2_LIBRARY NAMES xml2 libxml2 | ||
| 47 | HINTS | ||
| 48 | ${PC_LIBXML_LIBDIR} | ||
| 49 | ${PC_LIBXML_LIBRARY_DIRS} | ||
| 50 | ) | ||
| 51 | |||
| 52 | find_program(LIBXML2_XMLLINT_EXECUTABLE xmllint) | ||
| 53 | # for backwards compat. with KDE 4.0.x: | ||
| 54 | set(XMLLINT_EXECUTABLE "${LIBXML2_XMLLINT_EXECUTABLE}") | ||
| 55 | |||
| 56 | # Make sure to use static flags if apropriate | ||
| 57 | if(PC_LIBXML_FOUND) | ||
| 58 | if(${LIBXML2_LIBRARY} MATCHES ".+\.a$" AND PC_LIBXML_STATIC_LDFLAGS) | ||
| 59 | set(LIBXML2_LIBRARY ${LIBXML2_LIBRARY} ${PC_LIBXML_STATIC_LDFLAGS}) | ||
| 60 | endif() | ||
| 61 | endif() | ||
| 62 | |||
| 63 | if(PC_LIBXML_VERSION) | ||
| 64 | set(LIBXML2_VERSION_STRING ${PC_LIBXML_VERSION}) | ||
| 65 | elseif(LIBXML2_INCLUDE_DIR AND EXISTS "${LIBXML2_INCLUDE_DIR}/libxml/xmlversion.h") | ||
| 66 | file(STRINGS "${LIBXML2_INCLUDE_DIR}/libxml/xmlversion.h" libxml2_version_str | ||
| 67 | REGEX "^#define[\t ]+LIBXML_DOTTED_VERSION[\t ]+\".*\"") | ||
| 68 | string(REGEX REPLACE "^#define[\t ]+LIBXML_DOTTED_VERSION[\t ]+\"([^\"]*)\".*" "\\1" | ||
| 69 | LIBXML2_VERSION_STRING "${libxml2_version_str}") | ||
| 70 | unset(libxml2_version_str) | ||
| 71 | endif() | ||
| 72 | |||
| 73 | |||
| 74 | include(FindPackageHandleStandardArgs) | ||
| 75 | FIND_PACKAGE_HANDLE_STANDARD_ARGS(LibXml2 | ||
| 76 | REQUIRED_VARS LIBXML2_LIBRARY LIBXML2_INCLUDE_DIR | ||
| 77 | VERSION_VAR LIBXML2_VERSION_STRING) | ||
| 78 | |||
| 79 | if(LibXml2_FOUND) | ||
| 80 | set(LIBXML2_LIBRARIES ${LIBXML2_LIBRARY}) | ||
| 81 | set(LIBXML2_INCLUDE_DIRS ${LIBXML2_INCLUDE_DIR}) | ||
| 82 | endif() | ||
| 83 | |||
| 84 | mark_as_advanced(LIBXML2_INCLUDE_DIRS LIBXML2_LIBRARIES LIBXML2_XMLLINT_EXECUTABLE) | ||
diff --git a/project/cmake/modules/FindLzo2.cmake b/project/cmake/modules/FindLzo2.cmake index 33eee10..4f7313f 100644 --- a/project/cmake/modules/FindLzo2.cmake +++ b/project/cmake/modules/FindLzo2.cmake | |||
| @@ -1,22 +1,37 @@ | |||
| 1 | # - Try to find Lzo2 | 1 | #.rst: |
| 2 | # Once done this will define | 2 | # FindLzo2 |
| 3 | # -------- | ||
| 4 | # Finds the Lzo2 library | ||
| 3 | # | 5 | # |
| 4 | # Lzo2_FOUND - system has Lzo2 | 6 | # This will will define the following variables:: |
| 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 | # | 7 | # |
| 11 | # Redistribution and use is allowed according to the terms of the BSD license. | 8 | # LZO2_FOUND - system has Lzo2 |
| 12 | # For details see the accompanying COPYING-CMAKE-SCRIPTS file. | 9 | # LZO2_INCLUDE_DIRS - the Lzo2 include directory |
| 13 | 10 | # LZO2_LIBRARIES - the Lzo2 libraries | |
| 11 | # | ||
| 12 | # and the following imported targets:: | ||
| 13 | # | ||
| 14 | # Lzo2::Lzo2 - The Lzo2 library | ||
| 14 | 15 | ||
| 15 | FIND_PATH(LZO2_INCLUDE_DIRS lzo1x.h PATH_SUFFIXES lzo) | 16 | find_path(LZO2_INCLUDE_DIR NAMES lzo1x.h |
| 17 | PATH_SUFFIXES lzo) | ||
| 16 | 18 | ||
| 17 | FIND_LIBRARY(LZO2_LIBRARIES NAMES lzo2 liblzo2) | 19 | find_library(LZO2_LIBRARY NAMES lzo2 liblzo2) |
| 18 | 20 | ||
| 19 | include(FindPackageHandleStandardArgs) | 21 | include(FindPackageHandleStandardArgs) |
| 20 | find_package_handle_standard_args(Lzo2 DEFAULT_MSG LZO2_INCLUDE_DIRS LZO2_LIBRARIES) | 22 | find_package_handle_standard_args(Lzo2 |
| 23 | REQUIRED_VARS LZO2_LIBRARY LZO2_INCLUDE_DIR) | ||
| 24 | |||
| 25 | if(LZO2_FOUND) | ||
| 26 | set(LZO2_LIBRARIES ${LZO2_LIBRARY}) | ||
| 27 | set(LZO2_INCLUDE_DIRS ${LZO2_INCLUDE_DIR}) | ||
| 28 | |||
| 29 | if(NOT TARGET Lzo2::Lzo2) | ||
| 30 | add_library(Lzo2::Lzo2 UNKNOWN IMPORTED) | ||
| 31 | set_target_properties(Lzo2::Lzo2 PROPERTIES | ||
| 32 | IMPORTED_LOCATION "${LZO2_LIBRARY}" | ||
| 33 | INTERFACE_INCLUDE_DIRECTORIES "${LZO2_INCLUDE_DIR}") | ||
| 34 | endif() | ||
| 35 | endif() | ||
| 21 | 36 | ||
| 22 | MARK_AS_ADVANCED(LZO2_INCLUDE_DIRS LZO2_LIBRARIES) | 37 | mark_as_advanced(LZO2_INCLUDE_DIR LZO2_LIBRARY) |
diff --git a/project/cmake/modules/FindMicroHttpd.cmake b/project/cmake/modules/FindMicroHttpd.cmake index f73dc77..7d011fa 100644 --- a/project/cmake/modules/FindMicroHttpd.cmake +++ b/project/cmake/modules/FindMicroHttpd.cmake | |||
| @@ -1,106 +1,49 @@ | |||
| 1 | IF (NOT WIN32) | 1 | #.rst: |
| 2 | include(FindPkgConfig) | 2 | # FindMicroHttpd |
| 3 | if ( PKG_CONFIG_FOUND ) | 3 | # -------------- |
| 4 | 4 | # Finds the MicroHttpd library | |
| 5 | pkg_check_modules (MICROHTTPD libmicrohttpd>=0.4) | ||
| 6 | |||
| 7 | set(MICROHTTPD_DEFINITIONS ${MICROHTTPD_CFLAGS_OTHER}) | ||
| 8 | endif(PKG_CONFIG_FOUND) | ||
| 9 | endif (NOT WIN32) | ||
| 10 | |||
| 11 | # | 5 | # |
| 12 | # set defaults | 6 | # This will will define the following variables:: |
| 13 | if(NOT MICROHTTPD_FOUND) | 7 | # |
| 14 | SET(_microhttpd_HOME "/usr/local") | 8 | # MICROHTTPD_FOUND - system has MicroHttpd |
| 15 | SET(_microhttpd_INCLUDE_SEARCH_DIRS | 9 | # MICROHTTPD_INCLUDE_DIRS - the MicroHttpd include directory |
| 16 | ${CMAKE_INCLUDE_PATH} | 10 | # MICROHTTPD_LIBRARIES - the MicroHttpd libraries |
| 17 | /usr/local/include | 11 | # MICROHTTPD_DEFINITIONS - the MicroHttpd definitions |
| 18 | /usr/include | 12 | # |
| 19 | ) | 13 | # and the following imported targets:: |
| 20 | 14 | # | |
| 21 | SET(_microhttpd_LIBRARIES_SEARCH_DIRS | 15 | # MicroHttpd::MicroHttpd - The MicroHttpd library |
| 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 | 16 | ||
| 52 | IF( NOT $ENV{MICROHTTPD_LIBRARYDIR} STREQUAL "" ) | 17 | if(PKG_CONFIG_FOUND) |
| 53 | SET(_microhttpd_LIBRARIES_SEARCH_DIRS $ENV{MICROHTTPD_LIBRARYDIR} ${_microhttpd_LIBRARIES_SEARCH_DIRS}) | 18 | pkg_check_modules(PC_MICROHTTPD libmicrohttpd>=0.4 QUIET) |
| 54 | ENDIF( NOT $ENV{MICROHTTPD_LIBRARYDIR} STREQUAL "" ) | 19 | endif() |
| 55 | 20 | ||
| 56 | IF( MICROHTTPD_HOME ) | 21 | find_path(MICROHTTPD_INCLUDE_DIR NAMES microhttpd.h |
| 57 | SET(_microhttpd_INCLUDE_SEARCH_DIRS ${MICROHTTPD_HOME}/include ${_microhttpd_INCLUDE_SEARCH_DIRS}) | 22 | PATHS ${PC_MICROHTTPD_INCLUDEDIR}) |
| 58 | SET(_microhttpd_LIBRARIES_SEARCH_DIRS ${MICROHTTPD_HOME}/lib ${_microhttpd_LIBRARIES_SEARCH_DIRS}) | 23 | find_library(MICROHTTPD_LIBRARY NAMES microhttpd libmicrohttpd |
| 59 | SET(_microhttpd_HOME ${MICROHTTPD_HOME}) | 24 | PATHS ${PC_MICROHTTPD_LIBDIR}) |
| 60 | ENDIF( MICROHTTPD_HOME ) | ||
| 61 | 25 | ||
| 62 | # find the include files | 26 | set(MICROHTTPD_VERSION ${PC_MICROHTTPD_VERSION}) |
| 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 | 27 | ||
| 71 | # locate the library | 28 | include(FindPackageHandleStandardArgs) |
| 72 | IF(WIN32) | 29 | find_package_handle_standard_args(MicroHttpd |
| 73 | SET(MICROHTTPD_LIBRARY_NAMES ${MICROHTTPD_LIBRARY_NAMES} libmicrohttpd.lib) | 30 | REQUIRED_VARS MICROHTTPD_LIBRARY MICROHTTPD_INCLUDE_DIR |
| 74 | ELSE(WIN32) | 31 | VERSION_VAR MICROHTTPD_VERSION) |
| 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 | 32 | ||
| 84 | # if the include and the program are found then we have it | 33 | if(MICROHTTPD_FOUND) |
| 85 | IF(MICROHTTPD_INCLUDE_DIRS AND MICROHTTPD_LIBRARIES) | 34 | set(MICROHTTPD_LIBRARIES ${MICROHTTPD_LIBRARY}) |
| 86 | SET(MICROHTTPD_FOUND "YES") | 35 | set(MICROHTTPD_INCLUDE_DIRS ${MICROHTTPD_INCLUDE_DIR}) |
| 87 | ENDIF(MICROHTTPD_INCLUDE_DIRS AND MICROHTTPD_LIBRARIES) | 36 | set(MICROHTTPD_DEFINITIONS -DHAVE_LIBMICROHTTPD=1) |
| 88 | 37 | ||
| 89 | if( NOT WIN32) | 38 | if(NOT WIN32) |
| 90 | find_library(GCRYPT_LIBRARY gcrypt) | 39 | find_library(GCRYPT_LIBRARY gcrypt) |
| 91 | find_library(GPGERROR_LIBRARY gpg-error) | 40 | find_library(GPGERROR_LIBRARY gpg-error) |
| 92 | list(APPEND MICROHTTPD_LIBRARIES ${GCRYPT_LIBRARY} ${GPGERROR_LIBRARY}) | 41 | list(APPEND MICROHTTPD_LIBRARIES ${GCRYPT_LIBRARY} ${GPGERROR_LIBRARY}) |
| 42 | mark_as_advanced(GCRYPT_LIBRARY GPGERROR_LIBRARY) | ||
| 93 | if(NOT APPLE AND NOT CORE_SYSTEM_NAME STREQUAL android) | 43 | if(NOT APPLE AND NOT CORE_SYSTEM_NAME STREQUAL android) |
| 94 | list(APPEND MICROHTTPD_LIBRARIES "-lrt") | 44 | list(APPEND MICROHTTPD_LIBRARIES "-lrt") |
| 95 | endif() | 45 | endif() |
| 96 | endif( NOT WIN32) | 46 | endif() |
| 97 | endif() | 47 | endif() |
| 98 | 48 | ||
| 99 | list(APPEND MICROHTTPD_DEFINITIONS -DHAVE_LIBMICROHTTPD=1) | 49 | mark_as_advanced(MICROHTTPD_LIBRARY MICROHTTPD_INCLUDE_DIR) |
| 100 | |||
| 101 | MARK_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 index 2295c81..ceccea3 100644 --- a/project/cmake/modules/FindMySqlClient.cmake +++ b/project/cmake/modules/FindMySqlClient.cmake | |||
| @@ -14,18 +14,34 @@ | |||
| 14 | # | 14 | # |
| 15 | # MySqlClient::MySqlClient - The MySqlClient library | 15 | # MySqlClient::MySqlClient - The MySqlClient library |
| 16 | 16 | ||
| 17 | # Don't find system wide installed version on Windows | ||
| 18 | if(WIN32) | ||
| 19 | set(EXTRA_FIND_ARGS NO_SYSTEM_ENVIRONMENT_PATH) | ||
| 20 | else() | ||
| 21 | set(EXTRA_FIND_ARGS) | ||
| 22 | endif() | ||
| 23 | |||
| 17 | find_path(MYSQLCLIENT_INCLUDE_DIR mysql/mysql_time.h) | 24 | find_path(MYSQLCLIENT_INCLUDE_DIR mysql/mysql_time.h) |
| 18 | find_library(MYSQLCLIENT_LIBRARY_RELEASE NAMES mysqlclient libmysql | 25 | find_library(MYSQLCLIENT_LIBRARY_RELEASE NAMES mysqlclient libmysql |
| 19 | PATH_SUFFIXES mysql) | 26 | PATH_SUFFIXES mysql |
| 27 | ${EXTRA_FIND_ARGS}) | ||
| 20 | find_library(MYSQLCLIENT_LIBRARY_DEBUG NAMES mysqlclient libmysql | 28 | find_library(MYSQLCLIENT_LIBRARY_DEBUG NAMES mysqlclient libmysql |
| 21 | PATH_SUFFIXES mysql) | 29 | PATH_SUFFIXES mysql |
| 30 | ${EXTRA_FIND_ARGS}) | ||
| 31 | |||
| 32 | if(MYSQLCLIENT_INCLUDE_DIR AND EXISTS "${MYSQLCLIENT_INCLUDE_DIR}/mysql/mysql_version.h") | ||
| 33 | file(STRINGS "${MYSQLCLIENT_INCLUDE_DIR}/mysql/mysql_version.h" mysql_version_str REGEX "^#define[\t ]+LIBMYSQL_VERSION[\t ]+\".*\".*") | ||
| 34 | string(REGEX REPLACE "^#define[\t ]+LIBMYSQL_VERSION[\t ]+\"([^\"]+)\".*" "\\1" MYSQLCLIENT_VERSION_STRING "${mysql_version_str}") | ||
| 35 | unset(mysql_version_str) | ||
| 36 | endif() | ||
| 22 | 37 | ||
| 23 | include(SelectLibraryConfigurations) | 38 | include(SelectLibraryConfigurations) |
| 24 | select_library_configurations(MYSQLCLIENT) | 39 | select_library_configurations(MYSQLCLIENT) |
| 25 | 40 | ||
| 26 | include(FindPackageHandleStandardArgs) | 41 | include(FindPackageHandleStandardArgs) |
| 27 | find_package_handle_standard_args(MYSQLCLIENT | 42 | find_package_handle_standard_args(MySqlClient |
| 28 | REQUIRED_VARS MYSQLCLIENT_LIBRARY MYSQLCLIENT_INCLUDE_DIR) | 43 | REQUIRED_VARS MYSQLCLIENT_LIBRARY MYSQLCLIENT_INCLUDE_DIR |
| 44 | VERSION_VAR MYSQLCLIENT_VERSION_STRING) | ||
| 29 | 45 | ||
| 30 | if(MYSQLCLIENT_FOUND) | 46 | if(MYSQLCLIENT_FOUND) |
| 31 | set(MYSQLCLIENT_LIBRARIES ${MYSQLCLIENT_LIBRARY}) | 47 | set(MYSQLCLIENT_LIBRARIES ${MYSQLCLIENT_LIBRARY}) |
diff --git a/project/cmake/modules/FindNFS.cmake b/project/cmake/modules/FindNFS.cmake index 3fd9d61..646ee33 100644 --- a/project/cmake/modules/FindNFS.cmake +++ b/project/cmake/modules/FindNFS.cmake | |||
| @@ -15,7 +15,7 @@ | |||
| 15 | # NFS::NFS - The libnfs library | 15 | # NFS::NFS - The libnfs library |
| 16 | 16 | ||
| 17 | if(PKG_CONFIG_FOUND) | 17 | if(PKG_CONFIG_FOUND) |
| 18 | pkg_check_modules(NFS libnfs QUIET) | 18 | pkg_check_modules(PC_NFS libnfs QUIET) |
| 19 | endif() | 19 | endif() |
| 20 | 20 | ||
| 21 | find_path(NFS_INCLUDE_DIR nfsc/libnfs.h | 21 | find_path(NFS_INCLUDE_DIR nfsc/libnfs.h |
diff --git a/project/cmake/modules/FindOpenGLES.cmake b/project/cmake/modules/FindOpenGLES.cmake index 5d71dd4..ab06f96 100644 --- a/project/cmake/modules/FindOpenGLES.cmake +++ b/project/cmake/modules/FindOpenGLES.cmake | |||
| @@ -13,7 +13,7 @@ | |||
| 13 | find_package(EMBEDDED) | 13 | find_package(EMBEDDED) |
| 14 | 14 | ||
| 15 | if(PKG_CONFIG_FOUND AND NOT PLATFORM STREQUAL "raspberry-pi") | 15 | if(PKG_CONFIG_FOUND AND NOT PLATFORM STREQUAL "raspberry-pi") |
| 16 | pkg_check_modules(PC_OPENGLES glesv2) | 16 | pkg_check_modules(PC_OPENGLES glesv2 QUIET) |
| 17 | if(NOT OPENGLES_FOUND AND EMBEDDED_FOUND) | 17 | if(NOT OPENGLES_FOUND AND EMBEDDED_FOUND) |
| 18 | set(CMAKE_PREFIX_PATH ${EMBEDDED_FOUND} ${CMAKE_PREFIX_PATH}) | 18 | set(CMAKE_PREFIX_PATH ${EMBEDDED_FOUND} ${CMAKE_PREFIX_PATH}) |
| 19 | endif() | 19 | endif() |
diff --git a/project/cmake/modules/FindOpenGl.cmake b/project/cmake/modules/FindOpenGl.cmake index 9d6ec01..b8cff79 100644 --- a/project/cmake/modules/FindOpenGl.cmake +++ b/project/cmake/modules/FindOpenGl.cmake | |||
| @@ -11,10 +11,10 @@ | |||
| 11 | # OPENGL_DEFINITIONS - the OpenGl definitions | 11 | # OPENGL_DEFINITIONS - the OpenGl definitions |
| 12 | 12 | ||
| 13 | if(PKG_CONFIG_FOUND) | 13 | if(PKG_CONFIG_FOUND) |
| 14 | pkg_check_modules(PC_OPENGL gl glu) | 14 | pkg_check_modules(PC_OPENGL gl glu QUIET) |
| 15 | endif() | 15 | endif() |
| 16 | 16 | ||
| 17 | if(NOT CORE_SYSTEM_NAME STREQUAL darwin) | 17 | if(NOT CORE_SYSTEM_NAME STREQUAL osx) |
| 18 | find_path(OPENGL_INCLUDE_DIR GL/gl.h | 18 | find_path(OPENGL_INCLUDE_DIR GL/gl.h |
| 19 | PATHS ${PC_OPENGL_gl_INCLUDEDIR}) | 19 | PATHS ${PC_OPENGL_gl_INCLUDEDIR}) |
| 20 | find_library(OPENGL_gl_LIBRARY NAMES GL | 20 | find_library(OPENGL_gl_LIBRARY NAMES GL |
diff --git a/project/cmake/modules/FindPulseAudio.cmake b/project/cmake/modules/FindPulseAudio.cmake index 5b57364..5761005 100644 --- a/project/cmake/modules/FindPulseAudio.cmake +++ b/project/cmake/modules/FindPulseAudio.cmake | |||
| @@ -1,72 +1,68 @@ | |||
| 1 | # Try to find the PulseAudio library | 1 | #.rst: |
| 2 | # FindPulseAudio | ||
| 3 | # -------------- | ||
| 4 | # Finds the PulseAudio library | ||
| 2 | # | 5 | # |
| 3 | # Once done this will define: | 6 | # This will define the following variables:: |
| 4 | # | 7 | # |
| 5 | # PULSEAUDIO_FOUND - system has the PulseAudio library | 8 | # PULSEAUDIO_FOUND - system has the PulseAudio library |
| 6 | # PULSEAUDIO_INCLUDE_DIR - the PulseAudio include directory | 9 | # PULSEAUDIO_INCLUDE_DIRS - the PulseAudio include directory |
| 7 | # PULSEAUDIO_LIBRARY - the libraries needed to use PulseAudio | 10 | # PULSEAUDIO_LIBRARIES - the libraries needed to use PulseAudio |
| 8 | # PULSEAUDIO_MAINLOOP_LIBRARY - the libraries needed to use PulsAudio Mailoop | 11 | # PULSEAUDIO_DEFINITIONS - the definitions needed to use PulseAudio |
| 9 | # | 12 | # |
| 10 | # Copyright (c) 2008, Matthias Kretz, <kretz@kde.org> | 13 | # and the following imported targets:: |
| 11 | # Copyright (c) 2009, Marcus Hufgard, <Marcus.Hufgard@hufgard.de> | ||
| 12 | # | 14 | # |
| 13 | # Redistribution and use is allowed according to the terms of the BSD license. | 15 | # PulseAudio::PulseAudio - The PulseAudio library |
| 14 | # For details see the accompanying COPYING-CMAKE-SCRIPTS file. | ||
| 15 | 16 | ||
| 16 | if (NOT PULSEAUDIO_MINIMUM_VERSION) | 17 | if(NOT PulseAudio_FIND_VERSION) |
| 17 | set(PULSEAUDIO_MINIMUM_VERSION "1.0.0") | 18 | set(PulseAudio_FIND_VERSION 2.0.0) |
| 18 | endif (NOT PULSEAUDIO_MINIMUM_VERSION) | 19 | endif() |
| 19 | |||
| 20 | if (PULSEAUDIO_INCLUDE_DIRS AND PULSEAUDIO_LIBRARY AND PULSEAUDIO_MAINLOOP_LIBRARY) | ||
| 21 | # Already in cache, be silent | ||
| 22 | set(PULSEAUDIO_FIND_QUIETLY TRUE) | ||
| 23 | endif (PULSEAUDIO_INCLUDE_DIRS AND PULSEAUDIO_LIBRARY AND PULSEAUDIO_MAINLOOP_LIBRARY) | ||
| 24 | 20 | ||
| 25 | if (NOT WIN32) | 21 | if(PKG_CONFIG_FOUND) |
| 26 | include(FindPkgConfig) | 22 | pkg_check_modules(PC_PULSEAUDIO libpulse>=${PulseAudio_FIND_VERSION} QUIET) |
| 27 | pkg_check_modules(PC_PULSEAUDIO libpulse>=${PULSEAUDIO_MINIMUM_VERSION}) | 23 | pkg_check_modules(PC_PULSEAUDIO_MAINLOOP libpulse-mainloop-glib QUIET) |
| 28 | pkg_check_modules(PC_PULSEAUDIO_MAINLOOP libpulse-mainloop-glib) | 24 | endif() |
| 29 | endif (NOT WIN32) | ||
| 30 | 25 | ||
| 31 | FIND_PATH(PULSEAUDIO_INCLUDE_DIRS pulse/pulseaudio.h | 26 | find_path(PULSEAUDIO_INCLUDE_DIR NAMES pulse/pulseaudio.h |
| 32 | HINTS | 27 | PATHS ${PC_PULSEAUDIO_INCLUDEDIR} ${PC_PULSEAUDIO_INCLUDE_DIRS}) |
| 33 | ${PC_PULSEAUDIO_INCLUDEDIR} | ||
| 34 | ${PC_PULSEAUDIO_INCLUDE_DIRS} | ||
| 35 | ) | ||
| 36 | 28 | ||
| 37 | FIND_LIBRARY(PULSEAUDIO_LIBRARY NAMES pulse libpulse | 29 | find_library(PULSEAUDIO_LIBRARY NAMES pulse libpulse |
| 38 | HINTS | 30 | PATHS ${PC_PULSEAUDIO_LIBDIR} ${PC_PULSEAUDIO_LIBRARY_DIRS}) |
| 39 | ${PC_PULSEAUDIO_LIBDIR} | ||
| 40 | ${PC_PULSEAUDIO_LIBRARY_DIRS} | ||
| 41 | ) | ||
| 42 | 31 | ||
| 43 | FIND_LIBRARY(PULSEAUDIO_MAINLOOP_LIBRARY NAMES pulse-mainloop pulse-mainloop-glib libpulse-mainloop-glib | 32 | find_library(PULSEAUDIO_MAINLOOP_LIBRARY NAMES pulse-mainloop pulse-mainloop-glib libpulse-mainloop-glib |
| 44 | HINTS | 33 | PATHS ${PC_PULSEAUDIO_LIBDIR} ${PC_PULSEAUDIO_LIBRARY_DIRS}) |
| 45 | ${PC_PULSEAUDIO_LIBDIR} | ||
| 46 | ${PC_PULSEAUDIO_LIBRARY_DIRS} | ||
| 47 | ) | ||
| 48 | 34 | ||
| 49 | if (NOT PULSEAUDIO_INCLUDE_DIRS OR NOT PULSEAUDIO_LIBRARY) | 35 | if(PC_PULSEAUDIO_VERSION) |
| 50 | set(PULSEAUDIO_FOUND FALSE) | 36 | set(PULSEAUDIO_VERSION_STRING ${PC_PULSEAUDIO_VERSION}) |
| 51 | else() | 37 | elseif(PULSEAUDIO_INCLUDE_DIR AND EXISTS "${PULSEAUDIO_INCLUDE_DIR}/pulse/version.h") |
| 52 | set(PULSEAUDIO_FOUND TRUE) | 38 | file(STRINGS "${PULSEAUDIO_INCLUDE_DIR}/pulse/version.h" pulseaudio_version_str REGEX "^#define[\t ]+pa_get_headers_version\\(\\)[\t ]+\\(\".*\"\\).*") |
| 39 | string(REGEX REPLACE "^#define[\t ]+pa_get_headers_version\\(\\)[\t ]+\\(\"([^\"]+)\"\\).*" "\\1" PULSEAUDIO_VERSION_STRING "${pulseaudio_version_str}") | ||
| 40 | unset(pulseaudio_version_str) | ||
| 53 | endif() | 41 | endif() |
| 54 | 42 | ||
| 55 | if (PULSEAUDIO_FOUND) | 43 | include(FindPackageHandleStandardArgs) |
| 56 | if (NOT PULSEAUDIO_FIND_QUIETLY) | 44 | find_package_handle_standard_args(PulseAudio |
| 57 | message(STATUS "Found PulseAudio: ${PULSEAUDIO_LIBRARY}") | 45 | REQUIRED_VARS PULSEAUDIO_LIBRARY PULSEAUDIO_MAINLOOP_LIBRARY PULSEAUDIO_INCLUDE_DIR |
| 58 | if (PULSEAUDIO_MAINLOOP_LIBRARY) | 46 | VERSION_VAR PULSEAUDIO_VERSION_STRING) |
| 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) | ||
| 64 | else (PULSEAUDIO_FOUND) | ||
| 65 | message(STATUS "Could NOT find PulseAudio") | ||
| 66 | endif (PULSEAUDIO_FOUND) | ||
| 67 | 47 | ||
| 68 | set(PULSEAUDIO_LIBRARIES ${PULSEAUDIO_LIBRARY}) | 48 | if(PULSEAUDIO_FOUND) |
| 49 | set(PULSEAUDIO_INCLUDE_DIRS ${PULSEAUDIO_INCLUDE_DIR}) | ||
| 50 | set(PULSEAUDIO_LIBRARIES ${PULSEAUDIO_LIBRARY} ${PULSEAUDIO_MAINLOOP_LIBRARY}) | ||
| 51 | set(PULSEAUDIO_DEFINITIONS -DHAVE_LIBPULSE=1) | ||
| 69 | 52 | ||
| 70 | list(APPEND PULSEAUDIO_DEFINITIONS -DHAVE_LIBPULSE=1) | 53 | if(NOT TARGET PulseAudio::PulseAudioMainloop) |
| 54 | add_library(PulseAudio::PulseAudioMainloop UNKNOWN IMPORTED) | ||
| 55 | set_target_properties(PulseAudio::PulseAudioMainloop PROPERTIES | ||
| 56 | IMPORTED_LOCATION "${PULSEAUDIO_MAINLOOP_LIBRARY}") | ||
| 57 | endif() | ||
| 58 | if(NOT TARGET PulseAudio::PulseAudio) | ||
| 59 | add_library(PulseAudio::PulseAudio UNKNOWN IMPORTED) | ||
| 60 | set_target_properties(PulseAudio::PulseAudio PROPERTIES | ||
| 61 | IMPORTED_LOCATION "${PULSEAUDIO_LIBRARY}" | ||
| 62 | INTERFACE_INCLUDE_DIRECTORIES "${PULSEAUDIO_INCLUDE_DIR}" | ||
| 63 | INTERFACE_COMPILE_DEFINITIONS HAVE_LIBPULSE=1 | ||
| 64 | INTERFACE_LINK_LIBRARIES PulseAudio::PulseAudioMainloop) | ||
| 65 | endif() | ||
| 66 | endif() | ||
| 71 | 67 | ||
| 72 | mark_as_advanced(PULSEAUDIO_INCLUDE_DIRS PULSEAUDIO_LIBRARIES PULSEAUDIO_LIBRARY PULSEAUDIO_MAINLOOP_LIBRARY) | 68 | mark_as_advanced(PULSEAUDIO_INCLUDE_DIR PULSEAUDIO_LIBRARY PULSEAUDIO_MAINLOOP_LIBRARY) |
diff --git a/project/cmake/modules/FindPython.cmake b/project/cmake/modules/FindPython.cmake index 6f9f236..68b7359 100644 --- a/project/cmake/modules/FindPython.cmake +++ b/project/cmake/modules/FindPython.cmake | |||
| @@ -5,39 +5,34 @@ | |||
| 5 | # PYTHON_INCLUDE_DIRS - the python include directory | 5 | # PYTHON_INCLUDE_DIRS - the python include directory |
| 6 | # PYTHON_LIBRARIES - The python libraries | 6 | # PYTHON_LIBRARIES - The python libraries |
| 7 | 7 | ||
| 8 | if(PKG_CONFIG_FOUND AND NOT CMAKE_CROSSCOMPILING) | 8 | if(PKG_CONFIG_FOUND) |
| 9 | pkg_check_modules (PYTHON python) | 9 | pkg_check_modules(PC_PYTHON python >= 2.7 QUIET) |
| 10 | endif() | 10 | endif() |
| 11 | 11 | ||
| 12 | if(NOT PYTHON_FOUND) | 12 | find_program(PYTHON_EXECUTABLE python ONLY_CMAKE_FIND_ROOT_PATH) |
| 13 | if(CMAKE_CROSSCOMPILING) | 13 | find_library(PYTHON_LIBRARY NAMES python2.7 PATHS ${PC_PYTHON_LIBDIR}) |
| 14 | find_program(PYTHON_EXECUTABLE python ONLY_CMAKE_FIND_ROOT_PATH) | 14 | find_path(PYTHON_INCLUDE_DIR NAMES Python.h PATHS ${PC_PYTHON_INCLUDE_DIRS} ${DEPENDS_PATH}/include/python2.7) |
| 15 | find_library(PYTHON_LIBRARY NAMES python2.6 python2.7) | 15 | |
| 16 | find_path(PYTHON_INCLUDE_DIRS NAMES Python.h PATHS ${DEPENDS_PATH}/include/python2.6 ${DEPENDS_PATH}/include/python2.7) | 16 | if(CMAKE_CROSSCOMPILING) |
| 17 | set(PYTHON_INCLUDE_DIR ${PYTHON_INCLUDE_DIRS} CACHE PATH "python include dir" FORCE) | 17 | find_library(FFI_LIBRARY ffi REQUIRED) |
| 18 | 18 | find_library(EXPAT_LIBRARY expat REQUIRED) | |
| 19 | find_library(FFI_LIBRARY ffi) | 19 | find_library(INTL_LIBRARY intl REQUIRED) |
| 20 | find_library(EXPAT_LIBRARY expat) | 20 | find_library(GMP_LIBRARY gmp REQUIRED) |
| 21 | find_library(INTL_LIBRARY intl) | 21 | |
| 22 | 22 | if(NOT CORE_SYSTEM_NAME STREQUAL android) | |
| 23 | if(NOT CORE_SYSTEM_NAME STREQUAL android) | 23 | set(PYTHON_DEP_LIBRARIES -lpthread -ldl -lutil) |
| 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() | 24 | endif() |
| 25 | |||
| 26 | set(PYTHON_LIBRARIES ${PYTHON_LIBRARY} ${FFI_LIBRARY} ${EXPAT_LIBRARY} ${INTL_LIBRARY} ${GMP_LIBRARY} ${PYTHON_DEP_LIBRARIES}) | ||
| 27 | else() | ||
| 28 | find_package(PythonLibs 2.7 REQUIRED) | ||
| 32 | endif() | 29 | endif() |
| 33 | 30 | ||
| 34 | include(FindPackageHandleStandardArgs) | ||
| 35 | find_package_handle_standard_args(Python DEFAULT_MSG PYTHON_INCLUDE_DIRS PYTHON_LIBRARIES) | ||
| 36 | 31 | ||
| 37 | if(CMAKE_SYSTEM_NAME STREQUAL Darwin) | 32 | include(FindPackageHandleStandardArgs) |
| 38 | find_library(FFI_LIBRARY ffi REQUIRED) | 33 | find_package_handle_standard_args(PYTHON REQUIRED_VARS PYTHON_INCLUDE_DIR PYTHON_LIBRARY PYTHON_LIBRARIES) |
| 39 | find_library(INTL_LIBRARY intl) | 34 | if(PYTHON_FOUND) |
| 40 | list(APPEND PYTHON_LIBRARIES ${FFI_LIBRARY} ${INTL_LIBRARY}) | 35 | set(PYTHON_INCLUDE_DIRS ${PYTHON_INCLUDE_DIR}) |
| 41 | endif() | 36 | endif() |
| 42 | 37 | ||
| 43 | mark_as_advanced(PYTHON_INCLUDE_DIRS PYTHON_LIBRARIES PYTHON_LDFLAGS) | 38 | mark_as_advanced(PYTHON_EXECUTABLE PYTHON_INCLUDE_DIRS PYTHON_INCLUDE_DIR PYTHON_LIBRARY PYTHON_LIBRARIES PYTHON_LDFLAGS FFI_LIBRARY EXPAT_LIBRARY INTL_LIBRARY GMP_LIBRARY) |
diff --git a/project/cmake/modules/FindRTMP.cmake b/project/cmake/modules/FindRTMP.cmake deleted file mode 100644 index 432b77d..0000000 --- a/project/cmake/modules/FindRTMP.cmake +++ /dev/null | |||
| @@ -1,21 +0,0 @@ | |||
| 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 | |||
| 8 | if(PKG_CONFIG_FOUND) | ||
| 9 | pkg_check_modules (RTMP librtmp) | ||
| 10 | list(APPEND RTMP_INCLUDE_DIRS ${RTMP_INCLUDEDIR}) | ||
| 11 | else() | ||
| 12 | find_path(RTMP_INCLUDE_DIRS librtmp/rtmp.h) | ||
| 13 | find_library(RTMP_LIBRARIES rtmp) | ||
| 14 | endif() | ||
| 15 | |||
| 16 | include(FindPackageHandleStandardArgs) | ||
| 17 | find_package_handle_standard_args(RTMP DEFAULT_MSG RTMP_INCLUDE_DIRS RTMP_LIBRARIES) | ||
| 18 | |||
| 19 | list(APPEND RTMP_DEFINITIONS -DHAS_LIBRTMP=1) | ||
| 20 | |||
| 21 | mark_as_advanced(RTMP_INCLUDE_DIRS RTMP_LIBRARIES RTMP_DEFINITIONS) | ||
diff --git a/project/cmake/modules/FindSSE.cmake b/project/cmake/modules/FindSSE.cmake index c76b811..0554663 100644 --- a/project/cmake/modules/FindSSE.cmake +++ b/project/cmake/modules/FindSSE.cmake | |||
| @@ -1,105 +1,143 @@ | |||
| 1 | # Check if SSE instructions are available on the machine where | 1 | # Check if SSE instructions are available on the machine where |
| 2 | # the project is compiled. | 2 | # the project is compiled. |
| 3 | include(TestCXXAcceptsFlag) | ||
| 3 | 4 | ||
| 4 | IF(CMAKE_SYSTEM_NAME MATCHES "Linux") | 5 | if(CMAKE_SYSTEM_NAME MATCHES "Linux") |
| 5 | EXEC_PROGRAM(cat ARGS "/proc/cpuinfo" OUTPUT_VARIABLE CPUINFO) | 6 | if(CPU MATCHES "x86_64" OR CPU MATCHES "i.86") |
| 6 | 7 | exec_program(cat ARGS "/proc/cpuinfo" OUTPUT_VARIABLE CPUINFO) | |
| 7 | STRING(REGEX REPLACE "^.*(sse2).*$" "\\1" SSE_THERE ${CPUINFO}) | 8 | |
| 8 | STRING(COMPARE EQUAL "sse2" "${SSE_THERE}" SSE2_TRUE) | 9 | string(REGEX REPLACE "^.*(sse).*$" "\\1" _SSE_THERE ${CPUINFO}) |
| 9 | IF (SSE2_TRUE) | 10 | string(COMPARE EQUAL "sse" "${_SSE_THERE}" _SSE_TRUE) |
| 10 | set(SSE2_FOUND true CACHE BOOL "SSE2 available on host") | 11 | CHECK_CXX_ACCEPTS_FLAG("-msse" _SSE_OK) |
| 11 | ELSE (SSE2_TRUE) | 12 | |
| 12 | set(SSE2_FOUND false CACHE BOOL "SSE2 available on host") | 13 | string(REGEX REPLACE "^.*(sse2).*$" "\\1" _SSE_THERE ${CPUINFO}) |
| 13 | ENDIF (SSE2_TRUE) | 14 | string(COMPARE EQUAL "sse2" "${_SSE_THERE}" _SSE2_TRUE) |
| 14 | 15 | CHECK_CXX_ACCEPTS_FLAG("-msse2" _SSE2_OK) | |
| 15 | # /proc/cpuinfo apparently omits sse3 :( | 16 | |
| 16 | STRING(REGEX REPLACE "^.*[^s](sse3).*$" "\\1" SSE_THERE ${CPUINFO}) | 17 | # /proc/cpuinfo apparently omits sse3 :( |
| 17 | STRING(COMPARE EQUAL "sse3" "${SSE_THERE}" SSE3_TRUE) | 18 | string(REGEX REPLACE "^.*[^s](sse3).*$" "\\1" _SSE_THERE ${CPUINFO}) |
| 18 | IF (NOT SSE3_TRUE) | 19 | string(COMPARE EQUAL "sse3" "${_SSE_THERE}" _SSE3_TRUE) |
| 19 | STRING(REGEX REPLACE "^.*(T2300).*$" "\\1" SSE_THERE ${CPUINFO}) | 20 | if(NOT _SSE3_TRUE) |
| 20 | STRING(COMPARE EQUAL "T2300" "${SSE_THERE}" SSE3_TRUE) | 21 | string(REGEX REPLACE "^.*(T2300).*$" "\\1" _SSE_THERE ${CPUINFO}) |
| 21 | ENDIF (NOT SSE3_TRUE) | 22 | string(COMPARE EQUAL "T2300" "${_SSE_THERE}" _SSE3_TRUE) |
| 22 | 23 | endif() | |
| 23 | STRING(REGEX REPLACE "^.*(ssse3).*$" "\\1" SSE_THERE ${CPUINFO}) | 24 | CHECK_CXX_ACCEPTS_FLAG("-msse3" _SSE3_OK) |
| 24 | STRING(COMPARE EQUAL "ssse3" "${SSE_THERE}" SSSE3_TRUE) | 25 | |
| 25 | IF (SSE3_TRUE OR SSSE3_TRUE) | 26 | string(REGEX REPLACE "^.*(ssse3).*$" "\\1" _SSE_THERE ${CPUINFO}) |
| 26 | set(SSE3_FOUND true CACHE BOOL "SSE3 available on host") | 27 | string(COMPARE EQUAL "ssse3" "${_SSE_THERE}" _SSSE3_TRUE) |
| 27 | ELSE (SSE3_TRUE OR SSSE3_TRUE) | 28 | CHECK_CXX_ACCEPTS_FLAG("-mssse3" _SSSE3_OK) |
| 28 | set(SSE3_FOUND false CACHE BOOL "SSE3 available on host") | 29 | |
| 29 | ENDIF (SSE3_TRUE OR SSSE3_TRUE) | 30 | string(REGEX REPLACE "^.*(sse4_1).*$" "\\1" _SSE_THERE ${CPUINFO}) |
| 30 | IF (SSSE3_TRUE) | 31 | string(COMPARE EQUAL "sse4_1" "${_SSE_THERE}" _SSE41_TRUE) |
| 31 | set(SSSE3_FOUND true CACHE BOOL "SSSE3 available on host") | 32 | CHECK_CXX_ACCEPTS_FLAG("-msse4.1" _SSE41_OK) |
| 32 | ELSE (SSSE3_TRUE) | 33 | |
| 33 | set(SSSE3_FOUND false CACHE BOOL "SSSE3 available on host") | 34 | string(REGEX REPLACE "^.*(sse4_2).*$" "\\1" _SSE_THERE ${CPUINFO}) |
| 34 | ENDIF (SSSE3_TRUE) | 35 | string(COMPARE EQUAL "sse4_2" "${_SSE_THERE}" _SSE42_TRUE) |
| 35 | 36 | CHECK_CXX_ACCEPTS_FLAG("-msse4.2" _SSE42_OK) | |
| 36 | STRING(REGEX REPLACE "^.*(sse4_1).*$" "\\1" SSE_THERE ${CPUINFO}) | 37 | |
| 37 | STRING(COMPARE EQUAL "sse4_1" "${SSE_THERE}" SSE41_TRUE) | 38 | string(REGEX REPLACE "^.*(avx).*$" "\\1" _SSE_THERE ${CPUINFO}) |
| 38 | IF (SSE41_TRUE) | 39 | string(COMPARE EQUAL "avx" "${_SSE_THERE}" _AVX_TRUE) |
| 39 | set(SSE4_1_FOUND true CACHE BOOL "SSE4.1 available on host") | 40 | CHECK_CXX_ACCEPTS_FLAG("-mavx" _AVX_OK) |
| 40 | ELSE (SSE41_TRUE) | 41 | |
| 41 | set(SSE4_1_FOUND false CACHE BOOL "SSE4.1 available on host") | 42 | string(REGEX REPLACE "^.*(avx2).*$" "\\1" _SSE_THERE ${CPUINFO}) |
| 42 | ENDIF (SSE41_TRUE) | 43 | string(COMPARE EQUAL "avx2" "${_SSE_THERE}" _AVX2_TRUE) |
| 43 | ELSEIF(CMAKE_SYSTEM_NAME MATCHES "Darwin") | 44 | CHECK_CXX_ACCEPTS_FLAG("-mavx2" _AVX2_OK) |
| 44 | EXEC_PROGRAM("/usr/sbin/sysctl -n machdep.cpu.features" OUTPUT_VARIABLE | 45 | endif() |
| 45 | CPUINFO) | 46 | elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin") |
| 46 | 47 | if(NOT CPU MATCHES "arm") | |
| 47 | STRING(REGEX REPLACE "^.*[^S](SSE2).*$" "\\1" SSE_THERE ${CPUINFO}) | 48 | exec_program("/usr/sbin/sysctl -n machdep.cpu.features machdep.cpu.leaf7_features" OUTPUT_VARIABLE CPUINFO) |
| 48 | STRING(COMPARE EQUAL "SSE2" "${SSE_THERE}" SSE2_TRUE) | 49 | |
| 49 | IF (SSE2_TRUE) | 50 | string(REGEX REPLACE "^.*[^S](SSE).*$" "\\1" _SSE_THERE ${CPUINFO}) |
| 50 | set(SSE2_FOUND true CACHE BOOL "SSE2 available on host") | 51 | string(COMPARE EQUAL "SSE" "${_SSE_THERE}" _SSE_TRUE) |
| 51 | ELSE (SSE2_TRUE) | 52 | CHECK_CXX_ACCEPTS_FLAG("-msse" _SSE_OK) |
| 52 | set(SSE2_FOUND false CACHE BOOL "SSE2 available on host") | 53 | |
| 53 | ENDIF (SSE2_TRUE) | 54 | string(REGEX REPLACE "^.*[^S](SSE2).*$" "\\1" _SSE_THERE ${CPUINFO}) |
| 54 | 55 | string(COMPARE EQUAL "SSE2" "${_SSE_THERE}" _SSE2_TRUE) | |
| 55 | STRING(REGEX REPLACE "^.*[^S](SSE3).*$" "\\1" SSE_THERE ${CPUINFO}) | 56 | CHECK_CXX_ACCEPTS_FLAG("-msse2" _SSE2_OK) |
| 56 | STRING(COMPARE EQUAL "SSE3" "${SSE_THERE}" SSE3_TRUE) | 57 | |
| 57 | IF (SSE3_TRUE) | 58 | string(REGEX REPLACE "^.*[^S](SSE3).*$" "\\1" _SSE_THERE ${CPUINFO}) |
| 58 | set(SSE3_FOUND true CACHE BOOL "SSE3 available on host") | 59 | string(COMPARE EQUAL "SSE3" "${_SSE_THERE}" _SSE3_TRUE) |
| 59 | ELSE (SSE3_TRUE) | 60 | CHECK_CXX_ACCEPTS_FLAG("-msse3" _SSE3_OK) |
| 60 | set(SSE3_FOUND false CACHE BOOL "SSE3 available on host") | 61 | |
| 61 | ENDIF (SSE3_TRUE) | 62 | string(REGEX REPLACE "^.*(SSSE3).*$" "\\1" _SSE_THERE ${CPUINFO}) |
| 62 | 63 | string(COMPARE EQUAL "SSSE3" "${_SSE_THERE}" _SSSE3_TRUE) | |
| 63 | STRING(REGEX REPLACE "^.*(SSSE3).*$" "\\1" SSE_THERE ${CPUINFO}) | 64 | CHECK_CXX_ACCEPTS_FLAG("-mssse3" _SSSE3_OK) |
| 64 | STRING(COMPARE EQUAL "SSSE3" "${SSE_THERE}" SSSE3_TRUE) | 65 | |
| 65 | IF (SSSE3_TRUE) | 66 | string(REGEX REPLACE "^.*(SSE4.1).*$" "\\1" _SSE_THERE ${CPUINFO}) |
| 66 | set(SSSE3_FOUND true CACHE BOOL "SSSE3 available on host") | 67 | string(COMPARE EQUAL "SSE4.1" "${_SSE_THERE}" _SSE41_TRUE) |
| 67 | ELSE (SSSE3_TRUE) | 68 | CHECK_CXX_ACCEPTS_FLAG("-msse4.1" _SSE41_OK) |
| 68 | set(SSSE3_FOUND false CACHE BOOL "SSSE3 available on host") | 69 | |
| 69 | ENDIF (SSSE3_TRUE) | 70 | string(REGEX REPLACE "^.*(SSE4.2).*$" "\\1" _SSE_THERE ${CPUINFO}) |
| 70 | 71 | string(COMPARE EQUAL "SSE4.2" "${_SSE_THERE}" _SSE42_TRUE) | |
| 71 | STRING(REGEX REPLACE "^.*(SSE4.1).*$" "\\1" SSE_THERE ${CPUINFO}) | 72 | CHECK_CXX_ACCEPTS_FLAG("-msse4.2" _SSE42_OK) |
| 72 | STRING(COMPARE EQUAL "SSE4.1" "${SSE_THERE}" SSE41_TRUE) | 73 | |
| 73 | IF (SSE41_TRUE) | 74 | string(REGEX REPLACE "^.*(AVX).*$" "\\1" _SSE_THERE ${CPUINFO}) |
| 74 | set(SSE4_1_FOUND true CACHE BOOL "SSE4.1 available on host") | 75 | string(COMPARE EQUAL "AVX" "${_SSE_THERE}" _AVX_TRUE) |
| 75 | ELSE (SSE41_TRUE) | 76 | CHECK_CXX_ACCEPTS_FLAG("-mavx" _AVX_OK) |
| 76 | set(SSE4_1_FOUND false CACHE BOOL "SSE4.1 available on host") | 77 | |
| 77 | ENDIF (SSE41_TRUE) | 78 | string(REGEX REPLACE "^.*(AVX2).*$" "\\1" _SSE_THERE ${CPUINFO}) |
| 78 | ELSEIF(CMAKE_SYSTEM_NAME MATCHES "Windows") | 79 | string(COMPARE EQUAL "AVX2" "${_SSE_THERE}" _AVX2_TRUE) |
| 80 | CHECK_CXX_ACCEPTS_FLAG("-mavx2" _AVX2_OK) | ||
| 81 | endif() | ||
| 82 | elseif(CMAKE_SYSTEM_NAME MATCHES "Windows") | ||
| 79 | # TODO | 83 | # TODO |
| 80 | set(SSE2_FOUND true CACHE BOOL "SSE2 available on host") | 84 | set(_SSE_TRUE true) |
| 81 | set(SSE3_FOUND false CACHE BOOL "SSE3 available on host") | 85 | set(_SSE_OK true) |
| 82 | set(SSSE3_FOUND false CACHE BOOL "SSSE3 available on host") | 86 | set(_SSE2_TRUE true) |
| 83 | set(SSE4_1_FOUND false CACHE BOOL "SSE4.1 available on host") | 87 | set(_SSE2_OK true) |
| 84 | ELSE(CMAKE_SYSTEM_NAME MATCHES "Linux") | 88 | endif() |
| 85 | set(SSE2_FOUND true CACHE BOOL "SSE2 available on host") | 89 | |
| 86 | set(SSE3_FOUND false CACHE BOOL "SSE3 available on host") | 90 | include(FindPackageHandleStandardArgs) |
| 87 | set(SSSE3_FOUND false CACHE BOOL "SSSE3 available on host") | 91 | find_package_handle_standard_args(SSE |
| 88 | set(SSE4_1_FOUND false CACHE BOOL "SSE4.1 available on host") | 92 | REQUIRED_VARS _SSE_TRUE _SSE_OK |
| 89 | ENDIF(CMAKE_SYSTEM_NAME MATCHES "Linux") | 93 | FAIL_MESSAGE "Could not find hardware support for SSE") |
| 90 | 94 | find_package_handle_standard_args(SSE2 | |
| 91 | if(NOT SSE2_FOUND) | 95 | REQUIRED_VARS _SSE2_TRUE _SSE2_OK |
| 92 | MESSAGE(STATUS "Could not find hardware support for SSE2 on this machine.") | 96 | FAIL_MESSAGE "Could not find hardware support for SSE2") |
| 93 | endif(NOT SSE2_FOUND) | 97 | find_package_handle_standard_args(SSE3 |
| 94 | if(NOT SSE3_FOUND) | 98 | REQUIRED_VARS _SSE3_TRUE _SSE3_OK |
| 95 | MESSAGE(STATUS "Could not find hardware support for SSE3 on this machine.") | 99 | FAIL_MESSAGE "Could not find hardware support for SSE3") |
| 96 | endif(NOT SSE3_FOUND) | 100 | find_package_handle_standard_args(SSSE3 |
| 97 | if(NOT SSSE3_FOUND) | 101 | REQUIRED_VARS _SSSE3_TRUE _SSSE3_OK |
| 98 | MESSAGE(STATUS "Could not find hardware support for SSSE3 on this machine.") | 102 | FAIL_MESSAGE "Could not find hardware support for SSSE3") |
| 99 | endif(NOT SSSE3_FOUND) | 103 | find_package_handle_standard_args(SSE4_1 |
| 100 | if(NOT SSE4_1_FOUND) | 104 | REQUIRED_VARS _SSE41_TRUE _SSE41_OK |
| 101 | MESSAGE(STATUS "Could not find hardware support for SSE4.1 on this machine.") | 105 | FAIL_MESSAGE "Could not find hardware support for SSE4.1") |
| 102 | endif(NOT SSE4_1_FOUND) | 106 | find_package_handle_standard_args(SSE4_2 |
| 103 | 107 | REQUIRED_VARS _SSE42_TRUE _SSE42_OK | |
| 104 | mark_as_advanced(SSE2_FOUND SSE3_FOUND SSSE3_FOUND SSE4_1_FOUND) | 108 | FAIL_MESSAGE "Could not find hardware support for SSE4.2") |
| 109 | find_package_handle_standard_args(AVX | ||
| 110 | REQUIRED_VARS _AVX_TRUE _AVX_OK | ||
| 111 | FAIL_MESSAGE "Could not find hardware support for AVX") | ||
| 112 | find_package_handle_standard_args(AVX2 | ||
| 113 | REQUIRED_VARS _AVX2_TRUE _AVX2_OK | ||
| 114 | FAIL_MESSAGE "Could not find hardware support for AVX2") | ||
| 115 | |||
| 116 | mark_as_advanced(SSE2_FOUND SSE3_FOUND SSSE3_FOUND SSE4_1_FOUND SSE4_2_FOUND AVX_FOUND AVX2_FOUND) | ||
| 117 | |||
| 118 | unset(_SSE_THERE) | ||
| 119 | unset(_SSE_TRUE) | ||
| 120 | unset(_SSE_OK) | ||
| 121 | unset(_SSE_OK CACHE) | ||
| 122 | unset(_SSE2_TRUE) | ||
| 123 | unset(_SSE2_OK) | ||
| 124 | unset(_SSE2_OK CACHE) | ||
| 125 | unset(_SSE3_TRUE) | ||
| 126 | unset(_SSE3_OK) | ||
| 127 | unset(_SSE3_OK CACHE) | ||
| 128 | unset(_SSSE3_TRUE) | ||
| 129 | unset(_SSSE3_OK) | ||
| 130 | unset(_SSSE3_OK CACHE) | ||
| 131 | unset(_SSE4_1_TRUE) | ||
| 132 | unset(_SSE41_OK) | ||
| 133 | unset(_SSE41_OK CACHE) | ||
| 134 | unset(_SSE4_2_TRUE) | ||
| 135 | unset(_SSE42_OK) | ||
| 136 | unset(_SSE42_OK CACHE) | ||
| 137 | unset(_AVX_TRUE) | ||
| 138 | unset(_AVX_OK) | ||
| 139 | unset(_AVX_OK CACHE) | ||
| 140 | unset(_AVX2_TRUE) | ||
| 141 | unset(_AVX2_OK) | ||
| 142 | unset(_AVX2_OK CACHE) | ||
| 105 | 143 | ||
diff --git a/project/cmake/modules/FindSSH.cmake b/project/cmake/modules/FindSSH.cmake index 60c3537..538c699 100644 --- a/project/cmake/modules/FindSSH.cmake +++ b/project/cmake/modules/FindSSH.cmake | |||
| @@ -1,21 +1,47 @@ | |||
| 1 | # - Try to find libssh | 1 | #.rst: |
| 2 | # Once done this will define | 2 | # FindSSH |
| 3 | # ------- | ||
| 4 | # Finds the SSH library | ||
| 3 | # | 5 | # |
| 4 | # SSH_FOUND - system has libssh | 6 | # This will will define the following variables:: |
| 5 | # SSH_INCLUDE_DIRS - the libssh include directory | 7 | # |
| 6 | # SSH_LIBRARIES - The libssh libraries | 8 | # SSH_FOUND - system has SSH |
| 9 | # SSH_INCLUDE_DIRS - the SSH include directory | ||
| 10 | # SSH_LIBRARIES - the SSH libraries | ||
| 11 | # SSH_DEFINITIONS - the SSH definitions | ||
| 12 | # | ||
| 13 | # and the following imported targets:: | ||
| 14 | # | ||
| 15 | # SSH::SSH - The SSH library | ||
| 7 | 16 | ||
| 8 | if(PKG_CONFIG_FOUND) | 17 | if(PKG_CONFIG_FOUND) |
| 9 | pkg_check_modules (SSH libssh) | 18 | pkg_check_modules(PC_SSH libssh QUIET) |
| 10 | list(APPEND SSH_INCLUDE_DIRS /usr/include) | ||
| 11 | else() | ||
| 12 | find_path(SSH_INCLUDE_DIRS libssh/libssh.h) | ||
| 13 | find_library(SSH_LIBRARIES ssh) | ||
| 14 | endif() | 19 | endif() |
| 15 | 20 | ||
| 21 | find_path(SSH_INCLUDE_DIR NAMES libssh/libssh.h | ||
| 22 | PATHS ${PC_SSH_INCLUDEDIR}) | ||
| 23 | find_library(SSH_LIBRARY NAMES ssh | ||
| 24 | PATHS ${PC_SSH_LIBDIR}) | ||
| 25 | |||
| 26 | set(SSH_VERSION ${PC_SSH_VERSION}) | ||
| 27 | |||
| 16 | include(FindPackageHandleStandardArgs) | 28 | include(FindPackageHandleStandardArgs) |
| 17 | find_package_handle_standard_args(SSH DEFAULT_MSG SSH_INCLUDE_DIRS SSH_LIBRARIES) | 29 | find_package_handle_standard_args(SSH |
| 30 | REQUIRED_VARS SSH_LIBRARY SSH_INCLUDE_DIR | ||
| 31 | VERSION_VAR SSH_VERSION) | ||
| 32 | |||
| 33 | if(SSH_FOUND) | ||
| 34 | set(SSH_LIBRARIES ${SSH_LIBRARY}) | ||
| 35 | set(SSH_INCLUDE_DIRS ${SSH_INCLUDE_DIR}) | ||
| 36 | set(SSH_DEFINITIONS -DHAVE_LIBSSH=1) | ||
| 18 | 37 | ||
| 19 | list(APPEND SSH_DEFINITIONS -DHAVE_LIBSSH=1) | 38 | if(NOT TARGET SSH::SSH) |
| 39 | add_library(SSH::SSH UNKNOWN IMPORTED) | ||
| 40 | set_target_properties(SSH::SSH PROPERTIES | ||
| 41 | IMPORTED_LOCATION "${SSH_LIBRARY}" | ||
| 42 | INTERFACE_INCLUDE_DIRECTORIES "${SSH_INCLUDE_DIR}" | ||
| 43 | INTERFACE_COMPILE_DEFINITIONS HAVE_LIBSSH=1) | ||
| 44 | endif() | ||
| 45 | endif() | ||
| 20 | 46 | ||
| 21 | mark_as_advanced(SSH_INCLUDE_DIRS SSH_LIBRARIES SSH_DEFINITIONS) | 47 | mark_as_advanced(SSH_INCLUDE_DIR SSH_LIBRARY) |
diff --git a/project/cmake/modules/FindSWIG.cmake b/project/cmake/modules/FindSWIG.cmake index 84c7a51..523b49b 100644 --- a/project/cmake/modules/FindSWIG.cmake +++ b/project/cmake/modules/FindSWIG.cmake | |||
| @@ -1,14 +1,29 @@ | |||
| 1 | if(NOT SWIG_EXECUTABLE) | 1 | #.rst: |
| 2 | find_program(SWIG_EXECUTABLE NAMES swig2.0 swig PATH_SUFFIXES swig) | 2 | # FindSWIG |
| 3 | endif() | 3 | # -------- |
| 4 | # Finds the SWIG executable | ||
| 5 | # | ||
| 6 | # This will will define the following variables:: | ||
| 7 | # | ||
| 8 | # SWIG_FOUND - system has SWIG | ||
| 9 | # SWIG_EXECUTABLE - the SWIG executable | ||
| 10 | |||
| 11 | find_program(SWIG_EXECUTABLE NAMES swig3.0 swig2.0 swig | ||
| 12 | PATH_SUFFIXES swig) | ||
| 4 | if(SWIG_EXECUTABLE) | 13 | if(SWIG_EXECUTABLE) |
| 5 | execute_process(COMMAND ${SWIG_EXECUTABLE} -swiglib | 14 | execute_process(COMMAND ${SWIG_EXECUTABLE} -swiglib |
| 6 | OUTPUT_VARIABLE SWIG_DIR | 15 | OUTPUT_VARIABLE SWIG_DIR |
| 7 | ERROR_VARIABLE SWIG_swiglib_error | 16 | ERROR_VARIABLE SWIG_swiglib_error |
| 8 | RESULT_VARIABLE SWIG_swiglib_result) | 17 | RESULT_VARIABLE SWIG_swiglib_result) |
| 18 | execute_process(COMMAND ${SWIG_EXECUTABLE} -version | ||
| 19 | OUTPUT_VARIABLE SWIG_version_output | ||
| 20 | ERROR_VARIABLE SWIG_version_output | ||
| 21 | RESULT_VARIABLE SWIG_version_result) | ||
| 22 | string(REGEX REPLACE ".*SWIG Version[^0-9.]*\([0-9.]+\).*" "\\1" | ||
| 23 | SWIG_VERSION "${SWIG_version_output}") | ||
| 9 | endif() | 24 | endif() |
| 10 | 25 | ||
| 11 | |||
| 12 | include(FindPackageHandleStandardArgs) | 26 | include(FindPackageHandleStandardArgs) |
| 13 | FIND_PACKAGE_HANDLE_STANDARD_ARGS(SWIG REQUIRED_VARS SWIG_EXECUTABLE SWIG_DIR | 27 | find_package_handle_standard_args(SWIG |
| 14 | VERSION_VAR SWIG_VERSION ) | 28 | REQUIRED_VARS SWIG_EXECUTABLE SWIG_DIR |
| 29 | VERSION_VAR SWIG_VERSION) | ||
diff --git a/project/cmake/modules/FindShairplay.cmake b/project/cmake/modules/FindShairplay.cmake index 4804686..87d3107 100644 --- a/project/cmake/modules/FindShairplay.cmake +++ b/project/cmake/modules/FindShairplay.cmake | |||
| @@ -35,11 +35,11 @@ if(NOT WIN32) | |||
| 35 | " HAVE_SHAIRPLAY_CALLBACK_CLS) | 35 | " HAVE_SHAIRPLAY_CALLBACK_CLS) |
| 36 | endif() | 36 | endif() |
| 37 | 37 | ||
| 38 | find_package_handle_standard_args(SHAIRPLAY | 38 | find_package_handle_standard_args(Shairplay |
| 39 | REQUIRED_VARS SHAIRPLAY_LIBRARY SHAIRPLAY_INCLUDE_DIR HAVE_SHAIRPLAY_CALLBACK_CLS) | 39 | REQUIRED_VARS SHAIRPLAY_LIBRARY SHAIRPLAY_INCLUDE_DIR HAVE_SHAIRPLAY_CALLBACK_CLS) |
| 40 | else() | 40 | else() |
| 41 | # Dynamically loaded DLL | 41 | # Dynamically loaded DLL |
| 42 | find_package_handle_standard_args(SHAIRPLAY | 42 | find_package_handle_standard_args(Shairplay |
| 43 | REQUIRED_VARS SHAIRPLAY_INCLUDE_DIR) | 43 | REQUIRED_VARS SHAIRPLAY_INCLUDE_DIR) |
| 44 | endif() | 44 | endif() |
| 45 | 45 | ||
diff --git a/project/cmake/modules/FindSmbClient.cmake b/project/cmake/modules/FindSmbClient.cmake new file mode 100644 index 0000000..6455cce --- /dev/null +++ b/project/cmake/modules/FindSmbClient.cmake | |||
| @@ -0,0 +1,47 @@ | |||
| 1 | #.rst: | ||
| 2 | # FindSmbClient | ||
| 3 | # ------------- | ||
| 4 | # Finds the SMB Client library | ||
| 5 | # | ||
| 6 | # This will will define the following variables:: | ||
| 7 | # | ||
| 8 | # SMBCLIENT_FOUND - system has SmbClient | ||
| 9 | # SMBCLIENT_INCLUDE_DIRS - the SmbClient include directory | ||
| 10 | # SMBCLIENT_LIBRARIES - the SmbClient libraries | ||
| 11 | # SMBCLIENT_DEFINITIONS - the SmbClient definitions | ||
| 12 | # | ||
| 13 | # and the following imported targets:: | ||
| 14 | # | ||
| 15 | # SmbClient::SmbClient - The SmbClient library | ||
| 16 | |||
| 17 | if(PKGCONFIG_FOUND) | ||
| 18 | pkg_check_modules(PC_SMBCLIENT smbclient QUIET) | ||
| 19 | endif() | ||
| 20 | |||
| 21 | find_path(SMBCLIENT_INCLUDE_DIR NAMES libsmbclient.h | ||
| 22 | PATHS ${PC_SMBCLIENT_INCLUDEDIR}) | ||
| 23 | find_library(SMBCLIENT_LIBRARY NAMES smbclient | ||
| 24 | PATHS ${PC_SMBCLIENT_LIBDIR}) | ||
| 25 | |||
| 26 | set(SMBCLIENT_VERSION ${PC_SMBCLIENT_VERSION}) | ||
| 27 | |||
| 28 | include(FindPackageHandleStandardArgs) | ||
| 29 | find_package_handle_standard_args(SmbClient | ||
| 30 | REQUIRED_VARS SMBCLIENT_LIBRARY SMBCLIENT_INCLUDE_DIR | ||
| 31 | VERSION_VAR SMBCLIENT_VERSION) | ||
| 32 | |||
| 33 | if(SMBCLIENT_FOUND) | ||
| 34 | set(SMBCLIENT_LIBRARIES ${SMBCLIENT_LIBRARY}) | ||
| 35 | set(SMBCLIENT_INCLUDE_DIRS ${SMBCLIENT_INCLUDE_DIR}) | ||
| 36 | set(SMBCLIENT_DEFINITIONS -DHAVE_LIBSMBCLIENT=1) | ||
| 37 | |||
| 38 | if(NOT TARGET SmbClient::SmbClient) | ||
| 39 | add_library(SmbClient::SmbClient UNKNOWN IMPORTED) | ||
| 40 | set_target_properties(SmbClient::SmbClient PROPERTIES | ||
| 41 | IMPORTED_LOCATION "${SMBCLIENT_LIBRARY}" | ||
| 42 | INTERFACE_INCLUDE_DIRECTORIES "${SMBCLIENT_INCLUDE_DIR}" | ||
| 43 | INTERFACE_COMPILE_DEFINITIONS HAVE_LIBSMBCLIENT=1) | ||
| 44 | endif() | ||
| 45 | endif() | ||
| 46 | |||
| 47 | mark_as_advanced(LIBSMBCLIENT_INCLUDE_DIR LIBSMBCLIENT_LIBRARY) | ||
diff --git a/project/cmake/modules/FindSqlite3.cmake b/project/cmake/modules/FindSqlite3.cmake index a47944e..abde0cf 100644 --- a/project/cmake/modules/FindSqlite3.cmake +++ b/project/cmake/modules/FindSqlite3.cmake | |||
| @@ -1,19 +1,44 @@ | |||
| 1 | # - Try to find SQLITE3 | 1 | #.rst: |
| 2 | # Once done this will define | 2 | # FindSqlite3 |
| 3 | # ----------- | ||
| 4 | # Finds the SQLite3 library | ||
| 3 | # | 5 | # |
| 4 | # SQLITE3_FOUND - system has sqlite3 | 6 | # This will will define the following variables:: |
| 5 | # SQLITE3_INCLUDE_DIRS - the sqlite3 include directory | 7 | # |
| 6 | # SQLITE3_LIBRARIES - The sqlite3 libraries | 8 | # SQLITE3_FOUND - system has SQLite3 |
| 9 | # SQLITE3_INCLUDE_DIRS - the SQLite3 include directory | ||
| 10 | # SQLITE3_LIBRARIES - the SQLite3 libraries | ||
| 11 | # | ||
| 12 | # and the following imported targets:: | ||
| 13 | # | ||
| 14 | # SQLite3::SQLite3 - The SQLite3 library | ||
| 7 | 15 | ||
| 8 | if(PKG_CONFIG_FOUND) | 16 | if(PKG_CONFIG_FOUND) |
| 9 | pkg_check_modules (SQLITE3 sqlite3) | 17 | pkg_check_modules(PC_SQLITE3 sqlite3 QUIET) |
| 10 | list(APPEND SQLITE3_INCLUDE_DIRS ${SQLITE3_INCLUDEDIR}) | ||
| 11 | else() | ||
| 12 | find_path(SQLITE3_INCLUDE_DIRS sqlite3.h) | ||
| 13 | find_library(SQLITE3_LIBRARIES sqlite3) | ||
| 14 | endif() | 18 | endif() |
| 15 | 19 | ||
| 20 | find_path(SQLITE3_INCLUDE_DIR NAMES sqlite3.h | ||
| 21 | PATHS ${PC_SQLITE3_INCLUDEDIR}) | ||
| 22 | find_library(SQLITE3_LIBRARY NAMES sqlite3 | ||
| 23 | PATHS ${PC_SQLITE3_LIBDIR}) | ||
| 24 | |||
| 25 | set(SQLITE3_VERSION ${PC_SQLITE3_VERSION}) | ||
| 26 | |||
| 16 | include(FindPackageHandleStandardArgs) | 27 | include(FindPackageHandleStandardArgs) |
| 17 | find_package_handle_standard_args(Sqlite3 DEFAULT_MSG SQLITE3_INCLUDE_DIRS SQLITE3_LIBRARIES) | 28 | find_package_handle_standard_args(Sqlite3 |
| 29 | REQUIRED_VARS SQLITE3_LIBRARY SQLITE3_INCLUDE_DIR | ||
| 30 | VERSION_VAR SQLITE3_VERSION) | ||
| 31 | |||
| 32 | if(SQLITE3_FOUND) | ||
| 33 | set(SQLITE3_INCLUDE_DIRS ${SQLITE3_INCLUDE_DIR}) | ||
| 34 | set(SQLITE3_LIBRARIES ${SQLITE3_LIBRARY}) | ||
| 35 | |||
| 36 | if(NOT TARGET SQLite3::SQLite3) | ||
| 37 | add_library(SQLite3::SQLite3 UNKNOWN IMPORTED) | ||
| 38 | set_target_properties(SQLite3::SQLite3 PROPERTIES | ||
| 39 | IMPORTED_LOCATION "${SQLITE3_LIBRARY}" | ||
| 40 | INTERFACE_INCLUDE_DIRECTORIES "${SQLITE3_INCLUDE_DIR}") | ||
| 41 | endif() | ||
| 42 | endif() | ||
| 18 | 43 | ||
| 19 | mark_as_advanced(SQLITE3_INCLUDE_DIRS SQLITE3_LIBRARIES) | 44 | mark_as_advanced(SQLITE3_INCLUDE_DIR SQLITE3_LIBRARY) |
diff --git a/project/cmake/modules/FindTagLib.cmake b/project/cmake/modules/FindTagLib.cmake index 06b615d..8c8c2f3 100644 --- a/project/cmake/modules/FindTagLib.cmake +++ b/project/cmake/modules/FindTagLib.cmake | |||
| @@ -14,7 +14,7 @@ | |||
| 14 | # TagLib::TagLib - The TagLib library | 14 | # TagLib::TagLib - The TagLib library |
| 15 | 15 | ||
| 16 | if(PKG_CONFIG_FOUND) | 16 | if(PKG_CONFIG_FOUND) |
| 17 | pkg_check_modules(PC_TAGLIB taglib>=1.8.0 QUIET) | 17 | pkg_check_modules(PC_TAGLIB taglib>=1.9.0 QUIET) |
| 18 | endif() | 18 | endif() |
| 19 | 19 | ||
| 20 | find_path(TAGLIB_INCLUDE_DIR taglib/tag.h | 20 | find_path(TAGLIB_INCLUDE_DIR taglib/tag.h |
| @@ -29,7 +29,7 @@ include(SelectLibraryConfigurations) | |||
| 29 | select_library_configurations(TAGLIB) | 29 | select_library_configurations(TAGLIB) |
| 30 | 30 | ||
| 31 | include(FindPackageHandleStandardArgs) | 31 | include(FindPackageHandleStandardArgs) |
| 32 | find_package_handle_standard_args(TAGLIB | 32 | find_package_handle_standard_args(TagLib |
| 33 | REQUIRED_VARS TAGLIB_LIBRARY TAGLIB_INCLUDE_DIR | 33 | REQUIRED_VARS TAGLIB_LIBRARY TAGLIB_INCLUDE_DIR |
| 34 | VERSION_VAR TAGLIB_VERSION) | 34 | VERSION_VAR TAGLIB_VERSION) |
| 35 | 35 | ||
diff --git a/project/cmake/modules/FindTinyXML.cmake b/project/cmake/modules/FindTinyXML.cmake index 54ec946..1220a94 100644 --- a/project/cmake/modules/FindTinyXML.cmake +++ b/project/cmake/modules/FindTinyXML.cmake | |||
| @@ -33,7 +33,7 @@ include(SelectLibraryConfigurations) | |||
| 33 | select_library_configurations(TINYXML) | 33 | select_library_configurations(TINYXML) |
| 34 | 34 | ||
| 35 | include(FindPackageHandleStandardArgs) | 35 | include(FindPackageHandleStandardArgs) |
| 36 | find_package_handle_standard_args(TINYXML | 36 | find_package_handle_standard_args(TinyXML |
| 37 | REQUIRED_VARS TINYXML_LIBRARY TINYXML_INCLUDE_DIR | 37 | REQUIRED_VARS TINYXML_LIBRARY TINYXML_INCLUDE_DIR |
| 38 | VERSION_VAR TINYXML_VERSION) | 38 | VERSION_VAR TINYXML_VERSION) |
| 39 | 39 | ||
diff --git a/project/cmake/modules/FindUDEV.cmake b/project/cmake/modules/FindUDEV.cmake new file mode 100644 index 0000000..422c437 --- /dev/null +++ b/project/cmake/modules/FindUDEV.cmake | |||
| @@ -0,0 +1,47 @@ | |||
| 1 | #.rst: | ||
| 2 | # FindUDEV | ||
| 3 | # ------- | ||
| 4 | # Finds the UDEV library | ||
| 5 | # | ||
| 6 | # This will will define the following variables:: | ||
| 7 | # | ||
| 8 | # UDEV_FOUND - system has UDEV | ||
| 9 | # UDEV_INCLUDE_DIRS - the UDEV include directory | ||
| 10 | # UDEV_LIBRARIES - the UDEV libraries | ||
| 11 | # UDEV_DEFINITIONS - the UDEV definitions | ||
| 12 | # | ||
| 13 | # and the following imported targets:: | ||
| 14 | # | ||
| 15 | # UDEV::UDEV - The UDEV library | ||
| 16 | |||
| 17 | if(PKG_CONFIG_FOUND) | ||
| 18 | pkg_check_modules(PC_UDEV libudev QUIET) | ||
| 19 | endif() | ||
| 20 | |||
| 21 | find_path(UDEV_INCLUDE_DIR NAMES libudev.h | ||
| 22 | PATHS ${PC_UDEV_INCLUDEDIR}) | ||
| 23 | find_library(UDEV_LIBRARY NAMES udev | ||
| 24 | PATHS ${PC_UDEV_LIBDIR}) | ||
| 25 | |||
| 26 | set(UDEV_VERSION ${PC_UDEV_VERSION}) | ||
| 27 | |||
| 28 | include(FindPackageHandleStandardArgs) | ||
| 29 | find_package_handle_standard_args(UDEV | ||
| 30 | REQUIRED_VARS UDEV_LIBRARY UDEV_INCLUDE_DIR | ||
| 31 | VERSION_VAR UDEV_VERSION) | ||
| 32 | |||
| 33 | if(UDEV_FOUND) | ||
| 34 | set(UDEV_LIBRARIES ${UDEV_LIBRARY}) | ||
| 35 | set(UDEV_INCLUDE_DIRS ${UDEV_INCLUDE_DIR}) | ||
| 36 | set(UDEV_DEFINITIONS -DHAVE_LIBUDEV=1) | ||
| 37 | |||
| 38 | if(NOT TARGET UDEV::UDEV) | ||
| 39 | add_library(UDEV::UDEV UNKNOWN IMPORTED) | ||
| 40 | set_target_properties(UDEV::UDEV PROPERTIES | ||
| 41 | IMPORTED_LOCATION "${UDEV_LIBRARY}" | ||
| 42 | INTERFACE_INCLUDE_DIRECTORIES "${UDEV_INCLUDE_DIR}" | ||
| 43 | INTERFACE_COMPILE_DEFINITIONS HAVE_LIBUDEV=1) | ||
| 44 | endif() | ||
| 45 | endif() | ||
| 46 | |||
| 47 | mark_as_advanced(UDEV_INCLUDE_DIR UDEV_LIBRARY) | ||
diff --git a/project/cmake/modules/FindUDev.cmake b/project/cmake/modules/FindUDev.cmake deleted file mode 100644 index 97fa956..0000000 --- a/project/cmake/modules/FindUDev.cmake +++ /dev/null | |||
| @@ -1,22 +0,0 @@ | |||
| 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 | |||
| 8 | if(PKG_CONFIG_FOUND) | ||
| 9 | pkg_check_modules (UDEV libudev) | ||
| 10 | list(APPEND UDEV_INCLUDE_DIRS ${UDEV_INCLUDEDIR}) | ||
| 11 | endif() | ||
| 12 | |||
| 13 | if(NOT UDEV_FOUND) | ||
| 14 | find_path(UDEV_INCLUDE_DIRS libudev.h) | ||
| 15 | find_library(UDEV_LIBRARIES udev) | ||
| 16 | endif() | ||
| 17 | |||
| 18 | include(FindPackageHandleStandardArgs) | ||
| 19 | find_package_handle_standard_args(UDev DEFAULT_MSG UDEV_INCLUDE_DIRS UDEV_LIBRARIES) | ||
| 20 | |||
| 21 | mark_as_advanced(UDEV_INCLUDE_DIRS UDEV_LIBRARIES) | ||
| 22 | list(APPEND UDEV_DEFINITIONS -DHAVE_LIBUDEV=1) | ||
diff --git a/project/cmake/modules/FindVAAPI.cmake b/project/cmake/modules/FindVAAPI.cmake index 08e821f..ce3fe1a 100644 --- a/project/cmake/modules/FindVAAPI.cmake +++ b/project/cmake/modules/FindVAAPI.cmake | |||
| @@ -9,6 +9,10 @@ | |||
| 9 | # VAAPI_INCLUDE_DIRS - the VAAPI include directory | 9 | # VAAPI_INCLUDE_DIRS - the VAAPI include directory |
| 10 | # VAAPI_LIBRARIES - the VAAPI libraries | 10 | # VAAPI_LIBRARIES - the VAAPI libraries |
| 11 | # VAAPI_DEFINITIONS - the VAAPI definitions | 11 | # VAAPI_DEFINITIONS - the VAAPI definitions |
| 12 | # | ||
| 13 | # and the following imported targets:: | ||
| 14 | # | ||
| 15 | # VAAPI::VAAPI - The VAAPI library | ||
| 12 | 16 | ||
| 13 | if(PKG_CONFIG_FOUND) | 17 | if(PKG_CONFIG_FOUND) |
| 14 | pkg_check_modules(PC_VAAPI libva libva-x11 QUIET) | 18 | pkg_check_modules(PC_VAAPI libva libva-x11 QUIET) |
| @@ -42,6 +46,20 @@ if(VAAPI_FOUND) | |||
| 42 | set(VAAPI_INCLUDE_DIRS ${VAAPI_INCLUDE_DIR}) | 46 | set(VAAPI_INCLUDE_DIRS ${VAAPI_INCLUDE_DIR}) |
| 43 | set(VAAPI_LIBRARIES ${VAAPI_libva_LIBRARY} ${VAAPI_libva-x11_LIBRARY}) | 47 | set(VAAPI_LIBRARIES ${VAAPI_libva_LIBRARY} ${VAAPI_libva-x11_LIBRARY}) |
| 44 | set(VAAPI_DEFINITIONS -DHAVE_LIBVA=1) | 48 | set(VAAPI_DEFINITIONS -DHAVE_LIBVA=1) |
| 49 | |||
| 50 | if(NOT TARGET VAAPI::VAAPI_X11) | ||
| 51 | add_library(VAAPI::VAAPI_X11 UNKNOWN IMPORTED) | ||
| 52 | set_target_properties(VAAPI::VAAPI_X11 PROPERTIES | ||
| 53 | IMPORTED_LOCATION "${VAAPI_libva-x11_LIBRARY}") | ||
| 54 | endif() | ||
| 55 | if(NOT TARGET VAAPI::VAAPI) | ||
| 56 | add_library(VAAPI::VAAPI UNKNOWN IMPORTED) | ||
| 57 | set_target_properties(VAAPI::VAAPI PROPERTIES | ||
| 58 | IMPORTED_LOCATION "${VAAPI_libva_LIBRARY}" | ||
| 59 | INTERFACE_INCLUDE_DIRECTORIES "${VAAPI_INCLUDE_DIR}" | ||
| 60 | INTERFACE_COMPILE_DEFINITIONS HAVE_LIBVA=1 | ||
| 61 | INTERFACE_LINK_LIBRARIES VAAPI::VAAPI_X11) | ||
| 62 | endif() | ||
| 45 | endif() | 63 | endif() |
| 46 | 64 | ||
| 47 | mark_as_advanced(VAAPI_INCLUDE_DIR VAAPI_libva_LIBRARY VAAPI_libva-x11_LIBRARY) | 65 | 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 index 680b45f..b99e03f 100644 --- a/project/cmake/modules/FindVDPAU.cmake +++ b/project/cmake/modules/FindVDPAU.cmake | |||
| @@ -9,6 +9,10 @@ | |||
| 9 | # VDPAU_INCLUDE_DIRS - the VDPAU include directory | 9 | # VDPAU_INCLUDE_DIRS - the VDPAU include directory |
| 10 | # VDPAU_LIBRARIES - the VDPAU libraries | 10 | # VDPAU_LIBRARIES - the VDPAU libraries |
| 11 | # VDPAU_DEFINITIONS - the VDPAU definitions | 11 | # VDPAU_DEFINITIONS - the VDPAU definitions |
| 12 | # | ||
| 13 | # and the following imported targets:: | ||
| 14 | # | ||
| 15 | # VDPAU::VDPAU - The VDPAU library | ||
| 12 | 16 | ||
| 13 | if(PKG_CONFIG_FOUND) | 17 | if(PKG_CONFIG_FOUND) |
| 14 | pkg_check_modules(PC_VDPAU vdpau QUIET) | 18 | pkg_check_modules(PC_VDPAU vdpau QUIET) |
| @@ -19,14 +23,25 @@ find_path(VDPAU_INCLUDE_DIR NAMES vdpau/vdpau.h vdpau/vdpau_x11.h | |||
| 19 | find_library(VDPAU_LIBRARY NAMES vdpau | 23 | find_library(VDPAU_LIBRARY NAMES vdpau |
| 20 | PATHS ${PC_VDPAU_LIBDIR}) | 24 | PATHS ${PC_VDPAU_LIBDIR}) |
| 21 | 25 | ||
| 26 | set(VDPAU_VERSION ${PC_VDPAU_VERSION}) | ||
| 27 | |||
| 22 | include(FindPackageHandleStandardArgs) | 28 | include(FindPackageHandleStandardArgs) |
| 23 | find_package_handle_standard_args(VDPAU | 29 | find_package_handle_standard_args(VDPAU |
| 24 | REQUIRED_VARS VDPAU_LIBRARY VDPAU_INCLUDE_DIR) | 30 | REQUIRED_VARS VDPAU_LIBRARY VDPAU_INCLUDE_DIR |
| 31 | VERSION_VAR VDPAU_VERSION) | ||
| 25 | 32 | ||
| 26 | if(VDPAU_FOUND) | 33 | if(VDPAU_FOUND) |
| 27 | set(VDPAU_INCLUDE_DIRS ${VDPAU_INCLUDE_DIR}) | 34 | set(VDPAU_INCLUDE_DIRS ${VDPAU_INCLUDE_DIR}) |
| 28 | set(VDPAU_LIBRARIES ${VDPAU_LIBRARY}) | 35 | set(VDPAU_LIBRARIES ${VDPAU_LIBRARY}) |
| 29 | set(VDPAU_DEFINITIONS -DHAVE_LIBVDPAU=1) | 36 | set(VDPAU_DEFINITIONS -DHAVE_LIBVDPAU=1) |
| 37 | |||
| 38 | if(NOT TARGET VDPAU::VDPAU) | ||
| 39 | add_library(VDPAU::VDPAU UNKNOWN IMPORTED) | ||
| 40 | set_target_properties(VDPAU::VDPAU PROPERTIES | ||
| 41 | IMPORTED_LOCATION "${VDPAU_LIBRARY}" | ||
| 42 | INTERFACE_INCLUDE_DIRECTORIES "${VDPAU_INCLUDE_DIR}" | ||
| 43 | INTERFACE_COMPILE_DEFINITIONS HAVE_LIBVDPAU=1) | ||
| 44 | endif() | ||
| 30 | endif() | 45 | endif() |
| 31 | 46 | ||
| 32 | mark_as_advanced(VDPAU_INCLUDE_DIR VDPAU_LIBRARY) | 47 | mark_as_advanced(VDPAU_INCLUDE_DIR VDPAU_LIBRARY) |
diff --git a/project/cmake/modules/FindX.cmake b/project/cmake/modules/FindX.cmake index d9ab5bc..19bb770 100644 --- a/project/cmake/modules/FindX.cmake +++ b/project/cmake/modules/FindX.cmake | |||
| @@ -1,21 +1,57 @@ | |||
| 1 | # - Try to find X11 | 1 | #.rst: |
| 2 | # Once done this will define | 2 | # FindX |
| 3 | # ----- | ||
| 4 | # Finds the X11 library | ||
| 3 | # | 5 | # |
| 4 | # X11_FOUND - system has X11 | 6 | # This will will define the following variables:: |
| 5 | # X11_INCLUDE_DIRS - the X11 include directory | 7 | # |
| 6 | # X11_LIBRARIES - The X11 libraries | 8 | # X_FOUND - system has X11 |
| 9 | # X_INCLUDE_DIRS - the X11 include directory | ||
| 10 | # X_LIBRARIES - the X11 libraries | ||
| 11 | # X_DEFINITIONS - the X11 definitions | ||
| 12 | # | ||
| 13 | # and the following imported targets:: | ||
| 14 | # | ||
| 15 | # X::X - The X11 library | ||
| 16 | # X::Xext - The X11 extension library | ||
| 7 | 17 | ||
| 8 | if(PKG_CONFIG_FOUND) | 18 | if(PKG_CONFIG_FOUND) |
| 9 | pkg_check_modules (X x11 xext libdrm egl) | 19 | pkg_check_modules(PC_X x11 xext QUIET) |
| 10 | list(APPEND X_INCLUDE_DIRS /usr/include) | ||
| 11 | else() | ||
| 12 | find_path(X_INCLUDE_DIRS X11/Xlib.h) | ||
| 13 | find_library(X_LIBRARIES X11) | ||
| 14 | endif() | 20 | endif() |
| 15 | 21 | ||
| 22 | find_path(X_INCLUDE_DIR NAMES X11/Xlib.h | ||
| 23 | PATHS ${PC_X_x11_INCLUDEDIR}) | ||
| 24 | find_library(X_LIBRARY NAMES X11 | ||
| 25 | PATHS ${PC_X_x11_LIBDIR}) | ||
| 26 | find_library(X_EXT_LIBRARY NAMES Xext | ||
| 27 | PATHS ${PC_X_xext_LIBDIR}) | ||
| 28 | |||
| 29 | set(X_VERSION ${PC_X_x11_VERSION}) | ||
| 30 | |||
| 16 | include(FindPackageHandleStandardArgs) | 31 | include(FindPackageHandleStandardArgs) |
| 17 | find_package_handle_standard_args(X DEFAULT_MSG X_INCLUDE_DIRS X_LIBRARIES) | 32 | find_package_handle_standard_args(X |
| 33 | REQUIRED_VARS X_LIBRARY X_EXT_LIBRARY X_INCLUDE_DIR | ||
| 34 | VERSION_VAR X_VERSION) | ||
| 35 | |||
| 36 | if(X_FOUND) | ||
| 37 | set(X_LIBRARIES ${X_LIBRARY} ${X_EXT_LIBRARY}) | ||
| 38 | set(X_INCLUDE_DIRS ${X_INCLUDE_DIR}) | ||
| 39 | set(X_DEFINITIONS -DHAVE_X11=1) | ||
| 18 | 40 | ||
| 19 | list(APPEND X_DEFINITIONS -DHAVE_X11=1) | 41 | if(NOT TARGET X::X) |
| 42 | add_library(X::X UNKNOWN IMPORTED) | ||
| 43 | set_target_properties(X::X PROPERTIES | ||
| 44 | IMPORTED_LOCATION "${X_LIBRARY}" | ||
| 45 | INTERFACE_INCLUDE_DIRECTORIES "${X_INCLUDE_DIR}" | ||
| 46 | INTERFACE_COMPILE_DEFINITIONS HAVE_X11=1) | ||
| 47 | endif() | ||
| 48 | if(NOT TARGET X::Xext) | ||
| 49 | add_library(X::Xext UNKNOWN IMPORTED) | ||
| 50 | set_target_properties(X::Xext PROPERTIES | ||
| 51 | IMPORTED_LOCATION "${X_EXT_LIBRARY}" | ||
| 52 | INTERFACE_INCLUDE_DIRECTORIES "${X_INCLUDE_DIR}" | ||
| 53 | INTERFACE_LINK_LIBRARIES X::X) | ||
| 54 | endif() | ||
| 55 | endif() | ||
| 20 | 56 | ||
| 21 | mark_as_advanced(X_INCLUDE_DIRS X_LIBRARIES X_DEFINITIONS) | 57 | mark_as_advanced(X_INCLUDE_DIR X_LIBRARY X_EXT_LIBRARY) |
diff --git a/project/cmake/modules/FindXRandR.cmake b/project/cmake/modules/FindXRandR.cmake index 57ff750..9feaedc 100644 --- a/project/cmake/modules/FindXRandR.cmake +++ b/project/cmake/modules/FindXRandR.cmake | |||
| @@ -1,22 +1,47 @@ | |||
| 1 | # - Try to find xrandr | 1 | #.rst: |
| 2 | # Once done this will define | 2 | # FindXRandR |
| 3 | # ---------- | ||
| 4 | # Finds the XRandR library | ||
| 3 | # | 5 | # |
| 4 | # XRANDR_FOUND - system has lixrandr | 6 | # This will will define the following variables:: |
| 5 | # XRANDR_INCLUDE_DIRS - the libxrandr include directory | 7 | # |
| 6 | # XRANDR_LIBRARIES - The libxrandr libraries | 8 | # XRANDR_FOUND - system has XRANDR |
| 9 | # XRANDR_INCLUDE_DIRS - the XRANDR include directory | ||
| 10 | # XRANDR_LIBRARIES - the XRANDR libraries | ||
| 11 | # XRANDR_DEFINITIONS - the XRANDR definitions | ||
| 12 | # | ||
| 13 | # and the following imported targets:: | ||
| 14 | # | ||
| 15 | # XRandR::XRandR - The XRANDR library | ||
| 7 | 16 | ||
| 8 | if(PKG_CONFIG_FOUND) | 17 | if(PKG_CONFIG_FOUND) |
| 9 | pkg_check_modules (XRANDR xrandr) | 18 | pkg_check_modules(PC_XRANDR xrandr QUIET) |
| 10 | list(APPEND XRANDR_INCLUDE_DIRS ${XRANDR_INCLUDEDIR}) | ||
| 11 | else() | ||
| 12 | find_library(XRANDR_LIBRARIES Xrandr) | ||
| 13 | endif() | 19 | endif() |
| 14 | 20 | ||
| 15 | if(XRANDR_FOUND) | 21 | find_path(XRANDR_INCLUDE_DIR NAMES X11/extensions/Xrandr.h |
| 22 | PATHS ${PC_XRANDR_INCLUDEDIR}) | ||
| 23 | find_library(XRANDR_LIBRARY NAMES Xrandr | ||
| 24 | PATHS ${PC_XRANDR_LIBDIR}) | ||
| 25 | |||
| 26 | set(XRANDR_VERSION ${PC_XRANDR_VERSION}) | ||
| 27 | |||
| 16 | include(FindPackageHandleStandardArgs) | 28 | include(FindPackageHandleStandardArgs) |
| 17 | find_package_handle_standard_args(XRandR DEFAULT_MSG XRANDR_INCLUDE_DIRS XRANDR_LIBRARIES) | 29 | find_package_handle_standard_args(XRandR |
| 30 | REQUIRED_VARS XRANDR_LIBRARY XRANDR_INCLUDE_DIR | ||
| 31 | VERSION_VAR XRANDR_VERSION) | ||
| 18 | 32 | ||
| 19 | list(APPEND XRANDR_DEFINITIONS -DHAVE_LIBXRANDR=1) | 33 | if(XRANDR_FOUND) |
| 34 | set(XRANDR_LIBRARIES ${XRANDR_LIBRARY}) | ||
| 35 | set(XRANDR_INCLUDE_DIRS ${XRANDR_INCLUDE_DIR}) | ||
| 36 | set(XRANDR_DEFINITIONS -DHAVE_LIBXRANDR=1) | ||
| 20 | 37 | ||
| 21 | mark_as_advanced(XRANDR_INCLUDE_DIRS XRANDR_LIBRARIES XRANDR_DEFINITIONS) | 38 | if(NOT TARGET XRandR::XRandR) |
| 39 | add_library(XRandR::XRandR UNKNOWN IMPORTED) | ||
| 40 | set_target_properties(XRandR::XRandR PROPERTIES | ||
| 41 | IMPORTED_LOCATION "${XRANDR_LIBRARY}" | ||
| 42 | INTERFACE_INCLUDE_DIRECTORIES "${XRANDR_INCLUDE_DIR}" | ||
| 43 | INTERFACE_COMPILE_DEFINITIONS HAVE_LIBXRANDR=1) | ||
| 44 | endif() | ||
| 22 | endif() | 45 | endif() |
| 46 | |||
| 47 | mark_as_advanced(XRANDR_INCLUDE_DIR XRANDR_LIBRARY) | ||
diff --git a/project/cmake/modules/FindXSLT.cmake b/project/cmake/modules/FindXSLT.cmake new file mode 100644 index 0000000..9be51d3 --- /dev/null +++ b/project/cmake/modules/FindXSLT.cmake | |||
| @@ -0,0 +1,50 @@ | |||
| 1 | #.rst: | ||
| 2 | # FindXSLT | ||
| 3 | # -------- | ||
| 4 | # Finds the XSLT library | ||
| 5 | # | ||
| 6 | # This will will define the following variables:: | ||
| 7 | # | ||
| 8 | # XSLT_FOUND - system has XSLT | ||
| 9 | # XSLT_INCLUDE_DIRS - the XSLT include directory | ||
| 10 | # XSLT_LIBRARIES - the XSLT libraries | ||
| 11 | # XSLT_DEFINITIONS - the XSLT definitions | ||
| 12 | # | ||
| 13 | # and the following imported targets:: | ||
| 14 | # | ||
| 15 | # XSLT::XSLT - The XSLT library | ||
| 16 | |||
| 17 | find_package(LibXml2 REQUIRED) | ||
| 18 | |||
| 19 | if(PKG_CONFIG_FOUND) | ||
| 20 | pkg_check_modules(PC_XSLT libxslt QUIET) | ||
| 21 | endif() | ||
| 22 | |||
| 23 | find_path(XSLT_INCLUDE_DIR NAMES libxslt/xslt.h | ||
| 24 | PATHS ${PC_XSLT_INCLUDEDIR}) | ||
| 25 | find_library(XSLT_LIBRARY NAMES xslt libxslt | ||
| 26 | PATHS ${PC_XSLT_LIBDIR}) | ||
| 27 | |||
| 28 | set(XSLT_VERSION ${PC_XSLT_VERSION}) | ||
| 29 | |||
| 30 | include(FindPackageHandleStandardArgs) | ||
| 31 | find_package_handle_standard_args(XSLT | ||
| 32 | REQUIRED_VARS XSLT_LIBRARY XSLT_INCLUDE_DIR | ||
| 33 | VERSION_VAR XSLT_VERSION) | ||
| 34 | |||
| 35 | if(XSLT_FOUND) | ||
| 36 | set(XSLT_LIBRARIES ${XSLT_LIBRARY} ${LIBXML2_LIBRARIES}) | ||
| 37 | set(XSLT_INCLUDE_DIRS ${XSLT_INCLUDE_DIR} ${LIBXML2_INCLUDE_DIR}) | ||
| 38 | set(XSLT_DEFINITIONS -DHAVE_LIBXSLT=1) | ||
| 39 | |||
| 40 | if(NOT TARGET XSLT::XSLT) | ||
| 41 | add_library(XSLT::XSLT UNKNOWN IMPORTED) | ||
| 42 | set_target_properties(XSLT::XSLT PROPERTIES | ||
| 43 | IMPORTED_LOCATION "${XSLT_LIBRARY}" | ||
| 44 | INTERFACE_INCLUDE_DIRECTORIES "${XSLT_INCLUDE_DIR} ${LIBXML2_INCLUDE_DIR}" | ||
| 45 | INTERFACE_COMPILE_DEFINITIONS HAVE_LIBXSLT=1 | ||
| 46 | ITERFACE_LINK_LIBRARIES "${LIBXML2_LIBRARIES}") | ||
| 47 | endif() | ||
| 48 | endif() | ||
| 49 | |||
| 50 | mark_as_advanced(XSLT_INCLUDE_DIR XSLT_LIBRARY) | ||
diff --git a/project/cmake/modules/FindXslt.cmake b/project/cmake/modules/FindXslt.cmake deleted file mode 100644 index 442ba43..0000000 --- a/project/cmake/modules/FindXslt.cmake +++ /dev/null | |||
| @@ -1,18 +0,0 @@ | |||
| 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 | |||
| 8 | if(PKG_CONFIG_FOUND) | ||
| 9 | pkg_check_modules (XSLT libxslt) | ||
| 10 | else() | ||
| 11 | find_path(XSLT_INCLUDE_DIRS libxslt/xslt.h) | ||
| 12 | find_library(XSLT_LIBRARIES NAMES xslt libxslt) | ||
| 13 | endif() | ||
| 14 | |||
| 15 | include(FindPackageHandleStandardArgs) | ||
| 16 | find_package_handle_standard_args(Xslt DEFAULT_MSG XSLT_INCLUDE_DIRS XSLT_LIBRARIES) | ||
| 17 | |||
| 18 | mark_as_advanced(XSLT_INCLUDE_DIRS XSLT_LIBRARIES) | ||
diff --git a/project/cmake/modules/FindYajl.cmake b/project/cmake/modules/FindYajl.cmake index c27b03a..c73a67b 100644 --- a/project/cmake/modules/FindYajl.cmake +++ b/project/cmake/modules/FindYajl.cmake | |||
| @@ -1,27 +1,62 @@ | |||
| 1 | # Base Io build system | 1 | #.rst: |
| 2 | # Written by Jeremy Tregunna <jeremy.tregunna@me.com> | 2 | # FindYajl |
| 3 | # -------- | ||
| 4 | # Finds the Yajl library | ||
| 3 | # | 5 | # |
| 4 | # Find libyajl | 6 | # This will will define the following variables:: |
| 5 | pkg_check_modules(YAJL yajl>=2.0) | 7 | # |
| 6 | if(YAJL_FOUND) | 8 | # YAJL_FOUND - system has Yajl |
| 7 | list(APPEND YAJL_DEFINITIONS -DYAJL_MAJOR=2) | 9 | # YAJL_INCLUDE_DIRS - Yajl include directory |
| 10 | # YAJL_LIBRARIES - the Yajl libraries | ||
| 11 | # | ||
| 12 | # and the following imported targets:: | ||
| 13 | # | ||
| 14 | # Yajl::Yajl - The Yajl library | ||
| 15 | |||
| 16 | if(NOT Yajl_FIND_VERSION) | ||
| 17 | set(Yajl_FIND_VERSION 2.0.0) | ||
| 18 | endif() | ||
| 19 | |||
| 20 | if(PKG_CONFIG_FOUND) | ||
| 21 | pkg_check_modules(PC_YAJL yajl>=${Yajl_FIND_VERSION} QUIET) | ||
| 8 | endif() | 22 | endif() |
| 9 | 23 | ||
| 10 | if(NOT YAJL_FOUND) | 24 | find_path(YAJL_INCLUDE_DIR NAMES yajl/yajl_common.h |
| 11 | find_path(YAJL_INCLUDE_DIRS yajl/yajl_common.h) | 25 | PATHS ${PC_YAJL_INCLUDEDIR}) |
| 12 | find_library(YAJL_LIBRARIES NAMES yajl) | 26 | find_library(YAJL_LIBRARY NAMES yajl |
| 27 | PATHS ${PC_YAJL_LIBDIR}) | ||
| 13 | 28 | ||
| 14 | file(STRINGS ${YAJL_INCLUDE_DIRS}/yajl/yajl_version.h version_header) | 29 | if(PC_YAJL_VERSION) |
| 15 | string(REGEX MATCH "YAJL_MAJOR ([0-9]+)" YAJL_VERSION_MAJOR ${version_header}) | 30 | set(YAJL_VERSION_STRING ${PC_YAJL_VERSION}) |
| 31 | elseif(YAJL_INCLUDE_DIR AND EXISTS "${YAJL_INCLUDE_DIR}/yajl/yajl_version.h") | ||
| 32 | file(STRINGS "${YAJL_INCLUDE_DIR}/yajl/yajl_version.h" yajl_version_str REGEX "^[ \t]*#define[ \t]+YAJL_(MAJOR|MINOR|MICRO)") | ||
| 16 | string(REGEX REPLACE "YAJL_MAJOR ([0-9]+)" "\\1" YAJL_VERSION_MAJOR "${YAJL_VERSION_MAJOR}") | 33 | string(REGEX REPLACE "YAJL_MAJOR ([0-9]+)" "\\1" YAJL_VERSION_MAJOR "${YAJL_VERSION_MAJOR}") |
| 17 | if (YAJL_VERSION_MINOR LESS 2) | 34 | |
| 18 | set(YAJL_INCLUDE_DIRS) | 35 | string(REGEX REPLACE ".*YAJL_MAJOR ([0-9]+).*" "\\1" yajl_major "${yajl_version_str}") |
| 19 | set(YALJ_LIBRARIES) | 36 | string(REGEX REPLACE ".*YAJL_MINOR ([0-9]+).*" "\\1" yajl_minor "${yajl_version_str}") |
| 20 | endif() | 37 | string(REGEX REPLACE ".*YAJL_MICRO ([0-9]+).*" "\\1" yajl_micro "${yajl_version_str}") |
| 21 | list(APPEND YAJL_DEFINITIONS -DYAJL_MAJOR=${YAJL_VERSION_MAJOR}) | 38 | set(YAJL_VERSION_STRING "${yajl_major}.${yajl_minor}.${yajl_micro}") |
| 39 | unset(yajl_version_str) | ||
| 40 | unset(yajl_major) | ||
| 41 | unset(yajl_minor) | ||
| 42 | unset(yajl_micro) | ||
| 22 | endif() | 43 | endif() |
| 23 | 44 | ||
| 24 | include(FindPackageHandleStandardArgs) | 45 | include(FindPackageHandleStandardArgs) |
| 25 | find_package_handle_standard_args(Yajl DEFAULT_MSG YAJL_INCLUDE_DIRS YAJL_LIBRARIES) | 46 | find_package_handle_standard_args(Yajl |
| 47 | REQUIRED_VARS YAJL_LIBRARY YAJL_INCLUDE_DIR | ||
| 48 | VERSION_VAR YAJL_VERSION_STRING) | ||
| 49 | |||
| 50 | if(YAJL_FOUND) | ||
| 51 | set(YAJL_INCLUDE_DIRS ${YAJL_INCLUDE_DIR}) | ||
| 52 | set(YAJL_LIBRARIES ${YAJL_LIBRARY}) | ||
| 53 | |||
| 54 | if(NOT TARGET Yajl::Yajl) | ||
| 55 | add_library(Yajl::Yajl UNKNOWN IMPORTED) | ||
| 56 | set_target_properties(Yajl::Yajl PROPERTIES | ||
| 57 | IMPORTED_LOCATION "${YAJL_LIBRARY}" | ||
| 58 | INTERFACE_INCLUDE_DIRECTORIES "${YAJL_INCLUDE_DIR}") | ||
| 59 | endif() | ||
| 60 | endif() | ||
| 26 | 61 | ||
| 27 | mark_as_advanced(YAJL_INCLUDE_DIRS YAJL_LIBRARIES YAJL_DEFINITIONS) | 62 | mark_as_advanced(YAJL_INCLUDE_DIR YAJL_LIBRARY) |
diff --git a/project/cmake/modules/LDGOLD.cmake b/project/cmake/modules/LDGOLD.cmake new file mode 100644 index 0000000..ad19c6b --- /dev/null +++ b/project/cmake/modules/LDGOLD.cmake | |||
| @@ -0,0 +1,45 @@ | |||
| 1 | option(ENABLE_LDGOLD "Use GNU gold linker" ON) | ||
| 2 | |||
| 3 | set(LDGOLD_FOUND FALSE) | ||
| 4 | if(ENABLE_LDGOLD) | ||
| 5 | execute_process(COMMAND ${CMAKE_C_COMPILER} -fuse-ld=gold -Wl,--version ERROR_QUIET OUTPUT_VARIABLE LD_VERSION) | ||
| 6 | if(LD_VERSION MATCHES "GNU gold") | ||
| 7 | set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=gold") | ||
| 8 | set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=gold") | ||
| 9 | set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=gold") | ||
| 10 | set(LDGOLD_FOUND TRUE) | ||
| 11 | message(STATUS "Linker: GNU gold") | ||
| 12 | else() | ||
| 13 | message(WARNING "GNU gold linker is not available, falling back to default system linker") | ||
| 14 | endif() | ||
| 15 | else() | ||
| 16 | message(STATUS "Linker: Default system linker") | ||
| 17 | endif() | ||
| 18 | |||
| 19 | set(DEFAULT_ENABLE_DEBUGFISSION FALSE) | ||
| 20 | if(CMAKE_BUILD_TYPE STREQUAL Debug OR | ||
| 21 | CMAKE_BUILD_TYPE STREQUAL RelWithDebInfo AND | ||
| 22 | LDGOLD_FOUND) | ||
| 23 | set(DEFAULT_ENABLE_DEBUGFISSION TRUE) | ||
| 24 | endif() | ||
| 25 | |||
| 26 | include(CMakeDependentOption) | ||
| 27 | cmake_dependent_option(ENABLE_DEBUGFISSION "Enable Debug Fission support" ON | ||
| 28 | "DEFAULT_ENABLE_DEBUGFISSION" OFF) | ||
| 29 | |||
| 30 | set(DEBUGFISSION_FOUND FALSE) | ||
| 31 | if(ENABLE_DEBUGFISSION) | ||
| 32 | include(TestCXXAcceptsFlag) | ||
| 33 | check_cxx_accepts_flag(-gsplit-dwarf CXX_ACCEPTS_GSPLIT_DWARF) | ||
| 34 | if(CXX_ACCEPTS_GSPLIT_DWARF) | ||
| 35 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -gsplit-dwarf") | ||
| 36 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -gsplit-dwarf") | ||
| 37 | set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--gdb-index") | ||
| 38 | set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--gdb-index") | ||
| 39 | set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--gdb-index") | ||
| 40 | set(DEBUGFISSION_FOUND TRUE) | ||
| 41 | message(STATUS "Debug Fission enabled") | ||
| 42 | else() | ||
| 43 | message(WARNING "Debug Fission is not available") | ||
| 44 | endif() | ||
| 45 | endif() | ||
diff --git a/project/cmake/modules/extra/ECMEnableSanitizers.cmake b/project/cmake/modules/extra/ECMEnableSanitizers.cmake new file mode 100644 index 0000000..aa7092d --- /dev/null +++ b/project/cmake/modules/extra/ECMEnableSanitizers.cmake | |||
| @@ -0,0 +1,149 @@ | |||
| 1 | #.rst: | ||
| 2 | # ECMEnableSanitizers | ||
| 3 | # ------------------- | ||
| 4 | # | ||
| 5 | # Enable compiler sanitizer flags. | ||
| 6 | # | ||
| 7 | # The following sanitizers are supported: | ||
| 8 | # | ||
| 9 | # - Address Sanitizer | ||
| 10 | # - Memory Sanitizer | ||
| 11 | # - Thread Sanitizer | ||
| 12 | # - Leak Sanitizer | ||
| 13 | # - Undefined Behaviour Sanitizer | ||
| 14 | # | ||
| 15 | # All of them are implemented in Clang, depending on your version, and | ||
| 16 | # there is an work in progress in GCC, where some of them are currently | ||
| 17 | # implemented. | ||
| 18 | # | ||
| 19 | # This module will check your current compiler version to see if it | ||
| 20 | # supports the sanitizers that you want to enable | ||
| 21 | # | ||
| 22 | # Usage | ||
| 23 | # ===== | ||
| 24 | # | ||
| 25 | # Simply add:: | ||
| 26 | # | ||
| 27 | # include(ECMEnableSanitizers) | ||
| 28 | # | ||
| 29 | # to your ``CMakeLists.txt``. Note that this module is included in | ||
| 30 | # KDECompilerSettings, so projects using that module do not need to also | ||
| 31 | # include this one. | ||
| 32 | # | ||
| 33 | # The sanitizers are not enabled by default. Instead, you must set | ||
| 34 | # ``ECM_ENABLE_SANITIZERS`` (either in your ``CMakeLists.txt`` or on the | ||
| 35 | # command line) to a semicolon-separated list of sanitizers you wish to enable. | ||
| 36 | # The options are: | ||
| 37 | # | ||
| 38 | # - address | ||
| 39 | # - memory | ||
| 40 | # - thread | ||
| 41 | # - leak | ||
| 42 | # - undefined | ||
| 43 | # | ||
| 44 | # The sanitizers "address", "memory" and "thread" are mutually exclusive. You | ||
| 45 | # cannot enable two of them in the same build. | ||
| 46 | # | ||
| 47 | # "leak" requires the "address" sanitizer. | ||
| 48 | # | ||
| 49 | # .. note:: | ||
| 50 | # | ||
| 51 | # To reduce the overhead induced by the instrumentation of the sanitizers, it | ||
| 52 | # is advised to enable compiler optimizations (``-O1`` or higher). | ||
| 53 | # | ||
| 54 | # Example | ||
| 55 | # ======= | ||
| 56 | # | ||
| 57 | # This is an example of usage:: | ||
| 58 | # | ||
| 59 | # mkdir build | ||
| 60 | # cd build | ||
| 61 | # cmake -DECM_ENABLE_SANITIZERS='address;leak;undefined' .. | ||
| 62 | # | ||
| 63 | # .. note:: | ||
| 64 | # | ||
| 65 | # Most of the sanitizers will require Clang. To enable it, use:: | ||
| 66 | # | ||
| 67 | # -DCMAKE_CXX_COMPILER=clang++ | ||
| 68 | # | ||
| 69 | # Since 1.3.0. | ||
| 70 | |||
| 71 | #============================================================================= | ||
| 72 | # Copyright 2014 Mathieu Tarral <mathieu.tarral@gmail.com> | ||
| 73 | # | ||
| 74 | # Distributed under the OSI-approved BSD License (the "License"); | ||
| 75 | # see accompanying file COPYING-CMAKE-SCRIPTS for details. | ||
| 76 | # | ||
| 77 | # This software is distributed WITHOUT ANY WARRANTY; without even the | ||
| 78 | # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||
| 79 | # See the License for more information. | ||
| 80 | #============================================================================= | ||
| 81 | # (To distribute this file outside of extra-cmake-modules, substitute the full | ||
| 82 | # License text for the above reference.) | ||
| 83 | |||
| 84 | # MACRO check_compiler_version | ||
| 85 | #----------------------------- | ||
| 86 | macro (check_compiler_version gcc_required_version clang_required_version) | ||
| 87 | if ( | ||
| 88 | ( | ||
| 89 | CMAKE_CXX_COMPILER_ID MATCHES "GNU" | ||
| 90 | AND | ||
| 91 | CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${gcc_required_version} | ||
| 92 | ) | ||
| 93 | OR | ||
| 94 | ( | ||
| 95 | CMAKE_CXX_COMPILER_ID MATCHES "Clang" | ||
| 96 | AND | ||
| 97 | CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${clang_required_version} | ||
| 98 | ) | ||
| 99 | ) | ||
| 100 | # error ! | ||
| 101 | message(FATAL_ERROR "You ask to enable the sanitizer ${CUR_SANITIZER}, | ||
| 102 | but your compiler ${CMAKE_CXX_COMPILER_ID} version ${CMAKE_CXX_COMPILER_VERSION} | ||
| 103 | does not support it ! | ||
| 104 | You should use at least GCC ${gcc_required_version} or Clang ${clang_required_version} | ||
| 105 | (99.99 means not implemented yet)") | ||
| 106 | endif () | ||
| 107 | endmacro () | ||
| 108 | |||
| 109 | # MACRO check_compiler_support | ||
| 110 | #------------------------------ | ||
| 111 | macro (enable_sanitizer_flags sanitize_option) | ||
| 112 | if (${sanitize_option} MATCHES "address") | ||
| 113 | check_compiler_version("4.8" "3.1") | ||
| 114 | set(XSAN_COMPILE_FLAGS "-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls") | ||
| 115 | set(XSAN_LINKER_FLAGS "asan") | ||
| 116 | elseif (${sanitize_option} MATCHES "thread") | ||
| 117 | check_compiler_version("4.8" "3.1") | ||
| 118 | set(XSAN_COMPILE_FLAGS "-fsanitize=thread") | ||
| 119 | set(XSAN_LINKER_FLAGS "tsan") | ||
| 120 | elseif (${sanitize_option} MATCHES "memory") | ||
| 121 | check_compiler_version("99.99" "3.1") | ||
| 122 | set(XSAN_COMPILE_FLAGS "-fsanitize=memory") | ||
| 123 | elseif (${sanitize_option} MATCHES "leak") | ||
| 124 | check_compiler_version("4.9" "3.4") | ||
| 125 | set(XSAN_COMPILE_FLAGS "-fsanitize=leak") | ||
| 126 | set(XSAN_LINKER_FLAGS "lsan") | ||
| 127 | elseif (${sanitize_option} MATCHES "undefined") | ||
| 128 | check_compiler_version("4.9" "3.1") | ||
| 129 | set(XSAN_COMPILE_FLAGS "-fsanitize=undefined -fno-omit-frame-pointer -fno-optimize-sibling-calls") | ||
| 130 | else () | ||
| 131 | message(FATAL_ERROR "Compiler sanitizer option \"${sanitize_option}\" not supported.") | ||
| 132 | endif () | ||
| 133 | endmacro () | ||
| 134 | |||
| 135 | # for each element of the ECM_ENABLE_SANITIZERS list | ||
| 136 | foreach ( CUR_SANITIZER ${ECM_ENABLE_SANITIZERS} ) | ||
| 137 | # lowercase filter | ||
| 138 | string(TOLOWER ${CUR_SANITIZER} CUR_SANITIZER) | ||
| 139 | # check option and enable appropriate flags | ||
| 140 | enable_sanitizer_flags ( ${CUR_SANITIZER} ) | ||
| 141 | set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${XSAN_COMPILE_FLAGS}" ) | ||
| 142 | if(CMAKE_CXX_COMPILER_ID MATCHES "GNU") | ||
| 143 | link_libraries(${XSAN_LINKER_FLAGS}) | ||
| 144 | endif() | ||
| 145 | if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") | ||
| 146 | string(REPLACE "-Wl,--no-undefined" "" CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}") | ||
| 147 | string(REPLACE "-Wl,--no-undefined" "" CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS}") | ||
| 148 | endif () | ||
| 149 | endforeach () | ||
