common 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. [settings]
  2. build_type=Release
  3. [platform_tool_requires]
  4. cmake/3.31.6
  5. ninja/1.12.1
  6. [replace_requires]
  7. # TODO: remove after https://github.com/conan-io/conan-center-index/pull/27125 is merged
  8. # Qt 5 depends on 0.4.8, but it doesn't build for iOS
  9. md4c/0.4.8: md4c/0.5.2
  10. [conf]
  11. tools.cmake.cmaketoolchain:generator=Ninja
  12. [options]
  13. # shared (dynamic) libs
  14. boost/*:shared=True
  15. bzip2/*:shared=True
  16. libiconv/*:shared=True
  17. libpng/*:shared=True
  18. minizip/*:shared=True
  19. ogg/*:shared=True
  20. opus/*:shared=True
  21. qt/*:shared=True
  22. sdl/*:shared=True
  23. sdl_image/*:shared=True
  24. sdl_mixer/*:shared=True
  25. sdl_ttf/*:shared=True
  26. xz_utils/*:shared=True
  27. zlib/*:shared=True
  28. # Boost
  29. # we need only the following parts:
  30. # date_time filesystem iostreams locale program_options system
  31. # some other parts are also enabled because they're dependents
  32. # see e.g. conan-center-index/recipes/boost/all/dependencies
  33. boost/*:without_context=True
  34. boost/*:without_contract=True
  35. boost/*:without_coroutine=True
  36. boost/*:without_fiber=True
  37. boost/*:without_graph=True
  38. boost/*:without_graph_parallel=True
  39. boost/*:without_json=True
  40. boost/*:without_log=True
  41. boost/*:without_math=True
  42. boost/*:without_mpi=True
  43. boost/*:without_nowide=True
  44. boost/*:without_process=True
  45. boost/*:without_python=True
  46. boost/*:without_serialization=True
  47. boost/*:without_stacktrace=True
  48. boost/*:without_test=True
  49. boost/*:without_timer=True
  50. boost/*:without_type_erasure=True
  51. boost/*:without_wave=True
  52. boost/*:without_url=True
  53. # FFmpeg
  54. ffmpeg/*:avcodec=True
  55. ffmpeg/*:avdevice=False
  56. ffmpeg/*:avfilter=False
  57. ffmpeg/*:avformat=True
  58. ffmpeg/*:postproc=False
  59. # for resampling of audio in 'planar' formats
  60. ffmpeg/*:swresample=True
  61. # for video scaling
  62. ffmpeg/*:swscale=True
  63. ffmpeg/*:disable_all_bitstream_filters=True
  64. ffmpeg/*:disable_all_decoders=True
  65. ffmpeg/*:disable_all_demuxers=True
  66. ffmpeg/*:disable_all_encoders=True
  67. ffmpeg/*:disable_all_filters=True
  68. ffmpeg/*:disable_all_hardware_accelerators=True
  69. ffmpeg/*:disable_all_muxers=True
  70. ffmpeg/*:disable_all_parsers=True
  71. ffmpeg/*:disable_all_protocols=True
  72. ffmpeg/*:with_asm=False
  73. ffmpeg/*:with_freetype=False
  74. ffmpeg/*:with_libaom=False
  75. ffmpeg/*:with_libdav1d=False
  76. ffmpeg/*:with_libfdk_aac=False
  77. ffmpeg/*:with_libiconv=False
  78. ffmpeg/*:with_libmp3lame=False
  79. ffmpeg/*:with_libsvtav1=False
  80. ffmpeg/*:with_libvpx=False
  81. ffmpeg/*:with_libwebp=False
  82. ffmpeg/*:with_libx264=False
  83. ffmpeg/*:with_libx265=False
  84. ffmpeg/*:with_lzma=True
  85. ffmpeg/*:with_openh264=False
  86. ffmpeg/*:with_openjpeg=False
  87. ffmpeg/*:with_programs=False
  88. ffmpeg/*:with_sdl=False
  89. ffmpeg/*:with_ssl=False
  90. ffmpeg/*:with_vorbis=False
  91. # We want following options supported:
  92. # H3:SoD - .bik and .smk
  93. # H3:HD - ogg container / theora video / vorbis sound (not supported by VCMI at the moment, but might be supported in future)
  94. # and for mods - webm container / vp8 or vp9 video / opus sound
  95. # TODO: add av1 support for mods (requires enabling libdav1d)
  96. {% set ffDecoders = [
  97. 'bink',
  98. 'binkaudio_dct',
  99. 'binkaudio_rdft',
  100. 'opus',
  101. 'smackaud',
  102. 'smacker',
  103. 'theora',
  104. 'vorbis',
  105. 'vp8',
  106. 'vp9',
  107. ] %}
  108. {% set ffDemuxers = [
  109. 'bink',
  110. 'binka',
  111. 'ogg',
  112. 'smacker',
  113. 'webm_dash_manifest',
  114. ] %}
  115. {% set ffParsers = [
  116. 'opus',
  117. 'vorbis',
  118. 'vp8',
  119. 'vp9',
  120. 'webp',
  121. ] %}
  122. {% set ffProtocols = [
  123. 'file',
  124. ] %}
  125. ffmpeg/*:enable_decoders={{ ffDecoders|join(',') }}
  126. ffmpeg/*:enable_demuxers={{ ffDemuxers|join(',') }}
  127. ffmpeg/*:enable_parsers={{ ffParsers|join(',') }}
  128. ffmpeg/*:enable_protocols={{ ffProtocols|join(',') }}
  129. # optionally, for testing - enable ffplay/ffprobe binaries:
  130. # ffmpeg/*:avfilter=True
  131. # ffmpeg/*:enable_filters=aresample,scale
  132. # ffmpeg/*:with_programs=True
  133. # ffmpeg/*:with_sdl=True
  134. # oneTBB
  135. onetbb/*:tbbbind=False
  136. onetbb/*:tbbmalloc=False
  137. onetbb/*:tbbproxy=False
  138. # Qt
  139. # xpm format is required for Drag'n'Drop support
  140. # we need only win/macdeployqt
  141. # TODO: disabling these doesn't disable generation of CMake targets
  142. # TODO: in Qt 6.3 it's a part of qtbase
  143. # '-no-feature-assistant',
  144. # '-no-feature-designer',
  145. # '-no-feature-distancefieldgenerator',
  146. # '-no-feature-kmap2qmap',
  147. # '-no-feature-linguist',
  148. # '-no-feature-makeqpf',
  149. # '-no-feature-pixeltool',
  150. # '-no-feature-qdbus',
  151. # '-no-feature-qev',
  152. # '-no-feature-qtattributionsscanner',
  153. # '-no-feature-qtdiag',
  154. # '-no-feature-qtpaths',
  155. # '-no-feature-qtplugininfo',
  156. {% set qtConfig = [
  157. '-no-gif',
  158. '-no-ico',
  159. '-no-feature-imageformat_bmp',
  160. '-no-feature-imageformat_jpeg',
  161. '-no-feature-imageformat_ppm',
  162. '-no-feature-imageformat_xbm',
  163. ] %}
  164. qt/*:config={{ qtConfig|join(' ') }}
  165. qt/*:essential_modules=False
  166. qt/*:openssl=True
  167. qt/*:qttools=True
  168. qt/*:with_freetype=False
  169. qt/*:with_libjpeg=False
  170. qt/*:with_mysql=False
  171. qt/*:with_odbc=False
  172. qt/*:with_openal=False
  173. qt/*:with_pq=False
  174. # SDL
  175. sdl/*:iconv=True
  176. sdl/*:sdl2main=True
  177. sdl/*:vulkan=False
  178. # SDL_image
  179. # bmp, png are the only ones that needs to be supported
  180. # dds support may be useful for HD edition, but not supported by sdl_image at the moment
  181. sdl_image/*:gif=False
  182. sdl_image/*:lbm=False
  183. sdl_image/*:pcx=False
  184. sdl_image/*:pnm=False
  185. sdl_image/*:qoi=False
  186. sdl_image/*:svg=False
  187. sdl_image/*:tga=False
  188. sdl_image/*:with_libjpeg=False
  189. sdl_image/*:with_libtiff=False
  190. sdl_image/*:with_libwebp=False
  191. sdl_image/*:xcf=False
  192. sdl_image/*:xpm=False
  193. sdl_image/*:xv=False
  194. # SDL_mixer
  195. # mp3, ogg and wav are the only ones that needs to be supported, flac is a bonus
  196. sdl_mixer/*:mad=False
  197. sdl_mixer/*:mikmod=False
  198. sdl_mixer/*:modplug=False
  199. sdl_mixer/*:nativemidi=False
  200. sdl_mixer/*:tinymidi=False
  201. # transitive deps, stuff that's not needed
  202. # doesn't link to bzip2 & zlib from "system" recipes
  203. pcre2/*:build_pcre2grep=False
  204. sqlite3/*:build_executable=False
  205. opusfile/*:http=False
  206. zstd/*:build_programs=False