overte/conanfile.py

115 lines
18 KiB
Python
Raw Normal View History

import os
from conan import ConanFile
from conan.tools.files import copy, save
class Overte(ConanFile):
name = "Overte"
settings = "os", "compiler", "build_type", "arch"
generators = "CMakeToolchain", "CMakeDeps"
options = {"with_qt": [True, False]}
2023-09-17 14:00:18 +02:00
default_options = {
"with_qt": False,
2023-10-01 11:35:56 +02:00
"sdl*:alsa": "False",
"sdl*:pulse": "False",
"sdl*:wayland": "False",
"sdl*:xcursor": "False",
"sdl*:xinerama": "False",
"sdl*:xrandr": "False",
"sdl*:xscrnsaver": "False",
"sdl*:xshape": "False",
"sdl*:xvm": "False",
2023-09-17 14:00:18 +02:00
"qt*:shared": "True",
"qt*:gui": "True",
"qt*:qtdeclarative": "True",
"qt*:qtlocation": "True",
2023-09-22 16:08:50 +02:00
"qt*:qtmultimedia": "True",
2023-09-17 14:00:18 +02:00
"qt*:qtquickcontrols2": "True",
"qt*:qtscxml": "True",
2023-09-22 16:08:50 +02:00
"qt*:qtsvg": "True",
2023-09-17 14:00:18 +02:00
"qt*:qtwebchannel": "True",
2023-09-22 16:08:50 +02:00
"qt*:qtwebengine": "True",
"qt*:qtwebsockets": "True",
"qt*:qtwebview": "True",
"qt*:qtxmlpatterns": "True",
"glad*:spec": "gl",
"glad*:gl_profile": "core",
"glad*:gl_version": "4.6",
"glad*:extensions": "GL_3DFX_multisample,GL_3DFX_tbuffer,GL_3DFX_texture_compression_FXT1,GL_AMD_blend_minmax_factor,GL_AMD_conservative_depth,GL_AMD_debug_output,GL_AMD_depth_clamp_separate,GL_AMD_draw_buffers_blend,GL_AMD_framebuffer_sample_positions,GL_AMD_gcn_shader,GL_AMD_gpu_shader_half_float,GL_AMD_gpu_shader_int16,GL_AMD_gpu_shader_int64,GL_AMD_interleaved_elements,GL_AMD_multi_draw_indirect,GL_AMD_name_gen_delete,GL_AMD_occlusion_query_event,GL_AMD_performance_monitor,GL_AMD_pinned_memory,GL_AMD_query_buffer_object,GL_AMD_sample_positions,GL_AMD_seamless_cubemap_per_texture,GL_AMD_shader_atomic_counter_ops,GL_AMD_shader_ballot,GL_AMD_shader_explicit_vertex_parameter,GL_AMD_shader_image_load_store_lod,GL_AMD_shader_stencil_export,GL_AMD_shader_trinary_minmax,GL_AMD_sparse_texture,GL_AMD_stencil_operation_extended,GL_AMD_texture_gather_bias_lod,GL_AMD_texture_texture4,GL_AMD_transform_feedback3_lines_triangles,GL_AMD_transform_feedback4,GL_AMD_vertex_shader_layer,GL_AMD_vertex_shader_tessellator,GL_AMD_vertex_shader_viewport_index,GL_APPLE_aux_depth_stencil,GL_APPLE_client_storage,GL_APPLE_element_array,GL_APPLE_fence,GL_APPLE_float_pixels,GL_APPLE_flush_buffer_range,GL_APPLE_object_purgeable,GL_APPLE_rgb_422,GL_APPLE_row_bytes,GL_APPLE_specular_vector,GL_APPLE_texture_range,GL_APPLE_transform_hint,GL_APPLE_vertex_array_object,GL_APPLE_vertex_array_range,GL_APPLE_vertex_program_evaluators,GL_APPLE_ycbcr_422,GL_ARB_ES2_compatibility,GL_ARB_ES3_1_compatibility,GL_ARB_ES3_2_compatibility,GL_ARB_ES3_compatibility,GL_ARB_arrays_of_arrays,GL_ARB_base_instance,GL_ARB_bindless_texture,GL_ARB_blend_func_extended,GL_ARB_buffer_storage,GL_ARB_cl_event,GL_ARB_clear_buffer_object,GL_ARB_clear_texture,GL_ARB_clip_control,GL_ARB_color_buffer_float,GL_ARB_compatibility,GL_ARB_compressed_texture_pixel_storage,GL_ARB_compute_shader,GL_ARB_compute_variable_group_size,GL_ARB_conditional_render_inverted,GL_ARB_conservative_depth,GL_ARB_copy_buffer,GL_ARB_copy_image,GL_ARB_cull_distance,GL_ARB_debug_output,GL_ARB_depth_buffer_float,GL_ARB_depth_clamp,GL_ARB_depth_texture,GL_ARB_derivative_control,GL_ARB_direct_state_access,GL_ARB_draw_buffers,GL_ARB_draw_buffers_blend,GL_ARB_draw_elements_base_vertex,GL_ARB_draw_indirect,GL_ARB_draw_instanced,GL_ARB_enhanced_layouts,GL_ARB_explicit_attrib_location,GL_ARB_explicit_uniform_location,GL_ARB_fragment_coord_conventions,GL_ARB_fragment_layer_viewport,GL_ARB_fragment_program,GL_ARB_fragment_program_shadow,GL_ARB_fragment_shader,GL_ARB_fragment_shader_interlock,GL_ARB_framebuffer_no_attachments,GL_ARB_framebuffer_object,GL_ARB_framebuffer_sRGB,GL_ARB_geometry_shader4,GL_ARB_get_program_binary,GL_ARB_get_texture_sub_image,GL_ARB_gl_spirv,GL_ARB_gpu_shader5,GL_ARB_gpu_shader_fp64,GL_ARB_gpu_shader_int64,GL_ARB_half_float_pixel,GL_ARB_half_float_vertex,GL_ARB_imaging,GL_ARB_indirect_parameters,GL_ARB_instanced_arrays,GL_ARB_internalformat_query,GL_ARB_internalformat_query2,GL_ARB_invalidate_subdata,GL_ARB_map_buffer_alignment,GL_ARB_map_buffer_range,GL_ARB_matrix_palette,GL_ARB_multi_bind,GL_ARB_multi_draw_indirect,GL_ARB_multisample,GL_ARB_multitexture,GL_ARB_occlusion_query,GL_ARB_occlusion_query2,GL_ARB_parallel_shader_compile,GL_ARB_pipeline_statistics_query,GL_ARB_pixel_buffer_object,GL_ARB_point_parameters,GL_ARB_point_sprite,GL_ARB_polygon_offset_clamp,GL_ARB_post_depth_coverage,GL_ARB_program_interface_query,GL_ARB_provoking_vertex,GL_ARB_query_buffer_object,GL_ARB_robust_buffer_access_behavior,GL_ARB_robustness,GL_ARB_robustness_isolation,GL_ARB_sample_locations,GL_ARB_sample_shading,GL_ARB_sampler_objects,GL_ARB_seamless_cube_map,GL_ARB_seamless_cubemap_per_texture,GL_ARB_separate_shader_objects,GL_ARB_shader_atomic_counter_ops,GL_ARB_shader_atomic_counters,GL_ARB_shader_ballot,GL_ARB_shader_bit_encoding,GL_ARB_shader_clock,GL_ARB_shader_draw_parameters,GL_ARB_shader_group_vote,GL_ARB_shader_image_load_store,GL_ARB_shader_image_size,GL_ARB_shader_objects,GL_ARB_shader_precision,GL_ARB_shader_stencil_export,GL_ARB_shader_storage_buffer_object,GL_ARB_shader_subroutine,GL_ARB_shade
2023-09-17 14:00:18 +02:00
}
def layout(self):
self.folders.generators = os.path.join(self.folders.build, "generators")
def requirements(self):
# self.requires("shaderc/2021.1") # Broken
# self.requires("crashpad/cci.20220219") # Broken
self.requires("bullet3/3.25")
self.requires("discord-rpc/3.4.0@anotherfoxguy/stable")
self.requires("draco/1.3.5")
self.requires("etc2comp/cci.20170424")
self.requires("gifcreator/2016.11@overte/stable")
self.requires("glad/0.1.36")
2023-09-17 13:39:04 +02:00
self.requires("gli/cci.20210515")
self.requires("glm/cci.20230113")
2023-09-17 13:39:04 +02:00
self.requires("glslang/11.7.0")
self.requires("liblo/0.30@overte/stable")
2023-09-22 16:08:50 +02:00
self.requires("libnode/18.17.1@overte/stable")
2023-09-17 13:39:04 +02:00
self.requires("nlohmann_json/3.11.2")
self.requires("nvidia-texture-tools/2023.01@overte/stable")
self.requires("onetbb/2021.10.0")
self.requires("openexr/3.1.9")
2023-09-22 16:08:50 +02:00
self.requires("openssl/1.1.1w")
self.requires("openvr/2.2.3@overte/stable")
2023-10-01 11:35:56 +02:00
self.requires("opus/1.4")
self.requires("polyvox/0.2.1@overte/stable")
self.requires("quazip/1.4@overte/stable")
2023-09-17 13:39:04 +02:00
self.requires("scribe/2019.02@overte/stable")
self.requires("sdl/2.26.5")
self.requires("spirv-cross/cci.20211113")
self.requires("spirv-tools/2021.4")
self.requires("steamworks/158a@overte/prebuild")
2023-09-17 13:39:04 +02:00
self.requires("v-hacd/4.1.0")
self.requires("vulkan-memory-allocator/3.0.1")
self.requires("webrtc/2021.01.05@overte/prebuild")
2023-09-17 13:39:04 +02:00
self.requires("zlib/1.2.13")
if self.settings.os == "Windows":
self.requires("neuron/12.2@overte/prebuild")
self.requires("ovr-skd/1.35.0@overte/prebuild")
self.requires("ovr-platform-skd/1.10.0@overte/prebuild")
if self.options.with_qt:
self.requires("qt/5.15.10", force=True)
def generate(self):
bindirs = []
for dep in self.dependencies.values():
bindirs += dep.cpp_info.bindirs
save(
self,
os.path.join(self.build_folder, "cmake", "ConanBinDirs.cmake"),
'set(CONAN_BIN_DIRS "%s")' % ";".join(bindirs).replace("\\", "/"),
)
toolspath = """
set(GLSLANG_DIR "%s")
set(SCRIBE_DIR "%s/tools")
set(SPIRV_CROSS_DIR "%s")
set(SPIRV_TOOLS_DIR "%s")
""" % (
";".join(self.dependencies["glslang"].cpp_info.bindirs).replace("\\", "/"),
self.dependencies["scribe"].package_folder.replace("\\", "/"),
";".join(self.dependencies["spirv-cross"].cpp_info.bindirs).replace(
"\\", "/"
),
";".join(self.dependencies["spirv-tools"].cpp_info.bindirs).replace(
"\\", "/"
),
)
save(
self,
os.path.join(self.build_folder, "cmake", "ConanToolsDirs.cmake"),
toolspath,
)