| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197 | 
							- from conan import ConanFile
 
- from conan.tools.apple import is_apple_os
 
- from conan.tools.cmake import CMakeDeps
 
- from conans import tools
 
- import os
 
- class VCMI(ConanFile):
 
-     settings = "os", "compiler", "build_type", "arch"
 
-     generators = "CMakeToolchain"
 
-     requires = [
 
-         "boost/1.79.0",
 
-         "ffmpeg/4.4",
 
-         "minizip/1.2.12",
 
-         "onetbb/2021.3.0", # Nullkiller AI
 
-         "qt/5.15.5", # launcher
 
-         "sdl/2.0.20",
 
-         "sdl_image/2.0.5",
 
-         "sdl_mixer/2.0.4",
 
-         "sdl_ttf/2.0.18",
 
-     ]
 
-     def _disableQtOptions(disableFlag, options):
 
-         return " ".join([f"-{disableFlag}-{tool}" for tool in options])
 
-     _qtOptions = [
 
-         _disableQtOptions("no", [
 
-             "gif",
 
-             "ico",
 
-         ]),
 
-         _disableQtOptions("no-feature", [
 
-             # xpm format is required for Drag'n'Drop support
 
-             "imageformat_bmp",
 
-             "imageformat_jpeg",
 
-             "imageformat_ppm",
 
-             "imageformat_xbm",
 
-             # we need only macdeployqt
 
-             # TODO: disabling these doesn't disable generation of CMake targets
 
-             # TODO: in Qt 6.3 it's a part of qtbase
 
-             # "assistant",
 
-             # "designer",
 
-             # "distancefieldgenerator",
 
-             # "kmap2qmap",
 
-             # "linguist",
 
-             # "makeqpf",
 
-             # "pixeltool",
 
-             # "qdbus",
 
-             # "qev",
 
-             # "qtattributionsscanner",
 
-             # "qtdiag",
 
-             # "qtpaths",
 
-             # "qtplugininfo",
 
-         ]),
 
-     ]
 
-     default_options = {
 
-         # shared libs
 
-         "boost/*:shared": True,
 
-         "libpng/*:shared": True, # SDL_image and Qt depend on it
 
-         "minizip/*:shared": True,
 
-         "onetbb/*:shared": True,
 
-         "qt/*:shared": True,
 
-         # we need only the following Boost parts:
 
-         # date_time filesystem locale program_options system thread
 
-         # some other parts are also enabled because they're dependents
 
-         # see e.g. conan-center-index/recipes/boost/all/dependencies
 
-         "boost/*:without_context": True,
 
-         "boost/*:without_contract": True,
 
-         "boost/*:without_coroutine": True,
 
-         "boost/*:without_fiber": True,
 
-         "boost/*:without_graph": True,
 
-         "boost/*:without_graph_parallel": True,
 
-         "boost/*:without_iostreams": True,
 
-         "boost/*:without_json": True,
 
-         "boost/*:without_log": True,
 
-         "boost/*:without_math": True,
 
-         "boost/*:without_mpi": True,
 
-         "boost/*:without_nowide": True,
 
-         "boost/*:without_python": True,
 
-         "boost/*:without_random": True,
 
-         "boost/*:without_regex": True,
 
-         "boost/*:without_serialization": True,
 
-         "boost/*:without_stacktrace": True,
 
-         "boost/*:without_test": True,
 
-         "boost/*:without_timer": True,
 
-         "boost/*:without_type_erasure": True,
 
-         "boost/*:without_wave": True,
 
-         "ffmpeg/*:avdevice": False,
 
-         "ffmpeg/*:avfilter": False,
 
-         "ffmpeg/*:postproc": False,
 
-         "ffmpeg/*:swresample": False,
 
-         "ffmpeg/*:with_freetype": False,
 
-         "ffmpeg/*:with_libfdk_aac": False,
 
-         "ffmpeg/*:with_libmp3lame": False,
 
-         "ffmpeg/*:with_libvpx": False,
 
-         "ffmpeg/*:with_libwebp": False,
 
-         "ffmpeg/*:with_libx264": False,
 
-         "ffmpeg/*:with_libx265": False,
 
-         "ffmpeg/*:with_openh264": False,
 
-         "ffmpeg/*:with_openjpeg": False,
 
-         "ffmpeg/*:with_opus": False,
 
-         "ffmpeg/*:with_programs": False,
 
-         "ffmpeg/*:with_ssl": False,
 
-         "ffmpeg/*:with_vorbis": False,
 
-         "sdl/*:vulkan": False,
 
-         "sdl_image/*:imageio": True,
 
-         "sdl_image/*:lbm": False,
 
-         "sdl_image/*:pnm": False,
 
-         "sdl_image/*:svg": False,
 
-         "sdl_image/*:tga": False,
 
-         "sdl_image/*:with_libjpeg": False,
 
-         "sdl_image/*:with_libtiff": False,
 
-         "sdl_image/*:with_libwebp": False,
 
-         "sdl_image/*:xcf": False,
 
-         "sdl_image/*:xpm": False,
 
-         "sdl_image/*:xv": False,
 
-         "sdl_mixer/*:flac": False,
 
-         "sdl_mixer/*:mad": False,
 
-         "sdl_mixer/*:mikmod": False,
 
-         "sdl_mixer/*:modplug": False,
 
-         "sdl_mixer/*:nativemidi": False,
 
-         "sdl_mixer/*:opus": False,
 
-         "sdl_mixer/*:wav": False,
 
-         "qt/*:config": " ".join(_qtOptions),
 
-         "qt/*:openssl": False,
 
-         "qt/*:qttools": True,
 
-         "qt/*:with_freetype": False,
 
-         "qt/*:with_libjpeg": False,
 
-         "qt/*:with_md4c": False,
 
-         "qt/*:with_mysql": False,
 
-         "qt/*:with_odbc": False,
 
-         "qt/*:with_openal": False,
 
-         "qt/*:with_pq": False,
 
-         # transitive deps
 
-         "pcre2/*:build_pcre2grep": False, # doesn't link to overridden bzip2 & zlib, the tool isn't needed anyway
 
-     }
 
-     def configure(self):
 
-         # workaround: macOS deployment target isn't passed to linker when building Boost
 
-         # TODO: remove when https://github.com/conan-io/conan-center-index/pull/12468 is merged
 
-         if is_apple_os(self):
 
-             osVersion = self.settings.get_safe("os.version")
 
-             if osVersion:
 
-                 deploymentTargetFlag = tools.apple_deployment_target_flag(
 
-                     self.settings.os,
 
-                     osVersion,
 
-                     self.settings.get_safe("os.sdk"),
 
-                     self.settings.get_safe("os.subsystem"),
 
-                     self.settings.get_safe("arch")
 
-                 )
 
-                 self.options["boost"].extra_b2_flags = f"linkflags={deploymentTargetFlag}"
 
-     def requirements(self):
 
-         # use Apple system libraries instead of external ones
 
-         if is_apple_os(self):
 
-             systemLibsOverrides = [
 
-                 "bzip2/1.0.8",
 
-                 "libiconv/1.17",
 
-                 "sqlite3/3.39.2",
 
-                 "zlib/1.2.12",
 
-             ]
 
-             for lib in systemLibsOverrides:
 
-                 self.requires(f"{lib}@kambala/apple", override=True)
 
-         # TODO: the latest official release of LuaJIT (which is quite old) can't be built for arm Mac
 
-         if self.settings.os != "Macos" or self.settings.arch != "armv8":
 
-             self.requires("luajit/2.0.5")
 
-     def generate(self):
 
-         deps = CMakeDeps(self)
 
-         if os.getenv("USE_CONAN_WITH_ALL_CONFIGS", "0") == "0":
 
-             deps.generate()
 
-             return
 
-         # allow using prebuilt deps with all configs
 
-         # credits to https://github.com/conan-io/conan/issues/11607#issuecomment-1188500937 for the workaround
 
-         configs = [
 
-             "Debug",
 
-             "MinSizeRel",
 
-             "Release",
 
-             "RelWithDebInfo",
 
-         ]
 
-         for config in configs:
 
-             print(f"generating CMakeDeps for {config}")
 
-             deps.configuration = config
 
-             deps.generate()
 
-     def imports(self):
 
-        self.copy("*.dylib", "Frameworks", "lib")
 
 
  |