find-intl.patch 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384
  1. diff --git a/CMakeLists.txt b/CMakeLists.txt
  2. index 986b594..77e6d2b 100644
  3. --- a/CMakeLists.txt
  4. +++ b/CMakeLists.txt
  5. @@ -356,6 +356,8 @@ endif ( WIN32 )
  6. # Check for threads and math
  7. find_package ( Threads REQUIRED )
  8. +unset ( HAS_LIBM CACHE )
  9. +unset ( MATH_LIBRARY CACHE )
  10. find_library ( HAS_LIBM NAMES "m" )
  11. if ( HAS_LIBM )
  12. set ( MATH_LIBRARY "m" )
  13. diff --git a/cmake_admin/FindFLAC.cmake b/cmake_admin/FindFLAC.cmake
  14. deleted file mode 100644
  15. index 2de2f41..0000000
  16. --- a/cmake_admin/FindFLAC.cmake
  17. +++ /dev/null
  18. @@ -1,106 +0,0 @@
  19. -#[=======================================================================[.rst:
  20. -FindFLAC
  21. --------
  22. -
  23. -Finds the FLAC library.
  24. -
  25. -Imported Targets
  26. -^^^^^^^^^^^^^^^^
  27. -
  28. -This module provides the following imported targets, if found:
  29. -
  30. -``FLAC::FLAC``
  31. - The FLAC C library.
  32. -``FLAC::FLAC++``
  33. - The FLAC C++ library.
  34. -
  35. -Result Variables
  36. -^^^^^^^^^^^^^^^^
  37. -
  38. -This will define the following variables:
  39. -
  40. -``FLAC_FOUND``
  41. - True if both libraries were found.
  42. -``FLAC_FLAC_FOUND``
  43. - True if the C library was found.
  44. -``FLAC_FLAC++_FOUND``
  45. - True if the C++ library was found..
  46. -
  47. -#]=======================================================================]
  48. -
  49. -# Use pkg-config if available
  50. -find_package(PkgConfig QUIET)
  51. -pkg_check_modules(PC_FLAC QUIET flac)
  52. -pkg_check_modules(PC_FLAC++ QUIET flac++)
  53. -
  54. -# Find the headers and libraries
  55. -find_path(
  56. - FLAC_INCLUDE_DIR
  57. - NAMES "FLAC/all.h"
  58. - HINTS "PC_FLAC_INCLUDEDIR")
  59. -
  60. -find_path(
  61. - FLAC++_INCLUDE_DIR
  62. - NAMES "FLAC++/all.h"
  63. - HINTS "PC_FLAC++_INCLUDEDIR")
  64. -
  65. -find_library(
  66. - FLAC_LIBRARY
  67. - NAMES "FLAC"
  68. - HINTS "${PC_FLAC_LIBDIR}")
  69. -
  70. -find_library(
  71. - FLAC++_LIBRARY
  72. - NAMES "FLAC++"
  73. - HINTS "${PC_FLAC++_LIBDIR}")
  74. -
  75. -# Handle transitive dependencies
  76. -if(PC_FLAC_FOUND)
  77. - get_target_properties_from_pkg_config("${FLAC_LIBRARY}" "PC_FLAC" "_flac")
  78. -else()
  79. - if(NOT TARGET "Ogg::ogg")
  80. - find_package(Ogg QUIET)
  81. - endif()
  82. - set(_flac_link_libraries "Ogg::ogg" ${MATH_LIBRARY})
  83. -endif()
  84. -
  85. -if(PC_FLAC++_FOUND)
  86. - get_target_properties_from_pkg_config("${FLAC++_LIBRARY}" "PC_FLAC++"
  87. - "_flac++")
  88. -else()
  89. - set(_flac++_link_libraries "FLAC::FLAC")
  90. -endif()
  91. -
  92. -# Forward the result to CMake
  93. -include(FindPackageHandleStandardArgs)
  94. -find_package_handle_standard_args(
  95. - FLAC REQUIRED_VARS "FLAC_LIBRARY" "FLAC_INCLUDE_DIR" "FLAC++_LIBRARY"
  96. - "FLAC++_INCLUDE_DIR")
  97. -
  98. -# Create the target
  99. -if(FLAC_FOUND AND NOT TARGET FLAC::FLAC)
  100. - add_library(FLAC::FLAC UNKNOWN IMPORTED)
  101. - set_target_properties(
  102. - FLAC::FLAC
  103. - PROPERTIES IMPORTED_LOCATION "${FLAC_LIBRARY}"
  104. - INTERFACE_COMPILE_OPTIONS "${_flac_compile_options}"
  105. - INTERFACE_INCLUDE_DIRECTORIES "${FLAC_INCLUDE_DIR}"
  106. - INTERFACE_LINK_LIBRARIES "${_flac_link_libraries}"
  107. - INTERFACE_LINK_DIRECTORIES "${_flac_link_directories}")
  108. - set(FLAC_FLAC_FOUND TRUE)
  109. -endif()
  110. -
  111. -if(FLAC_FOUND AND NOT TARGET FLAC::FLAC++)
  112. - add_library(FLAC::FLAC++ UNKNOWN IMPORTED)
  113. - set_target_properties(
  114. - FLAC::FLAC++
  115. - PROPERTIES IMPORTED_LOCATION "${FLAC++_LIBRARY}"
  116. - INTERFACE_COMPILE_OPTIONS "${_flac++_compile_options}"
  117. - INTERFACE_INCLUDE_DIRECTORIES "${FLAC++_INCLUDE_DIR}"
  118. - INTERFACE_LINK_LIBRARIES "${_flac++_link_libraries}"
  119. - INTERFACE_LINK_DIRECTORIES "${_flac++_link_directories}")
  120. - set(FLAC_FLAC++_FOUND TRUE)
  121. -endif()
  122. -
  123. -mark_as_advanced(FLAC_LIBRARY FLAC_INCLUDE_DIR FLAC++_LIBRARY
  124. - FLAC++_INCLUDE_DIR)
  125. diff --git a/cmake_admin/FindGLib2.cmake b/cmake_admin/FindGLib2.cmake
  126. index f6fa6f1..e29d4b1 100644
  127. --- a/cmake_admin/FindGLib2.cmake
  128. +++ b/cmake_admin/FindGLib2.cmake
  129. @@ -108,6 +108,24 @@ if(GLib2_glib-2_LIBRARY AND NOT TARGET GLib2::glib-2)
  130. if(PC_GLIB2_FOUND)
  131. get_target_properties_from_pkg_config("${GLib2_glib-2_LIBRARY}" "PC_GLIB2"
  132. "_glib2")
  133. +
  134. + find_library(
  135. + Intl_LIBRARY
  136. + NAMES "intl")
  137. + if(NOT "${Intl_LIBRARY}" STREQUAL "Intl_LIBRARY-NOTFOUND")
  138. + get_filename_component(_intl_path "${Intl_LIBRARY}" DIRECTORY)
  139. + list(APPEND _glib2_link_directories "${_intl_path}")
  140. + list(APPEND _glib2_link_libraries "intl")
  141. + endif()
  142. +
  143. + find_library(
  144. + Iconv_LIBRARY
  145. + NAMES "iconv")
  146. + if(NOT "${Iconv_LIBRARY}" STREQUAL "Iconv_LIBRARY-NOTFOUND")
  147. + get_filename_component(_iconv_path "${Iconv_LIBRARY}" DIRECTORY)
  148. + list(APPEND _glib2_link_directories "${_iconv_path}")
  149. + list(APPEND _glib2_link_libraries "iconv")
  150. + endif()
  151. else()
  152. find_package(Intl QUIET)
  153. find_package(Iconv QUIET)
  154. @@ -118,35 +136,14 @@ if(GLib2_glib-2_LIBRARY AND NOT TARGET GLib2::glib-2)
  155. list(APPEND _glib2_link_libraries "Threads::Threads")
  156. endif()
  157. list(APPEND _glib2_link_libraries ${MATH_LIBRARY})
  158. -
  159. - # Glib can link to either PCRE 1 or 2
  160. - find_library(
  161. - _pcre2_8bit_library
  162. - NAMES "pcre2-8"
  163. - HINTS "${PC_GLIB2_LIBDIR}")
  164. - if(_pcre2_8bit_library)
  165. - include(CheckCSourceCompiles)
  166. - set(_backup_includes ${CMAKE_REQUIRED_INCLUDES})
  167. - set(_backup_libraries ${CMAKE_REQUIRED_LIBRARIES})
  168. - set(_backup_libdir ${CMAKE_REQUIRED_LIBRARIES})
  169. - set(CMAKE_REQUIRED_INCLUDES "${GLib2_INCLUDE_DIRS}")
  170. - set(CMAKE_REQUIRED_LIBRARIES
  171. - "${GLib2_glib-2_LIBRARY}" "${_glib2_link_libraries}"
  172. - "${_pcre2_8bit_library}")
  173. - check_c_source_compiles(
  174. - "#include <glib.h>
  175. - int main(){
  176. - g_regex_error_quark();
  177. - }"
  178. - GLIB2_USES_PCRE2)
  179. - set(CMAKE_REQUIRED_INCLUDES ${_backup_includes})
  180. - set(CMAKE_REQUIRED_LIBRARIES ${_backup_libraries})
  181. - endif()
  182. - if(GLIB2_USES_PCRE2)
  183. - list(APPEND _glib2_link_libraries "${_pcre2_8bit_library}")
  184. - else()
  185. - list(APPEND _glib2_link_libraries "pcre")
  186. - endif()
  187. + endif()
  188. + find_library(
  189. + Pcre_LIBRARY
  190. + NAMES "pcre2-8")
  191. + if(NOT "${Pcre_LIBRARY}" STREQUAL "Pcre_LIBRARY-NOTFOUND")
  192. + get_filename_component(_pcre_path "${Pcre_LIBRARY}" DIRECTORY)
  193. + list(APPEND _glib2_link_directories "${_pcre_path}")
  194. + list(APPEND _glib2_link_libraries "pcre2-8")
  195. endif()
  196. # pkg_check_modules consider these as LDFLAGS_OTHER rather instead of
  197. diff --git a/cmake_admin/FindSndFile.cmake b/cmake_admin/FindSndFile.cmake
  198. deleted file mode 100644
  199. index d77333b..0000000
  200. --- a/cmake_admin/FindSndFile.cmake
  201. +++ /dev/null
  202. @@ -1,180 +0,0 @@
  203. -#[=======================================================================[.rst:
  204. -FindSndFile
  205. --------
  206. -
  207. -Finds the SndFile library.
  208. -
  209. -Imported Targets
  210. -^^^^^^^^^^^^^^^^
  211. -
  212. -This module provides the following imported targets, if found:
  213. -
  214. -``SndFile::sndfile``
  215. - The SndFile library
  216. -
  217. -Result Variables
  218. -^^^^^^^^^^^^^^^^
  219. -
  220. -This will define the following variables:
  221. -
  222. -``SndFile_FOUND``
  223. - True if the system has the SndFile library.
  224. -``SndFile_VERSION``
  225. - The version of the SndFile library which was found.
  226. -``SndFile_WITH_EXTERNAL_LIBS``
  227. - True if the library was built with Xiph codecs.
  228. -
  229. -For compatibility with upstream, the following variables are also set:
  230. -
  231. -``SndFile_WITH_MPEG``
  232. -``SndFile_VERSION_MAJOR``
  233. -``SndFile_VERSION_MINOR``
  234. -``SndFile_VERSION_PATCH``
  235. -``SndFile_LIBRARY``
  236. -``SndFile_LIBRARIES``
  237. -``SNDFILE_LIBRARY``
  238. -``SNDFILE_LIBRARIES``
  239. -``SNDFILE_INCLUDE_DIR``
  240. -
  241. -#]=======================================================================]
  242. -
  243. -# Use pkg-config if available
  244. -find_package(PkgConfig QUIET)
  245. -pkg_check_modules(PC_SNDFILE QUIET sndfile)
  246. -
  247. -# Find the headers and libraries
  248. -find_path(
  249. - SndFile_INCLUDE_DIR
  250. - NAMES "sndfile.h"
  251. - HINTS "${PC_SNDFILE_INCLUDEDIR}")
  252. -
  253. -find_library(
  254. - _sndfile_library
  255. - NAMES "sndfile"
  256. - HINTS "${PC_SNDFILE_LIBDIR}")
  257. -
  258. -# Get version from pkg-config or read the config header
  259. -if(PC_SNDFILE_VERSION)
  260. - set(SndFile_VERSION "${PC_SNDFILE_VERSION}")
  261. - string(REPLACE "." ";" _sndfile_version_list "${SndFile_VERSION}")
  262. - list(GET _sndfile_version_list 0 SndFile_VERSION_MAJOR)
  263. - list(GET _sndfile_version_list 1 SndFile_VERSION_MINOR)
  264. - list(GET _sndfile_version_list 2 SndFile_VERSION_PATCH)
  265. -elseif(SndFile_INCLUDE_DIR)
  266. - file(READ "${SndFile_INCLUDE_DIR}/sndfile.h" _sndfile_h)
  267. - if("#define SNDFILE_1" MATCHES _snfile_h)
  268. - set(SndFile_VERSION "1")
  269. - set(SndFile_VERSION_MAJOR "1")
  270. - endif()
  271. -endif()
  272. -
  273. -# Check the features SndFile was built with
  274. -if(PC_SNDFILE_FOUND)
  275. - if("vorbis" IN_LIST PC_SNDFILE_STATIC_LIBRARIES)
  276. - set(SndFile_WITH_EXTERNAL_LIBS TRUE)
  277. - endif()
  278. - if("mpg123" IN_LIST PC_SNDFILE_STATIC_LIBRARIES)
  279. - set(SndFile_WITH_MPEG TRUE)
  280. - endif()
  281. -elseif(_sndfile_library)
  282. - # sndfile may need any of these libraries
  283. - find_package(Ogg 1.3 QUIET)
  284. - find_package(Vorbis QUIET)
  285. - find_package(FLAC QUIET)
  286. - find_package(Opus QUIET)
  287. - find_package(mp3lame QUIET)
  288. - find_package(mpg123 QUIET)
  289. -
  290. - if(NOT CMAKE_CROSSCOMPILING)
  291. - include(CheckSourceRuns)
  292. - set(_backup_includes ${CMAKE_REQUIRED_INCLUDES})
  293. - set(_backup_libraries ${CMAKE_REQUIRED_LIBRARIES})
  294. - set(CMAKE_REQUIRED_INCLUDES "${SndFile_INCLUDE_DIR}")
  295. - set(CMAKE_REQUIRED_LIBRARIES "${_sndfile_library}")
  296. -
  297. - set(_optional_libs "MPG123::libmpg123" "mp3lame::mp3lame" "FLAC::FLAC"
  298. - "Opus::opus" "Vorbis::vorbisenc" "Ogg::ogg")
  299. - foreach(_target ${_optional_libs})
  300. - if(TARGET "${_target}")
  301. - list(APPEND CMAKE_REQUIRED_LIBRARIES "${_target}")
  302. - endif()
  303. - endforeach()
  304. -
  305. - check_source_runs(
  306. - C
  307. - "#include <stdlib.h>
  308. -#include <sndfile.h>
  309. -int main() {
  310. - SF_FORMAT_INFO info = {SF_FORMAT_VORBIS};
  311. - sf_command(NULL, SFC_GET_FORMAT_INFO, &info, sizeof info);
  312. - return info.name != NULL ? EXIT_SUCCESS : EXIT_FAILURE;
  313. -}"
  314. - SNDFILE_SUPPORTS_VORBIS)
  315. -
  316. - check_source_runs(
  317. - C
  318. - "#include <stdlib.h>
  319. -#include <sndfile.h>
  320. -int main() {
  321. - SF_FORMAT_INFO info = {SF_FORMAT_MPEG_LAYER_III};
  322. - sf_command(NULL, SFC_GET_FORMAT_INFO, &info, sizeof info);
  323. - return info.name != NULL ? EXIT_SUCCESS : EXIT_FAILURE;
  324. -}"
  325. - SNDFILE_SUPPORTS_MPEG)
  326. -
  327. - set(SndFile_WITH_EXTERNAL_LIBS ${SNDFILE_SUPPORTS_VORBIS})
  328. - set(SndFile_WITH_MPEG ${SNDFILE_SUPPORTS_MPEG})
  329. - set(CMAKE_REQUIRED_INCLUDES ${_backup_includes})
  330. - set(CMAKE_REQUIRED_LIBRARIES ${_backup_libraries})
  331. - else()
  332. - message(
  333. - STATUS
  334. - "Cross-compiling without pkg-config - cannot check for external libraries."
  335. - "If you have the upstream CMake config set CMAKE_FIND_PACKAGE_PREFER_CONFIG to true for accurate results."
  336. - )
  337. - set(SndFile_WITH_EXTERNAL_LIBS FALSE)
  338. - set(SndFile_WITH_MPEG FALSE)
  339. - endif()
  340. -endif()
  341. -
  342. -# Handle transitive dependencies
  343. -if(PC_SNDFILE_FOUND)
  344. - get_target_properties_from_pkg_config("${_sndfile_library}" "PC_SNDFILE"
  345. - "_sndfile")
  346. -else()
  347. - if(SndFile_WITH_EXTERNAL_LIBS)
  348. - list(APPEND _sndfile_link_libraries "FLAC::FLAC" "Opus::opus"
  349. - "Vorbis::vorbisenc" "Ogg::ogg")
  350. - endif()
  351. - if(SndFile_WITH_MPEG)
  352. - list(APPEND _sndfile_link_libraries "MPG123::libmpg123" "mp3lame::mp3lame")
  353. - endif()
  354. -endif()
  355. -
  356. -# Forward the result to CMake
  357. -include(FindPackageHandleStandardArgs)
  358. -find_package_handle_standard_args(
  359. - SndFile
  360. - REQUIRED_VARS "_sndfile_library" "SndFile_INCLUDE_DIR"
  361. - VERSION_VAR "SndFile_VERSION")
  362. -
  363. -if(SndFile_FOUND AND NOT TARGET SndFile::sndfile)
  364. - add_library(SndFile::sndfile UNKNOWN IMPORTED)
  365. - set_target_properties(
  366. - SndFile::sndfile
  367. - PROPERTIES IMPORTED_LOCATION "${_sndfile_library}"
  368. - INTERFACE_COMPILE_OPTIONS "${_sndfile_compile_options}"
  369. - INTERFACE_INCLUDE_DIRECTORIES "${SndFile_INCLUDE_DIR}"
  370. - INTERFACE_LINK_LIBRARIES "${_sndfile_link_libraries}"
  371. - INTERFACE_LINK_DIRECTORIES "${_sndfile_link_directories}")
  372. -
  373. - # Set additional variables for compatibility with upstream config
  374. - set(SNDFILE_FOUND TRUE)
  375. - set(SndFile_LIBRARY SndFile::sndfile)
  376. - set(SndFile_LIBRARIES SndFile::sndfile)
  377. - set(SNDFILE_LIBRARY SndFile::sndfile)
  378. - set(SNDFILE_LIBRARIES SndFile::sndfile)
  379. - set(SNDFILE_INCLUDE_DIR "${SndFile_INCLUDE_DIR}")
  380. -endif()
  381. -
  382. -mark_as_advanced(_sndfile_library)