1
0
mirror of https://github.com/rwengine/openrw.git synced 2024-07-05 12:29:05 +02:00
openrw/conanfile.py
2019-08-31 21:10:22 +01:00

92 lines
2.9 KiB
Python

from conans import ConanFile, CMake
class OpenrwConan(ConanFile):
name = 'openrw'
version = 'master'
license = 'GPL3'
url = 'https://github.com/rwengine/openrw'
description = "OpenRW 'Open ReWrite' is an un-official open source recreation of the classic Grand Theft Auto III game executable"
settings = 'os', 'compiler', 'build_type', 'arch'
options = {
'viewer': [True, False],
'tools': [True, False],
'profiling': [True, False],
}
default_options = {
'viewer': True,
'tools': True,
'profiling': True,
'bullet3:shared': False,
'sdl2:sdl2main': False,
}
generators = 'cmake',
exports_sources = 'CMakeLists.txt', 'cmake_configure.cmake', 'cmake_options.cmake', 'CMakeCPack.cmake', 'COPYING', \
'cmake/modules/*', 'benchmarks', 'rwcore/*', 'rwengine/*', 'rwgame/*', 'rwviewer/*', \
'rwtools/*', 'tests/*', 'external/*'
_rw_dependencies = {
'game': (
'openal/1.19.0@bincrafters/stable',
'bullet3/2.87@bincrafters/stable',
'glm/0.9.9.1@g-truc/stable',
'ffmpeg/4.0.2@bincrafters/stable',
'sdl2/2.0.9@bincrafters/stable',
'boost/1.68.0@conan/stable',
'bzip2/1.0.8@conan/stable',
),
'viewer': (
'qt/5.12.0@bincrafters/stable',
),
'tools': (
'freetype/2.9.0@bincrafters/stable',
),
}
def configure(self):
if self.options.viewer:
self.options['qt'].opengl = 'desktop'
def requirements(self):
for dep in self._rw_dependencies['game']:
self.requires(dep)
if self.options.viewer:
for dep in self._rw_dependencies['viewer']:
self.requires(dep)
if self.options.tools:
for dep in self._rw_dependencies['tools']:
self.requires(dep)
def _configure_cmake(self):
cmake = CMake(self)
defs = {
'BUILD_SHARED_LIBS': False,
'CMAKE_BUILD_TYPE': self.settings.build_type,
'BUILD_TESTS': True,
'BUILD_VIEWER': self.options.viewer,
'BUILD_TOOLS': self.options.tools,
'ENABLE_PROFILING': self.options.profiling,
'USE_CONAN': True,
'BOOST_STATIC': not self.options['boost'].shared,
}
cmake.configure(defs=defs)
return cmake
def build(self):
cmake = self._configure_cmake()
cmake.build()
def package(self):
if self.options.viewer:
# FIXME: https://github.com/osechet/conan-qt/issues/6 and https://github.com/conan-io/conan/issues/2619
self.copy('qt.conf', dst='bin', src='rwviewer')
cmake = self._configure_cmake()
cmake.install()
def package_info(self):
self.cpp_info.libs = ['rwengine', 'rwlib']
self.cpp_info.stdcpp = 14