123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385 |
- diff --git a/CMakeLists.txt b/CMakeLists.txt
- index 606bf8e..0f78e48 100644
- --- a/CMakeLists.txt
- +++ b/CMakeLists.txt
- @@ -356,6 +356,8 @@ endif ( WIN32 )
- # Check for threads and math
- find_package ( Threads REQUIRED )
-
- +unset ( HAS_LIBM CACHE )
- +unset ( MATH_LIBRARY CACHE )
- find_library ( HAS_LIBM NAMES "m" )
- if ( HAS_LIBM )
- set ( MATH_LIBRARY "m" )
- diff --git a/cmake_admin/FindFLAC.cmake b/cmake_admin/FindFLAC.cmake
- deleted file mode 100644
- index 2de2f41..0000000
- --- a/cmake_admin/FindFLAC.cmake
- +++ /dev/null
- @@ -1,106 +0,0 @@
- -#[=======================================================================[.rst:
- -FindFLAC
- --------
- -
- -Finds the FLAC library.
- -
- -Imported Targets
- -^^^^^^^^^^^^^^^^
- -
- -This module provides the following imported targets, if found:
- -
- -``FLAC::FLAC``
- - The FLAC C library.
- -``FLAC::FLAC++``
- - The FLAC C++ library.
- -
- -Result Variables
- -^^^^^^^^^^^^^^^^
- -
- -This will define the following variables:
- -
- -``FLAC_FOUND``
- - True if both libraries were found.
- -``FLAC_FLAC_FOUND``
- - True if the C library was found.
- -``FLAC_FLAC++_FOUND``
- - True if the C++ library was found..
- -
- -#]=======================================================================]
- -
- -# Use pkg-config if available
- -find_package(PkgConfig QUIET)
- -pkg_check_modules(PC_FLAC QUIET flac)
- -pkg_check_modules(PC_FLAC++ QUIET flac++)
- -
- -# Find the headers and libraries
- -find_path(
- - FLAC_INCLUDE_DIR
- - NAMES "FLAC/all.h"
- - HINTS "PC_FLAC_INCLUDEDIR")
- -
- -find_path(
- - FLAC++_INCLUDE_DIR
- - NAMES "FLAC++/all.h"
- - HINTS "PC_FLAC++_INCLUDEDIR")
- -
- -find_library(
- - FLAC_LIBRARY
- - NAMES "FLAC"
- - HINTS "${PC_FLAC_LIBDIR}")
- -
- -find_library(
- - FLAC++_LIBRARY
- - NAMES "FLAC++"
- - HINTS "${PC_FLAC++_LIBDIR}")
- -
- -# Handle transitive dependencies
- -if(PC_FLAC_FOUND)
- - get_target_properties_from_pkg_config("${FLAC_LIBRARY}" "PC_FLAC" "_flac")
- -else()
- - if(NOT TARGET "Ogg::ogg")
- - find_package(Ogg QUIET)
- - endif()
- - set(_flac_link_libraries "Ogg::ogg" ${MATH_LIBRARY})
- -endif()
- -
- -if(PC_FLAC++_FOUND)
- - get_target_properties_from_pkg_config("${FLAC++_LIBRARY}" "PC_FLAC++"
- - "_flac++")
- -else()
- - set(_flac++_link_libraries "FLAC::FLAC")
- -endif()
- -
- -# Forward the result to CMake
- -include(FindPackageHandleStandardArgs)
- -find_package_handle_standard_args(
- - FLAC REQUIRED_VARS "FLAC_LIBRARY" "FLAC_INCLUDE_DIR" "FLAC++_LIBRARY"
- - "FLAC++_INCLUDE_DIR")
- -
- -# Create the target
- -if(FLAC_FOUND AND NOT TARGET FLAC::FLAC)
- - add_library(FLAC::FLAC UNKNOWN IMPORTED)
- - set_target_properties(
- - FLAC::FLAC
- - PROPERTIES IMPORTED_LOCATION "${FLAC_LIBRARY}"
- - INTERFACE_COMPILE_OPTIONS "${_flac_compile_options}"
- - INTERFACE_INCLUDE_DIRECTORIES "${FLAC_INCLUDE_DIR}"
- - INTERFACE_LINK_LIBRARIES "${_flac_link_libraries}"
- - INTERFACE_LINK_DIRECTORIES "${_flac_link_directories}")
- - set(FLAC_FLAC_FOUND TRUE)
- -endif()
- -
- -if(FLAC_FOUND AND NOT TARGET FLAC::FLAC++)
- - add_library(FLAC::FLAC++ UNKNOWN IMPORTED)
- - set_target_properties(
- - FLAC::FLAC++
- - PROPERTIES IMPORTED_LOCATION "${FLAC++_LIBRARY}"
- - INTERFACE_COMPILE_OPTIONS "${_flac++_compile_options}"
- - INTERFACE_INCLUDE_DIRECTORIES "${FLAC++_INCLUDE_DIR}"
- - INTERFACE_LINK_LIBRARIES "${_flac++_link_libraries}"
- - INTERFACE_LINK_DIRECTORIES "${_flac++_link_directories}")
- - set(FLAC_FLAC++_FOUND TRUE)
- -endif()
- -
- -mark_as_advanced(FLAC_LIBRARY FLAC_INCLUDE_DIR FLAC++_LIBRARY
- - FLAC++_INCLUDE_DIR)
- diff --git a/cmake_admin/FindGLib2.cmake b/cmake_admin/FindGLib2.cmake
- index f6fa6f1..e29d4b1 100644
- --- a/cmake_admin/FindGLib2.cmake
- +++ b/cmake_admin/FindGLib2.cmake
- @@ -108,6 +108,24 @@ if(GLib2_glib-2_LIBRARY AND NOT TARGET GLib2::glib-2)
- if(PC_GLIB2_FOUND)
- get_target_properties_from_pkg_config("${GLib2_glib-2_LIBRARY}" "PC_GLIB2"
- "_glib2")
- +
- + find_library(
- + Intl_LIBRARY
- + NAMES "intl")
- + if(NOT "${Intl_LIBRARY}" STREQUAL "Intl_LIBRARY-NOTFOUND")
- + get_filename_component(_intl_path "${Intl_LIBRARY}" DIRECTORY)
- + list(APPEND _glib2_link_directories "${_intl_path}")
- + list(APPEND _glib2_link_libraries "intl")
- + endif()
- +
- + find_library(
- + Iconv_LIBRARY
- + NAMES "iconv")
- + if(NOT "${Iconv_LIBRARY}" STREQUAL "Iconv_LIBRARY-NOTFOUND")
- + get_filename_component(_iconv_path "${Iconv_LIBRARY}" DIRECTORY)
- + list(APPEND _glib2_link_directories "${_iconv_path}")
- + list(APPEND _glib2_link_libraries "iconv")
- + endif()
- else()
- find_package(Intl QUIET)
- find_package(Iconv QUIET)
- @@ -118,35 +136,14 @@ if(GLib2_glib-2_LIBRARY AND NOT TARGET GLib2::glib-2)
- list(APPEND _glib2_link_libraries "Threads::Threads")
- endif()
- list(APPEND _glib2_link_libraries ${MATH_LIBRARY})
- -
- - # Glib can link to either PCRE 1 or 2
- - find_library(
- - _pcre2_8bit_library
- - NAMES "pcre2-8"
- - HINTS "${PC_GLIB2_LIBDIR}")
- - if(_pcre2_8bit_library)
- - include(CheckCSourceCompiles)
- - set(_backup_includes ${CMAKE_REQUIRED_INCLUDES})
- - set(_backup_libraries ${CMAKE_REQUIRED_LIBRARIES})
- - set(_backup_libdir ${CMAKE_REQUIRED_LIBRARIES})
- - set(CMAKE_REQUIRED_INCLUDES "${GLib2_INCLUDE_DIRS}")
- - set(CMAKE_REQUIRED_LIBRARIES
- - "${GLib2_glib-2_LIBRARY}" "${_glib2_link_libraries}"
- - "${_pcre2_8bit_library}")
- - check_c_source_compiles(
- - "#include <glib.h>
- - int main(){
- - g_regex_error_quark();
- - }"
- - GLIB2_USES_PCRE2)
- - set(CMAKE_REQUIRED_INCLUDES ${_backup_includes})
- - set(CMAKE_REQUIRED_LIBRARIES ${_backup_libraries})
- - endif()
- - if(GLIB2_USES_PCRE2)
- - list(APPEND _glib2_link_libraries "${_pcre2_8bit_library}")
- - else()
- - list(APPEND _glib2_link_libraries "pcre")
- - endif()
- + endif()
- + find_library(
- + Pcre_LIBRARY
- + NAMES "pcre2-8")
- + if(NOT "${Pcre_LIBRARY}" STREQUAL "Pcre_LIBRARY-NOTFOUND")
- + get_filename_component(_pcre_path "${Pcre_LIBRARY}" DIRECTORY)
- + list(APPEND _glib2_link_directories "${_pcre_path}")
- + list(APPEND _glib2_link_libraries "pcre2-8")
- endif()
-
- # pkg_check_modules consider these as LDFLAGS_OTHER rather instead of
- diff --git a/cmake_admin/FindSndFile.cmake b/cmake_admin/FindSndFile.cmake
- deleted file mode 100644
- index 271bb06..0000000
- --- a/cmake_admin/FindSndFile.cmake
- +++ /dev/null
- @@ -1,181 +0,0 @@
- -#[=======================================================================[.rst:
- -FindSndFile
- --------
- -
- -Finds the SndFile library.
- -
- -Imported Targets
- -^^^^^^^^^^^^^^^^
- -
- -This module provides the following imported targets, if found:
- -
- -``SndFile::sndfile``
- - The SndFile library
- -
- -Result Variables
- -^^^^^^^^^^^^^^^^
- -
- -This will define the following variables:
- -
- -``SndFile_FOUND``
- - True if the system has the SndFile library.
- -``SndFile_VERSION``
- - The version of the SndFile library which was found.
- -``SndFile_WITH_EXTERNAL_LIBS``
- - True if the library was built with Xiph codecs.
- -
- -For compatibility with upstream, the following variables are also set:
- -
- -``SndFile_WITH_MPEG``
- -``SndFile_VERSION_MAJOR``
- -``SndFile_VERSION_MINOR``
- -``SndFile_VERSION_PATCH``
- -``SndFile_LIBRARY``
- -``SndFile_LIBRARIES``
- -``SNDFILE_LIBRARY``
- -``SNDFILE_LIBRARIES``
- -``SNDFILE_INCLUDE_DIR``
- -
- -#]=======================================================================]
- -
- -# Use pkg-config if available
- -find_package(PkgConfig QUIET)
- -pkg_check_modules(PC_SNDFILE QUIET sndfile)
- -
- -# Find the headers and libraries
- -find_path(
- - SndFile_INCLUDE_DIR
- - NAMES "sndfile.h"
- - HINTS "${PC_SNDFILE_INCLUDEDIR}")
- -
- -find_library(
- - _sndfile_library
- - NAMES "sndfile" "sndfile-1"
- - HINTS "${PC_SNDFILE_LIBDIR}")
- -
- -# Get version from pkg-config or read the config header
- -if(PC_SNDFILE_VERSION)
- - set(SndFile_VERSION "${PC_SNDFILE_VERSION}")
- - string(REPLACE "." ";" _sndfile_version_list "${SndFile_VERSION}")
- - list(GET _sndfile_version_list 0 SndFile_VERSION_MAJOR)
- - list(GET _sndfile_version_list 1 SndFile_VERSION_MINOR)
- - list(GET _sndfile_version_list 2 SndFile_VERSION_PATCH)
- -elseif(SndFile_INCLUDE_DIR)
- - file(READ "${SndFile_INCLUDE_DIR}/sndfile.h" _sndfile_h)
- - if("#define SNDFILE_1" MATCHES _snfile_h)
- - set(SndFile_VERSION "1")
- - set(SndFile_VERSION_MAJOR "1")
- - endif()
- -endif()
- -
- -# Check the features SndFile was built with
- -# 2024-01-02: Recent versions of libsndfile don't seem to provide a pkgconfig file and older version who did are lacking private libraries like OGG.
- -if(FALSE) #PC_SNDFILE_FOUND
- - if("vorbis" IN_LIST PC_SNDFILE_STATIC_LIBRARIES)
- - set(SndFile_WITH_EXTERNAL_LIBS TRUE)
- - endif()
- - if("mpg123" IN_LIST PC_SNDFILE_STATIC_LIBRARIES)
- - set(SndFile_WITH_MPEG TRUE)
- - endif()
- -elseif(_sndfile_library)
- - # sndfile may need any of these libraries
- - find_package(Ogg 1.3 QUIET)
- - find_package(Vorbis QUIET)
- - find_package(FLAC QUIET)
- - find_package(Opus QUIET)
- - find_package(mp3lame QUIET)
- - find_package(mpg123 QUIET)
- -
- - if(NOT CMAKE_CROSSCOMPILING)
- - include(CheckSourceRuns)
- - set(_backup_includes ${CMAKE_REQUIRED_INCLUDES})
- - set(_backup_libraries ${CMAKE_REQUIRED_LIBRARIES})
- - set(CMAKE_REQUIRED_INCLUDES "${SndFile_INCLUDE_DIR}")
- - set(CMAKE_REQUIRED_LIBRARIES "${_sndfile_library}")
- -
- - set(_optional_libs "MPG123::libmpg123" "mp3lame::mp3lame" "FLAC::FLAC"
- - "Opus::opus" "Vorbis::vorbisenc" "Ogg::ogg")
- - foreach(_target ${_optional_libs})
- - if(TARGET "${_target}")
- - list(APPEND CMAKE_REQUIRED_LIBRARIES "${_target}")
- - endif()
- - endforeach()
- -
- - check_source_runs(
- - C
- - "#include <stdlib.h>
- -#include <sndfile.h>
- -int main() {
- - SF_FORMAT_INFO info = {SF_FORMAT_VORBIS};
- - sf_command(NULL, SFC_GET_FORMAT_INFO, &info, sizeof info);
- - return info.name != NULL ? EXIT_SUCCESS : EXIT_FAILURE;
- -}"
- - SNDFILE_SUPPORTS_VORBIS)
- -
- - check_source_runs(
- - C
- - "#include <stdlib.h>
- -#include <sndfile.h>
- -int main() {
- - SF_FORMAT_INFO info = {SF_FORMAT_MPEG_LAYER_III};
- - sf_command(NULL, SFC_GET_FORMAT_INFO, &info, sizeof info);
- - return info.name != NULL ? EXIT_SUCCESS : EXIT_FAILURE;
- -}"
- - SNDFILE_SUPPORTS_MPEG)
- -
- - set(SndFile_WITH_EXTERNAL_LIBS ${SNDFILE_SUPPORTS_VORBIS})
- - set(SndFile_WITH_MPEG ${SNDFILE_SUPPORTS_MPEG})
- - set(CMAKE_REQUIRED_INCLUDES ${_backup_includes})
- - set(CMAKE_REQUIRED_LIBRARIES ${_backup_libraries})
- - else()
- - message(
- - STATUS
- - "Cross-compiling without pkg-config - cannot check for external libraries."
- - "If you have the upstream CMake config set CMAKE_FIND_PACKAGE_PREFER_CONFIG to true for accurate results."
- - )
- - set(SndFile_WITH_EXTERNAL_LIBS FALSE)
- - set(SndFile_WITH_MPEG FALSE)
- - endif()
- -endif()
- -
- -# Handle transitive dependencies
- -if(PC_SNDFILE_FOUND)
- - get_target_properties_from_pkg_config("${_sndfile_library}" "PC_SNDFILE"
- - "_sndfile")
- -else()
- - if(SndFile_WITH_EXTERNAL_LIBS)
- - list(APPEND _sndfile_link_libraries "FLAC::FLAC" "Opus::opus"
- - "Vorbis::vorbisenc" "Ogg::ogg")
- - endif()
- - if(SndFile_WITH_MPEG)
- - list(APPEND _sndfile_link_libraries "MPG123::libmpg123" "mp3lame::mp3lame")
- - endif()
- -endif()
- -
- -# Forward the result to CMake
- -include(FindPackageHandleStandardArgs)
- -find_package_handle_standard_args(
- - SndFile
- - REQUIRED_VARS "_sndfile_library" "SndFile_INCLUDE_DIR"
- - VERSION_VAR "SndFile_VERSION")
- -
- -if(SndFile_FOUND AND NOT TARGET SndFile::sndfile)
- - add_library(SndFile::sndfile UNKNOWN IMPORTED)
- - set_target_properties(
- - SndFile::sndfile
- - PROPERTIES IMPORTED_LOCATION "${_sndfile_library}"
- - INTERFACE_COMPILE_OPTIONS "${_sndfile_compile_options}"
- - INTERFACE_INCLUDE_DIRECTORIES "${SndFile_INCLUDE_DIR}"
- - INTERFACE_LINK_LIBRARIES "${_sndfile_link_libraries}"
- - INTERFACE_LINK_DIRECTORIES "${_sndfile_link_directories}")
- -
- - # Set additional variables for compatibility with upstream config
- - set(SNDFILE_FOUND TRUE)
- - set(SndFile_LIBRARY SndFile::sndfile)
- - set(SndFile_LIBRARIES SndFile::sndfile)
- - set(SNDFILE_LIBRARY SndFile::sndfile)
- - set(SNDFILE_LIBRARIES SndFile::sndfile)
- - set(SNDFILE_INCLUDE_DIR "${SndFile_INCLUDE_DIR}")
- -endif()
- -
- -mark_as_advanced(_sndfile_library)
|