2023-08-13 18:38:39 +02:00
|
|
|
import os
|
|
|
|
from conan import ConanFile
|
2023-09-24 11:28:32 +02:00
|
|
|
from conan.tools.files import copy, save
|
|
|
|
|
2023-08-13 18:38:39 +02:00
|
|
|
|
|
|
|
class Overte(ConanFile):
|
|
|
|
name = "Overte"
|
|
|
|
settings = "os", "compiler", "build_type", "arch"
|
|
|
|
generators = "CMakeToolchain", "CMakeDeps"
|
2023-09-17 14:00:18 +02:00
|
|
|
default_options = {
|
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",
|
2023-09-22 21:57:14 +02:00
|
|
|
"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
|
|
|
}
|
2023-08-13 18:38:39 +02:00
|
|
|
|
2023-09-28 19:00:23 +02:00
|
|
|
def layout(self):
|
|
|
|
self.folders.generators = os.path.join(self.folders.build, "generators")
|
|
|
|
|
2023-08-13 18:38:39 +02:00
|
|
|
def requirements(self):
|
|
|
|
self.requires("bullet3/3.25")
|
2023-09-23 19:50:51 +02:00
|
|
|
self.requires("draco/1.3.5")
|
2023-08-13 18:38:39 +02:00
|
|
|
self.requires("etc2comp/cci.20170424")
|
|
|
|
self.requires("glad/0.1.36")
|
2023-09-17 13:39:04 +02:00
|
|
|
self.requires("gli/cci.20210515")
|
2023-08-13 18:38:39 +02:00
|
|
|
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")
|
2023-10-02 21:37:50 +02:00
|
|
|
self.requires("openexr/3.1.9")
|
2023-09-22 16:08:50 +02:00
|
|
|
self.requires("openssl/1.1.1w")
|
|
|
|
self.requires("openvr/1.26.7@overte/stable")
|
2023-10-01 11:35:56 +02:00
|
|
|
self.requires("opus/1.4")
|
2023-09-22 21:57:14 +02:00
|
|
|
self.requires("polyvox/0.2.1@overte/stable")
|
|
|
|
self.requires("quazip/1.4@overte/stable")
|
2023-08-13 18:38:39 +02:00
|
|
|
self.requires("sdl/2.26.5")
|
2023-09-22 16:08:50 +02:00
|
|
|
#self.requires("qt/5.15.10", force=True)
|
2023-09-17 13:39:04 +02:00
|
|
|
self.requires("scribe/2019.02@overte/stable")
|
|
|
|
#self.requires("shaderc/2021.1") # Broken
|
2023-08-13 18:38:39 +02:00
|
|
|
self.requires("spirv-cross/cci.20211113")
|
|
|
|
self.requires("spirv-tools/2021.4")
|
2023-09-22 16:08:50 +02:00
|
|
|
self.requires("onetbb/2021.10.0")
|
2023-09-17 13:39:04 +02:00
|
|
|
self.requires("v-hacd/4.1.0")
|
2023-08-13 18:38:39 +02:00
|
|
|
self.requires("vulkan-memory-allocator/3.0.1")
|
2023-09-17 13:39:04 +02:00
|
|
|
# webrtc
|
|
|
|
self.requires("zlib/1.2.13")
|
2023-08-13 18:38:39 +02:00
|
|
|
|
2023-09-24 11:28:32 +02:00
|
|
|
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('\\', '/'),
|
|
|
|
)
|
2023-08-13 18:38:39 +02:00
|
|
|
|
2023-09-24 11:28:32 +02:00
|
|
|
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,
|
|
|
|
)
|