From 9feee792c50f2cf0f65b239557a948a8ac8eef59 Mon Sep 17 00:00:00 2001 From: Scott D Phillips Date: Thu, 17 Nov 2016 10:31:50 -0800 Subject: [PATCH] Enable building with MSVC https://bugzilla.gnome.org/show_bug.cgi?id=774641 --- ges/meson.build | 3 +- meson.build | 11 +- win32/common/libges.def | 419 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 430 insertions(+), 3 deletions(-) create mode 100644 win32/common/libges.def diff --git a/ges/meson.build b/ges/meson.build index 7aa1543bc0..37a19c5535 100644 --- a/ges/meson.build +++ b/ges/meson.build @@ -160,7 +160,8 @@ libges = shared_library('ges-1.0', ges_sources, parser, c_args : [ges_c_args], include_directories : [configinc], install : true, - dependencies : libges_deps + dependencies : libges_deps, + vs_module_defs: vs_module_defs_dir + 'libges.def', ) ges_gen_sources = [] diff --git a/meson.build b/meson.build index 507edafe64..86550bb1b0 100644 --- a/meson.build +++ b/meson.build @@ -1,6 +1,6 @@ project('gst-editing-services', 'c', version : '1.11.0.1', - meson_version : '>= 0.35.0', + meson_version : '>= 0.36.0', default_options : [ 'warning_level=1', 'buildtype=debugoptimized' ]) @@ -30,7 +30,12 @@ cc = meson.get_compiler('c') # If a warning is harmless but hard to fix, use '/woXXXX' so it's shown once # NOTE: Only add warnings here if you are sure they're spurious if cc.get_id() == 'msvc' - add_global_arguments('/wd4018', '/wd4244', '/wd4996', language : 'c') + add_project_arguments( + '/wd4018', # implicit signed/unsigned conversion + '/wd4146', # unary minus on unsigned (beware INT_MIN) + '/wd4244', # lossy type conversion (e.g. double -> int) + '/wd4305', # truncating type conversion (e.g. double -> float) + language : 'c') endif cdata = configuration_data() @@ -99,6 +104,8 @@ gir_init_section = [ '--add-init-section=' + \ ges_c_args = ['-DHAVE_CONFIG_H'] plugins_install_dir = '@0@/gstreamer-1.0'.format(get_option('libdir')) +vs_module_defs_dir = meson.current_source_dir() + '/win32/common/' + configinc = include_directories('.') subdir('ges') subdir('plugins') diff --git a/win32/common/libges.def b/win32/common/libges.def new file mode 100644 index 0000000000..2ae515f865 --- /dev/null +++ b/win32/common/libges.def @@ -0,0 +1,419 @@ +EXPORTS + _ges_container_get_priority_offset + _ges_container_set_height + _ges_container_set_priority_offset + _ges_debug + ges_add_missing_uri_relocation_uri + ges_asset_cache_lookup + ges_asset_extract + ges_asset_get_error + ges_asset_get_extractable_type + ges_asset_get_id + ges_asset_get_proxy + ges_asset_get_proxy_target + ges_asset_get_type + ges_asset_list_proxies + ges_asset_needs_reload + ges_asset_request + ges_asset_request_async + ges_asset_request_finish + ges_asset_set_proxy + ges_asset_try_proxy + ges_audio_source_get_type + ges_audio_test_source_get_freq + ges_audio_test_source_get_type + ges_audio_test_source_get_volume + ges_audio_test_source_set_freq + ges_audio_test_source_set_volume + ges_audio_track_get_type + ges_audio_track_new + ges_audio_transition_get_type + ges_audio_transition_new + ges_audio_uri_source_get_type + ges_base_effect_clip_get_type + ges_base_effect_get_type + ges_base_transition_clip_get_type + ges_base_xml_formatter_get_type + ges_clip_add_asset + ges_clip_asset_get_supported_formats + ges_clip_asset_get_type + ges_clip_asset_set_supported_formats + ges_clip_create_track_elements_func + ges_clip_find_track_element + ges_clip_find_track_elements + ges_clip_get_layer + ges_clip_get_supported_formats + ges_clip_get_top_effect_index + ges_clip_get_top_effect_position + ges_clip_get_top_effects + ges_clip_get_type + ges_clip_move_to_layer + ges_clip_set_supported_formats + ges_clip_set_top_effect_index + ges_clip_set_top_effect_priority + ges_clip_split + ges_command_line_formatter_get_help + ges_command_line_formatter_get_type + ges_container_add + ges_container_edit + ges_container_get_children + ges_container_get_type + ges_container_group + ges_container_remove + ges_container_ungroup + ges_edge_get_type + ges_edit_mode_get_type + ges_effect_asset_get_type + ges_effect_class_register_rate_property + ges_effect_clip_get_type + ges_effect_clip_new + ges_effect_get_type + ges_effect_new + ges_extractable_get_asset + ges_extractable_get_id + ges_extractable_get_type + ges_extractable_set_asset + ges_formatter_can_load_uri + ges_formatter_can_save_uri + ges_formatter_class_register_metas + ges_formatter_get_default + ges_formatter_get_type + ges_formatter_load_from_uri + ges_formatter_save_to_uri + ges_group_get_type + ges_group_new + ges_image_source_get_type + ges_init + ges_init_check + ges_init_get_option_group + ges_layer_add_asset + ges_layer_add_clip + ges_layer_get_auto_transition + ges_layer_get_clips + ges_layer_get_duration + ges_layer_get_priority + ges_layer_get_timeline + ges_layer_get_type + ges_layer_is_empty + ges_layer_new + ges_layer_remove_clip + ges_layer_set_auto_transition + ges_layer_set_priority + ges_layer_set_timeline + ges_list_assets + ges_meta_container_add_metas_from_string + ges_meta_container_check_meta_registered + ges_meta_container_foreach + ges_meta_container_get_boolean + ges_meta_container_get_date + ges_meta_container_get_date_time + ges_meta_container_get_double + ges_meta_container_get_float + ges_meta_container_get_int + ges_meta_container_get_int64 + ges_meta_container_get_meta + ges_meta_container_get_string + ges_meta_container_get_type + ges_meta_container_get_uint + ges_meta_container_get_uint64 + ges_meta_container_metas_to_string + ges_meta_container_register_meta + ges_meta_container_register_meta_boolean + ges_meta_container_register_meta_date + ges_meta_container_register_meta_date_time + ges_meta_container_register_meta_double + ges_meta_container_register_meta_float + ges_meta_container_register_meta_int + ges_meta_container_register_meta_int64 + ges_meta_container_register_meta_string + ges_meta_container_register_meta_uint + ges_meta_container_register_meta_uint64 + ges_meta_container_set_boolean + ges_meta_container_set_date + ges_meta_container_set_date_time + ges_meta_container_set_double + ges_meta_container_set_float + ges_meta_container_set_int + ges_meta_container_set_int64 + ges_meta_container_set_meta + ges_meta_container_set_string + ges_meta_container_set_uint + ges_meta_container_set_uint64 + ges_meta_flag_get_type + ges_multi_file_source_get_type + ges_multi_file_source_new + ges_operation_clip_get_type + ges_operation_get_type + ges_overlay_clip_get_type + ges_pipeline_flags_get_type + ges_pipeline_get_mode + ges_pipeline_get_thumbnail + ges_pipeline_get_thumbnail_rgb24 + ges_pipeline_get_type + ges_pipeline_new + ges_pipeline_preview_get_audio_sink + ges_pipeline_preview_get_video_sink + ges_pipeline_preview_set_audio_sink + ges_pipeline_preview_set_video_sink + ges_pipeline_save_thumbnail + ges_pipeline_set_mode + ges_pipeline_set_render_settings + ges_pipeline_set_timeline + ges_pitivi_formatter_get_type + ges_pitivi_formatter_new + ges_play_sink_convert_frame + ges_project_add_asset + ges_project_add_encoding_profile + ges_project_create_asset + ges_project_create_asset_sync + ges_project_get_asset + ges_project_get_loading_assets + ges_project_get_type + ges_project_get_uri + ges_project_list_assets + ges_project_list_encoding_profiles + ges_project_load + ges_project_new + ges_project_remove_asset + ges_project_save + ges_pspec_equal + ges_pspec_hash + ges_smart_adder_get_type + ges_smart_adder_new + ges_smart_mixer_get_mixer_pad + ges_smart_mixer_get_type + ges_smart_mixer_new + ges_source_clip_get_type + ges_source_get_type + ges_test_clip_get_frequency + ges_test_clip_get_type + ges_test_clip_get_volume + ges_test_clip_get_vpattern + ges_test_clip_is_muted + ges_test_clip_new + ges_test_clip_new_for_nick + ges_test_clip_set_frequency + ges_test_clip_set_mute + ges_test_clip_set_volume + ges_test_clip_set_vpattern + ges_text_halign_get_type + ges_text_overlay_clip_get_color + ges_text_overlay_clip_get_font_desc + ges_text_overlay_clip_get_halignment + ges_text_overlay_clip_get_text + ges_text_overlay_clip_get_type + ges_text_overlay_clip_get_valignment + ges_text_overlay_clip_get_xpos + ges_text_overlay_clip_get_ypos + ges_text_overlay_clip_new + ges_text_overlay_clip_set_color + ges_text_overlay_clip_set_font_desc + ges_text_overlay_clip_set_halign + ges_text_overlay_clip_set_text + ges_text_overlay_clip_set_valign + ges_text_overlay_clip_set_xpos + ges_text_overlay_clip_set_ypos + ges_text_overlay_get_color + ges_text_overlay_get_font_desc + ges_text_overlay_get_halignment + ges_text_overlay_get_text + ges_text_overlay_get_type + ges_text_overlay_get_valignment + ges_text_overlay_get_xpos + ges_text_overlay_get_ypos + ges_text_overlay_new + ges_text_overlay_set_color + ges_text_overlay_set_font_desc + ges_text_overlay_set_halignment + ges_text_overlay_set_text + ges_text_overlay_set_valignment + ges_text_overlay_set_xpos + ges_text_overlay_set_ypos + ges_text_valign_get_type + ges_timeline_add_layer + ges_timeline_add_track + ges_timeline_append_layer + ges_timeline_commit + ges_timeline_commit_sync + ges_timeline_element_add_child_property + ges_timeline_element_copy + ges_timeline_element_get_child_properties + ges_timeline_element_get_child_property + ges_timeline_element_get_child_property_by_pspec + ges_timeline_element_get_child_property_valist + ges_timeline_element_get_duration + ges_timeline_element_get_inpoint + ges_timeline_element_get_max_duration + ges_timeline_element_get_name + ges_timeline_element_get_parent + ges_timeline_element_get_priority + ges_timeline_element_get_start + ges_timeline_element_get_timeline + ges_timeline_element_get_toplevel_parent + ges_timeline_element_get_track_types + ges_timeline_element_get_type + ges_timeline_element_list_children_properties + ges_timeline_element_lookup_child + ges_timeline_element_paste + ges_timeline_element_remove_child_property + ges_timeline_element_ripple + ges_timeline_element_ripple_end + ges_timeline_element_roll_end + ges_timeline_element_roll_start + ges_timeline_element_set_child_properties + ges_timeline_element_set_child_property + ges_timeline_element_set_child_property_by_pspec + ges_timeline_element_set_child_property_valist + ges_timeline_element_set_duration + ges_timeline_element_set_inpoint + ges_timeline_element_set_max_duration + ges_timeline_element_set_name + ges_timeline_element_set_parent + ges_timeline_element_set_priority + ges_timeline_element_set_start + ges_timeline_element_set_timeline + ges_timeline_element_trim + ges_timeline_get_auto_transition + ges_timeline_get_duration + ges_timeline_get_element + ges_timeline_get_groups + ges_timeline_get_layer + ges_timeline_get_layers + ges_timeline_get_pad_for_track + ges_timeline_get_snapping_distance + ges_timeline_get_track_for_pad + ges_timeline_get_tracks + ges_timeline_get_type + ges_timeline_is_empty + ges_timeline_load_from_uri + ges_timeline_new + ges_timeline_new_audio_video + ges_timeline_new_from_uri + ges_timeline_remove_layer + ges_timeline_remove_track + ges_timeline_save_to_uri + ges_timeline_set_auto_transition + ges_timeline_set_snapping_distance + ges_title_clip_get_background_color + ges_title_clip_get_font_desc + ges_title_clip_get_halignment + ges_title_clip_get_text + ges_title_clip_get_text_color + ges_title_clip_get_type + ges_title_clip_get_valignment + ges_title_clip_get_xpos + ges_title_clip_get_ypos + ges_title_clip_new + ges_title_clip_set_background + ges_title_clip_set_color + ges_title_clip_set_font_desc + ges_title_clip_set_halignment + ges_title_clip_set_text + ges_title_clip_set_valignment + ges_title_clip_set_xpos + ges_title_clip_set_ypos + ges_title_source_get_background_color + ges_title_source_get_font_desc + ges_title_source_get_halignment + ges_title_source_get_text + ges_title_source_get_text_color + ges_title_source_get_type + ges_title_source_get_valignment + ges_title_source_get_xpos + ges_title_source_get_ypos + ges_title_source_set_background_color + ges_title_source_set_font_desc + ges_title_source_set_halignment + ges_title_source_set_text + ges_title_source_set_text_color + ges_title_source_set_valignment + ges_title_source_set_xpos + ges_title_source_set_ypos + ges_track_add_element + ges_track_commit + ges_track_element_add_children_props + ges_track_element_asset_get_track_type + ges_track_element_asset_get_type + ges_track_element_asset_set_track_type + ges_track_element_edit + ges_track_element_get_all_control_bindings + ges_track_element_get_child_properties + ges_track_element_get_child_property + ges_track_element_get_child_property_by_pspec + ges_track_element_get_child_property_valist + ges_track_element_get_control_binding + ges_track_element_get_element + ges_track_element_get_gnlobject + ges_track_element_get_nleobject + ges_track_element_get_track + ges_track_element_get_track_type + ges_track_element_get_type + ges_track_element_is_active + ges_track_element_list_children_properties + ges_track_element_lookup_child + ges_track_element_remove_control_binding + ges_track_element_set_active + ges_track_element_set_child_properties + ges_track_element_set_child_property + ges_track_element_set_child_property_by_pspec + ges_track_element_set_child_property_valist + ges_track_element_set_control_source + ges_track_element_set_track_type + ges_track_get_caps + ges_track_get_elements + ges_track_get_mixing + ges_track_get_timeline + ges_track_get_type + ges_track_new + ges_track_remove_element + ges_track_set_create_element_for_gap_func + ges_track_set_mixing + ges_track_set_restriction_caps + ges_track_set_timeline + ges_track_type_get_type + ges_track_type_name + ges_track_update_restriction_caps + ges_transition_clip_get_type + ges_transition_clip_new + ges_transition_clip_new_for_nick + ges_transition_get_type + ges_uri_clip_asset_class_set_timeout + ges_uri_clip_asset_get_duration + ges_uri_clip_asset_get_info + ges_uri_clip_asset_get_stream_assets + ges_uri_clip_asset_get_type + ges_uri_clip_asset_is_image + ges_uri_clip_asset_new + ges_uri_clip_asset_request_sync + ges_uri_clip_get_type + ges_uri_clip_get_uri + ges_uri_clip_is_image + ges_uri_clip_is_muted + ges_uri_clip_new + ges_uri_clip_set_is_image + ges_uri_clip_set_mute + ges_uri_clip_set_uri + ges_uri_source_asset_get_filesource_asset + ges_uri_source_asset_get_stream_info + ges_uri_source_asset_get_stream_uri + ges_uri_source_asset_get_type + ges_validate_register_action_types + ges_version + ges_video_source_get_type + ges_video_standard_transition_type_get_type + ges_video_test_pattern_get_type + ges_video_test_source_get_pattern + ges_video_test_source_get_type + ges_video_test_source_set_pattern + ges_video_track_get_type + ges_video_track_new + ges_video_transition_get_border + ges_video_transition_get_transition_type + ges_video_transition_get_type + ges_video_transition_is_inverted + ges_video_transition_new + ges_video_transition_set_border + ges_video_transition_set_inverted + ges_video_transition_set_transition_type + ges_video_uri_source_get_type + ges_xml_formatter_get_type