wxruby3 0.9.4-x64-mingw-ucrt → 0.9.7-x64-mingw-ucrt
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.wxconfig +9 -8
- data/INSTALL.md +315 -78
- data/README.md +32 -21
- data/ext/wxbase32u_gcc_custom.dll +0 -0
- data/ext/wxbase32u_net_gcc_custom.dll +0 -0
- data/ext/wxbase32u_xml_gcc_custom.dll +0 -0
- data/ext/wxmsw32u_aui_gcc_custom.dll +0 -0
- data/ext/wxmsw32u_core_gcc_custom.dll +0 -0
- data/ext/wxmsw32u_gl_gcc_custom.dll +0 -0
- data/ext/wxmsw32u_html_gcc_custom.dll +0 -0
- data/ext/wxmsw32u_media_gcc_custom.dll +0 -0
- data/ext/wxmsw32u_propgrid_gcc_custom.dll +0 -0
- data/ext/wxmsw32u_qa_gcc_custom.dll +0 -0
- data/ext/wxmsw32u_ribbon_gcc_custom.dll +0 -0
- data/ext/wxmsw32u_richtext_gcc_custom.dll +0 -0
- data/ext/wxmsw32u_stc_gcc_custom.dll +0 -0
- data/ext/wxmsw32u_webview_gcc_custom.dll +0 -0
- data/ext/wxmsw32u_xrc_gcc_custom.dll +0 -0
- data/lib/wx/core/combo_ctrl.rb +171 -0
- data/lib/wx/core/ext.rb +22 -3
- data/lib/wx/doc/comboctrl.rb +128 -3
- data/lib/wx/doc/gen/about_dialog_info.rb +1 -1
- data/lib/wx/doc/gen/accelerator.rb +1 -1
- data/lib/wx/doc/gen/accessible.rb +1 -1
- data/lib/wx/doc/gen/activity_indicator.rb +1 -1
- data/lib/wx/doc/gen/animation.rb +1 -1
- data/lib/wx/doc/gen/animation_ctrl.rb +1 -1
- data/lib/wx/doc/gen/any_button.rb +1 -1
- data/lib/wx/doc/gen/app.rb +1 -1
- data/lib/wx/doc/gen/app_traits.rb +3 -55
- data/lib/wx/doc/gen/art_provider.rb +1 -3
- data/lib/wx/doc/gen/aui/aui_dock_art.rb +430 -426
- data/lib/wx/doc/gen/aui/aui_floating_frame.rb +34 -30
- data/lib/wx/doc/gen/aui/aui_manager.rb +352 -349
- data/lib/wx/doc/gen/aui/aui_manager_event.rb +107 -103
- data/lib/wx/doc/gen/aui/aui_mdi_child_frame.rb +157 -153
- data/lib/wx/doc/gen/aui/aui_mdi_client_window.rb +42 -37
- data/lib/wx/doc/gen/aui/aui_mdi_parent_frame.rb +109 -105
- data/lib/wx/doc/gen/aui/aui_notebook.rb +438 -434
- data/lib/wx/doc/gen/aui/aui_notebook_event.rb +145 -141
- data/lib/wx/doc/gen/aui/aui_pane_info.rb +689 -685
- data/lib/wx/doc/gen/aui/aui_tab_art.rb +369 -365
- data/lib/wx/doc/gen/aui/aui_tab_ctrl.rb +100 -96
- data/lib/wx/doc/gen/aui/aui_tool_bar.rb +445 -441
- data/lib/wx/doc/gen/aui/aui_tool_bar_art.rb +268 -264
- data/lib/wx/doc/gen/aui/aui_tool_bar_event.rb +179 -175
- data/lib/wx/doc/gen/aui/aui_tool_bar_item.rb +219 -215
- data/lib/wx/doc/gen/banner_window.rb +1 -1
- data/lib/wx/doc/gen/bitmap.rb +1 -1
- data/lib/wx/doc/gen/bitmap_button.rb +1 -1
- data/lib/wx/doc/gen/bitmap_combo_box.rb +1 -1
- data/lib/wx/doc/gen/book_ctrl_base.rb +1 -1
- data/lib/wx/doc/gen/book_ctrl_event.rb +1 -1
- data/lib/wx/doc/gen/box_sizer.rb +1 -1
- data/lib/wx/doc/gen/brush.rb +1 -1
- data/lib/wx/doc/gen/busy_info.rb +1 -1
- data/lib/wx/doc/gen/button.rb +1 -1
- data/lib/wx/doc/gen/calculate_layout_event.rb +1 -1
- data/lib/wx/doc/gen/calendar_ctrl.rb +1 -1
- data/lib/wx/doc/gen/calendar_date_attr.rb +1 -1
- data/lib/wx/doc/gen/calendar_event.rb +1 -1
- data/lib/wx/doc/gen/caret.rb +1 -1
- data/lib/wx/doc/gen/check_box.rb +1 -1
- data/lib/wx/doc/gen/check_list_box.rb +1 -1
- data/lib/wx/doc/gen/choice.rb +1 -1
- data/lib/wx/doc/gen/choicebook.rb +1 -1
- data/lib/wx/doc/gen/client_dc.rb +1 -1
- data/lib/wx/doc/gen/clipboard.rb +1 -1
- data/lib/wx/doc/gen/collapsible_pane.rb +1 -1
- data/lib/wx/doc/gen/collapsible_pane_event.rb +1 -1
- data/lib/wx/doc/gen/colour.rb +1 -2
- data/lib/wx/doc/gen/colour_dialog.rb +2 -2
- data/lib/wx/doc/gen/colour_picker_ctrl.rb +1 -1
- data/lib/wx/doc/gen/colour_picker_event.rb +1 -1
- data/lib/wx/doc/gen/combo_box.rb +4 -3
- data/lib/wx/doc/gen/combo_ctrl.rb +92 -228
- data/lib/wx/doc/gen/command_link_button.rb +1 -1
- data/lib/wx/doc/gen/config_base.rb +1 -1
- data/lib/wx/doc/gen/context_help_button.rb +1 -1
- data/lib/wx/doc/gen/control.rb +1 -1
- data/lib/wx/doc/gen/control_with_items.rb +1 -1
- data/lib/wx/doc/gen/core.rb +5 -5
- data/lib/wx/doc/gen/cursor.rb +1 -1
- data/lib/wx/doc/gen/data_format.rb +1 -1
- data/lib/wx/doc/gen/data_object.rb +1 -1
- data/lib/wx/doc/gen/data_object_simple_base.rb +1 -1
- data/lib/wx/doc/gen/date_event.rb +1 -1
- data/lib/wx/doc/gen/date_picker_ctrl.rb +1 -1
- data/lib/wx/doc/gen/dc.rb +1 -4
- data/lib/wx/doc/gen/defs.rb +1 -1
- data/lib/wx/doc/gen/dial_up_event.rb +1 -1
- data/lib/wx/doc/gen/dial_up_manager.rb +1 -1
- data/lib/wx/doc/gen/dialog.rb +1 -2
- data/lib/wx/doc/gen/dir_dialog.rb +1 -1
- data/lib/wx/doc/gen/dir_filter_list_ctrl.rb +1 -1
- data/lib/wx/doc/gen/dir_picker_ctrl.rb +1 -1
- data/lib/wx/doc/gen/drag_drop.rb +1 -1
- data/lib/wx/doc/gen/drag_image.rb +1 -1
- data/lib/wx/doc/gen/editable_list_box.rb +1 -1
- data/lib/wx/doc/gen/event.rb +1 -1
- data/lib/wx/doc/gen/event_blocker.rb +1 -1
- data/lib/wx/doc/gen/event_filter.rb +1 -1
- data/lib/wx/doc/gen/events.rb +3 -25
- data/lib/wx/doc/gen/evt_handler.rb +1 -1
- data/lib/wx/doc/gen/ext_help_controller.rb +1 -1
- data/lib/wx/doc/gen/file_ctrl.rb +1 -1
- data/lib/wx/doc/gen/file_ctrl_event.rb +1 -1
- data/lib/wx/doc/gen/file_dialog.rb +1 -3
- data/lib/wx/doc/gen/file_dialog_custom_control.rb +1 -1
- data/lib/wx/doc/gen/file_dialog_customize_hook.rb +54 -62
- data/lib/wx/doc/gen/file_dir_picker_event.rb +1 -1
- data/lib/wx/doc/gen/file_picker_ctrl.rb +1 -1
- data/lib/wx/doc/gen/file_system.rb +2 -59
- data/lib/wx/doc/gen/find_dialog_event.rb +1 -1
- data/lib/wx/doc/gen/find_replace_data.rb +1 -1
- data/lib/wx/doc/gen/find_replace_dialog.rb +1 -1
- data/lib/wx/doc/gen/flex_grid_sizer.rb +1 -1
- data/lib/wx/doc/gen/font.rb +1 -1
- data/lib/wx/doc/gen/font_data.rb +1 -1
- data/lib/wx/doc/gen/font_dialog.rb +1 -1
- data/lib/wx/doc/gen/font_picker_ctrl.rb +1 -1
- data/lib/wx/doc/gen/font_picker_event.rb +1 -1
- data/lib/wx/doc/gen/frame.rb +1 -2
- data/lib/wx/doc/gen/fs_file.rb +1 -1
- data/lib/wx/doc/gen/functions.rb +1 -1
- data/lib/wx/doc/gen/gauge.rb +1 -1
- data/lib/wx/doc/gen/gb_sizer_item.rb +1 -1
- data/lib/wx/doc/gen/gcdc.rb +1 -1
- data/lib/wx/doc/gen/gdi_common.rb +3 -3
- data/lib/wx/doc/gen/gdi_object.rb +1 -1
- data/lib/wx/doc/gen/generic_dir_ctrl.rb +1 -1
- data/lib/wx/doc/gen/graphics_context.rb +1 -1
- data/lib/wx/doc/gen/graphics_object.rb +1 -1
- data/lib/wx/doc/gen/grid/grid_cell_activatable_editor.rb +28 -24
- data/lib/wx/doc/gen/grid/grid_cell_attr.rb +251 -247
- data/lib/wx/doc/gen/grid/grid_cell_auto_wrap_string_editor.rb +25 -21
- data/lib/wx/doc/gen/grid/grid_cell_auto_wrap_string_renderer.rb +27 -23
- data/lib/wx/doc/gen/grid/grid_cell_bool_editor.rb +38 -34
- data/lib/wx/doc/gen/grid/grid_cell_bool_renderer.rb +25 -21
- data/lib/wx/doc/gen/grid/grid_cell_choice_editor.rb +35 -31
- data/lib/wx/doc/gen/grid/grid_cell_date_editor.rb +28 -24
- data/lib/wx/doc/gen/grid/grid_cell_date_renderer.rb +34 -30
- data/lib/wx/doc/gen/grid/grid_cell_date_time_renderer.rb +30 -26
- data/lib/wx/doc/gen/grid/grid_cell_editor.rb +183 -179
- data/lib/wx/doc/gen/grid/grid_cell_enum_editor.rb +29 -25
- data/lib/wx/doc/gen/grid/grid_cell_enum_renderer.rb +33 -29
- data/lib/wx/doc/gen/grid/grid_cell_float_editor.rb +34 -30
- data/lib/wx/doc/gen/grid/grid_cell_float_renderer.rb +67 -63
- data/lib/wx/doc/gen/grid/grid_cell_number_editor.rb +34 -30
- data/lib/wx/doc/gen/grid/grid_cell_number_renderer.rb +25 -21
- data/lib/wx/doc/gen/grid/grid_cell_renderer.rb +93 -89
- data/lib/wx/doc/gen/grid/grid_cell_string_renderer.rb +25 -21
- data/lib/wx/doc/gen/grid/grid_cell_text_editor.rb +38 -34
- data/lib/wx/doc/gen/grid/grid_ctrl.rb +2716 -2724
- data/lib/wx/doc/gen/grid/grid_editor_created_event.rb +82 -78
- data/lib/wx/doc/gen/grid/grid_event.rb +106 -102
- data/lib/wx/doc/gen/grid/grid_range_select_event.rb +93 -89
- data/lib/wx/doc/gen/grid/grid_size_event.rb +70 -66
- data/lib/wx/doc/gen/grid/grid_string_table.rb +130 -126
- data/lib/wx/doc/gen/grid/grid_table_base.rb +303 -299
- data/lib/wx/doc/gen/grid/grid_table_message.rb +70 -66
- data/lib/wx/doc/gen/grid_bag_sizer.rb +1 -1
- data/lib/wx/doc/gen/grid_sizer.rb +1 -1
- data/lib/wx/doc/gen/gui_event_loop.rb +1 -1
- data/lib/wx/doc/gen/header_ctrl.rb +1 -2
- data/lib/wx/doc/gen/header_ctrl_event.rb +1 -1
- data/lib/wx/doc/gen/help_controller.rb +1 -1
- data/lib/wx/doc/gen/help_provider.rb +1 -1
- data/lib/wx/doc/gen/html/html_cell.rb +515 -511
- data/lib/wx/doc/gen/html/html_cell_event.rb +58 -54
- data/lib/wx/doc/gen/html/html_easy_printing.rb +171 -167
- data/lib/wx/doc/gen/html/html_help_controller.rb +292 -288
- data/lib/wx/doc/gen/html/html_help_data.rb +147 -143
- data/lib/wx/doc/gen/html/html_help_window.rb +232 -228
- data/lib/wx/doc/gen/html/html_link_event.rb +30 -26
- data/lib/wx/doc/gen/html/html_list_box.rb +301 -297
- data/lib/wx/doc/gen/html/html_printout.rb +94 -90
- data/lib/wx/doc/gen/html/html_window.rb +406 -402
- data/lib/wx/doc/gen/hyperlink_ctrl.rb +1 -1
- data/lib/wx/doc/gen/hyperlink_event.rb +1 -1
- data/lib/wx/doc/gen/icon.rb +1 -1
- data/lib/wx/doc/gen/icon_location.rb +1 -1
- data/lib/wx/doc/gen/image.rb +1 -3
- data/lib/wx/doc/gen/image_list.rb +1 -1
- data/lib/wx/doc/gen/info_bar.rb +1 -1
- data/lib/wx/doc/gen/keyboard_state.rb +1 -1
- data/lib/wx/doc/gen/list_box.rb +1 -1
- data/lib/wx/doc/gen/list_ctrl.rb +1 -2
- data/lib/wx/doc/gen/list_event.rb +1 -1
- data/lib/wx/doc/gen/listbook.rb +1 -1
- data/lib/wx/doc/gen/locale.rb +1 -1
- data/lib/wx/doc/gen/log.rb +1 -1
- data/lib/wx/doc/gen/mdi_client_window.rb +1 -1
- data/lib/wx/doc/gen/mdi_frame.rb +1 -1
- data/lib/wx/doc/gen/media_ctrl.rb +1 -7
- data/lib/wx/doc/gen/media_event.rb +1 -1
- data/lib/wx/doc/gen/memory_dc.rb +1 -1
- data/lib/wx/doc/gen/menu.rb +1 -3
- data/lib/wx/doc/gen/menu_bar.rb +1 -1
- data/lib/wx/doc/gen/menu_item.rb +1 -1
- data/lib/wx/doc/gen/message_dialog.rb +1 -1
- data/lib/wx/doc/gen/mini_frame.rb +1 -1
- data/lib/wx/doc/gen/mirror_dc.rb +1 -1
- data/lib/wx/doc/gen/mouse_state.rb +1 -1
- data/lib/wx/doc/gen/multi_choice_dialog.rb +1 -1
- data/lib/wx/doc/gen/non_owned_window.rb +1 -1
- data/lib/wx/doc/gen/notebook.rb +1 -2
- data/lib/wx/doc/gen/num_validator.rb +1 -1
- data/lib/wx/doc/gen/number_entry_dialog.rb +1 -1
- data/lib/wx/doc/gen/object.rb +1 -1
- data/lib/wx/doc/gen/owner_drawn_combo_box.rb +1 -1
- data/lib/wx/doc/gen/paint_dc.rb +1 -1
- data/lib/wx/doc/gen/palette.rb +1 -1
- data/lib/wx/doc/gen/panel.rb +1 -1
- data/lib/wx/doc/gen/pen.rb +1 -1
- data/lib/wx/doc/gen/persistence_manager.rb +1 -1
- data/lib/wx/doc/gen/persistent_object.rb +1 -1
- data/lib/wx/doc/gen/persistent_window.rb +1 -1
- data/lib/wx/doc/gen/pg/numeric_property_validator.rb +33 -29
- data/lib/wx/doc/gen/pg/pg_array_editor_dialog.rb +299 -295
- data/lib/wx/doc/gen/pg/pg_cell.rb +162 -158
- data/lib/wx/doc/gen/pg/pg_editor.rb +693 -689
- data/lib/wx/doc/gen/pg/pg_multi_button.rb +133 -129
- data/lib/wx/doc/gen/pg/pg_properties.rb +2662 -2658
- data/lib/wx/doc/gen/pg/pg_property.rb +1929 -1938
- data/lib/wx/doc/gen/pg/pg_validation_info.rb +275 -273
- data/lib/wx/doc/gen/pg/property_grid.rb +708 -706
- data/lib/wx/doc/gen/pg/property_grid_event.rb +168 -164
- data/lib/wx/doc/gen/pg/property_grid_interface.rb +1071 -1067
- data/lib/wx/doc/gen/pg/property_grid_manager.rb +386 -384
- data/lib/wx/doc/gen/pg/property_grid_page.rb +267 -265
- data/lib/wx/doc/gen/pg/property_grid_page_state.rb +147 -144
- data/lib/wx/doc/gen/picker_base.rb +1 -1
- data/lib/wx/doc/gen/platform_info.rb +1 -1
- data/lib/wx/doc/gen/popup_window.rb +1 -1
- data/lib/wx/doc/gen/progress_dialog.rb +1 -1
- data/lib/wx/doc/gen/property_sheet_dialog.rb +1 -1
- data/lib/wx/doc/gen/prt/page_setup_dialog.rb +32 -28
- data/lib/wx/doc/gen/prt/post_script_dc.rb +21 -18
- data/lib/wx/doc/gen/prt/preview_frame.rb +49 -45
- data/lib/wx/doc/gen/prt/print_abort_dialog.rb +126 -122
- data/lib/wx/doc/gen/prt/print_data.rb +637 -633
- data/lib/wx/doc/gen/prt/print_dialog.rb +43 -39
- data/lib/wx/doc/gen/prt/printer.rb +484 -480
- data/lib/wx/doc/gen/prt/printer_dc.rb +26 -22
- data/lib/wx/doc/gen/query_layout_info_event.rb +1 -1
- data/lib/wx/doc/gen/radio_box.rb +1 -1
- data/lib/wx/doc/gen/radio_button.rb +1 -1
- data/lib/wx/doc/gen/rbn/ribbon_art_provider.rb +1716 -1712
- data/lib/wx/doc/gen/rbn/ribbon_bar.rb +239 -235
- data/lib/wx/doc/gen/rbn/ribbon_bar_event.rb +34 -30
- data/lib/wx/doc/gen/rbn/ribbon_button_bar.rb +439 -435
- data/lib/wx/doc/gen/rbn/ribbon_button_bar_event.rb +52 -48
- data/lib/wx/doc/gen/rbn/ribbon_control.rb +116 -112
- data/lib/wx/doc/gen/rbn/ribbon_gallery.rb +205 -201
- data/lib/wx/doc/gen/rbn/ribbon_gallery_event.rb +44 -40
- data/lib/wx/doc/gen/rbn/ribbon_page.rb +129 -125
- data/lib/wx/doc/gen/rbn/ribbon_panel.rb +229 -225
- data/lib/wx/doc/gen/rbn/ribbon_panel_event.rb +34 -30
- data/lib/wx/doc/gen/rbn/ribbon_tool_bar.rb +329 -325
- data/lib/wx/doc/gen/rbn/ribbon_tool_bar_event.rb +31 -27
- data/lib/wx/doc/gen/rearrange_ctrl.rb +1 -1
- data/lib/wx/doc/gen/rearrange_list.rb +1 -1
- data/lib/wx/doc/gen/region.rb +1 -1
- data/lib/wx/doc/gen/region_iterator.rb +1 -1
- data/lib/wx/doc/gen/rtc/rich_text_box.rb +424 -420
- data/lib/wx/doc/gen/rtc/rich_text_buffer.rb +1148 -1144
- data/lib/wx/doc/gen/rtc/rich_text_buffer_data_object.rb +30 -26
- data/lib/wx/doc/gen/rtc/rich_text_composite_object.rb +516 -512
- data/lib/wx/doc/gen/rtc/rich_text_ctrl.rb +1991 -1987
- data/lib/wx/doc/gen/rtc/rich_text_event.rb +159 -155
- data/lib/wx/doc/gen/rtc/rich_text_file_handler.rb +167 -163
- data/lib/wx/doc/gen/rtc/rich_text_formatting_dialog.rb +271 -267
- data/lib/wx/doc/gen/rtc/rich_text_header_footer_data.rb +171 -167
- data/lib/wx/doc/gen/rtc/rich_text_html_handler.rb +88 -85
- data/lib/wx/doc/gen/rtc/rich_text_image.rb +323 -319
- data/lib/wx/doc/gen/rtc/rich_text_object.rb +2819 -2815
- data/lib/wx/doc/gen/rtc/rich_text_paragraph_layout_box.rb +1187 -1183
- data/lib/wx/doc/gen/rtc/rich_text_printing.rb +242 -238
- data/lib/wx/doc/gen/rtc/rich_text_style_list_box.rb +286 -279
- data/lib/wx/doc/gen/rtc/rich_text_style_organiser_dialog.rb +181 -177
- data/lib/wx/doc/gen/rtc/rich_text_xml_handler.rb +47 -44
- data/lib/wx/doc/gen/rtc/symbol_picker_dialog.rb +145 -141
- data/lib/wx/doc/gen/sash_event.rb +1 -1
- data/lib/wx/doc/gen/sash_layout_window.rb +1 -1
- data/lib/wx/doc/gen/sash_window.rb +1 -1
- data/lib/wx/doc/gen/scaled_dc.rb +1 -1
- data/lib/wx/doc/gen/screen_dc.rb +1 -1
- data/lib/wx/doc/gen/scroll_bar.rb +1 -2
- data/lib/wx/doc/gen/scrolled_canvas.rb +1 -1
- data/lib/wx/doc/gen/scrolled_control.rb +1 -1
- data/lib/wx/doc/gen/scrolled_window.rb +1 -1
- data/lib/wx/doc/gen/search_ctrl.rb +1 -1
- data/lib/wx/doc/gen/simplebook.rb +1 -1
- data/lib/wx/doc/gen/single_choice_dialog.rb +1 -1
- data/lib/wx/doc/gen/sizer.rb +1 -2
- data/lib/wx/doc/gen/sizer_item.rb +1 -1
- data/lib/wx/doc/gen/slider.rb +1 -2
- data/lib/wx/doc/gen/spin_button.rb +1 -1
- data/lib/wx/doc/gen/spin_ctrl.rb +1 -1
- data/lib/wx/doc/gen/spin_ctrl_double.rb +1 -1
- data/lib/wx/doc/gen/spin_double_event.rb +1 -1
- data/lib/wx/doc/gen/spin_event.rb +1 -1
- data/lib/wx/doc/gen/splash_screen.rb +2 -2
- data/lib/wx/doc/gen/splitter_event.rb +1 -1
- data/lib/wx/doc/gen/splitter_window.rb +1 -1
- data/lib/wx/doc/gen/static_bitmap.rb +1 -1
- data/lib/wx/doc/gen/static_box.rb +1 -1
- data/lib/wx/doc/gen/static_box_sizer.rb +1 -1
- data/lib/wx/doc/gen/static_line.rb +1 -1
- data/lib/wx/doc/gen/static_text.rb +1 -1
- data/lib/wx/doc/gen/status_bar.rb +1 -1
- data/lib/wx/doc/gen/stc/styled_text_ctrl.rb +4202 -4199
- data/lib/wx/doc/gen/stc/styled_text_event.rb +7511 -7508
- data/lib/wx/doc/gen/std_dialog_button_sizer.rb +1 -1
- data/lib/wx/doc/gen/svg_file_dc.rb +1 -1
- data/lib/wx/doc/gen/system_options.rb +1 -1
- data/lib/wx/doc/gen/system_settings.rb +1 -1
- data/lib/wx/doc/gen/task_bar_button.rb +1 -1
- data/lib/wx/doc/gen/task_bar_icon.rb +1 -2
- data/lib/wx/doc/gen/task_bar_icon_event.rb +1 -1
- data/lib/wx/doc/gen/text_attr.rb +1 -1
- data/lib/wx/doc/gen/text_ctrl.rb +1 -6
- data/lib/wx/doc/gen/text_entry.rb +1 -1
- data/lib/wx/doc/gen/text_entry_dialog.rb +1 -1
- data/lib/wx/doc/gen/text_validator.rb +1 -1
- data/lib/wx/doc/gen/time_picker_ctrl.rb +1 -1
- data/lib/wx/doc/gen/timer.rb +1 -1
- data/lib/wx/doc/gen/timer_event.rb +1 -1
- data/lib/wx/doc/gen/tip_provider.rb +1 -1
- data/lib/wx/doc/gen/toggle_button.rb +1 -1
- data/lib/wx/doc/gen/tool_bar.rb +1 -1
- data/lib/wx/doc/gen/tool_tip.rb +1 -1
- data/lib/wx/doc/gen/toolbook.rb +1 -1
- data/lib/wx/doc/gen/top_level_window.rb +1 -1
- data/lib/wx/doc/gen/tree_ctrl.rb +1 -3
- data/lib/wx/doc/gen/tree_event.rb +1 -1
- data/lib/wx/doc/gen/treebook.rb +1 -1
- data/lib/wx/doc/gen/ui_action_simulator.rb +1 -1
- data/lib/wx/doc/gen/utils.rb +1 -1
- data/lib/wx/doc/gen/v_list_box.rb +1 -1
- data/lib/wx/doc/gen/v_scrolled_window.rb +1 -2
- data/lib/wx/doc/gen/validator.rb +1 -1
- data/lib/wx/doc/gen/variant.rb +1 -1
- data/lib/wx/doc/gen/window.rb +1 -1
- data/lib/wx/doc/gen/window_dc.rb +1 -1
- data/lib/wx/doc/gen/window_disabler.rb +1 -1
- data/lib/wx/doc/gen/with_images.rb +1 -1
- data/lib/wx/doc/gen/wizard.rb +1 -2
- data/lib/wx/doc/gen/wizard_event.rb +1 -1
- data/lib/wx/doc/gen/wizard_page.rb +1 -2
- data/lib/wx/doc/gen/wizard_page_simple.rb +1 -1
- data/lib/wx/doc/gen/wrap_sizer.rb +1 -1
- data/lib/wx/doc/gen/xml_node.rb +1 -1
- data/lib/wx/doc/gen/xml_resource.rb +1 -1
- data/lib/wx/doc/owner_drawn_combobox.rb +5 -1
- data/lib/wx/rtc/ext/rich_text_ctrl.rb +5 -5
- data/lib/wx/version.rb +1 -1
- data/lib/wx/wxruby/base.rb +6 -4
- data/lib/wx/wxruby/cmd/sampler.rb +39 -29
- data/lib/wx/wxruby/cmd/setup.rb +122 -0
- data/lib/wx/wxruby/cmd/test.rb +56 -6
- data/lib/wxruby_aui.so +0 -0
- data/lib/wxruby_core.so +0 -0
- data/lib/wxruby_grid.so +0 -0
- data/lib/wxruby_html.so +0 -0
- data/lib/wxruby_pg.so +0 -0
- data/lib/wxruby_prt.so +0 -0
- data/lib/wxruby_rbn.so +0 -0
- data/lib/wxruby_rtc.so +0 -0
- data/lib/wxruby_stc.so +0 -0
- data/rakelib/install.rb +2 -0
- data/rakelib/lib/config/linux.rb +24 -2
- data/rakelib/lib/config/macosx.rb +16 -0
- data/rakelib/lib/config/mingw.rb +133 -9
- data/rakelib/lib/config/pkgman/arch.rb +53 -0
- data/rakelib/lib/config/pkgman/base.rb +169 -0
- data/rakelib/lib/config/pkgman/debian.rb +66 -0
- data/rakelib/lib/config/pkgman/macosx.rb +183 -0
- data/rakelib/lib/config/pkgman/rhel.rb +54 -0
- data/rakelib/lib/config/pkgman/suse.rb +54 -0
- data/rakelib/lib/config/unixish.rb +36 -19
- data/rakelib/lib/config.rb +254 -61
- data/rakelib/prepost.rake +9 -4
- data/rakelib/yard/templates/default/fulldoc/html/css/wxruby3.css +14 -0
- data/rakelib/yard/templates/default/fulldoc/html/setup.rb +5 -5
- data/rakelib/yard/yard/relative_markdown_links.rb +7 -1
- data/tests/test_combo_ctrl.rb +196 -0
- metadata +25 -4
@@ -0,0 +1,122 @@
|
|
1
|
+
# Copyright (c) 2023 M.J.N. Corino, The Netherlands
|
2
|
+
#
|
3
|
+
# This software is released under the MIT license.
|
4
|
+
|
5
|
+
# wxruby setup command handler
|
6
|
+
#--------------------------------------------------------------------
|
7
|
+
|
8
|
+
require 'fileutils'
|
9
|
+
|
10
|
+
module WxRuby
|
11
|
+
module Commands
|
12
|
+
class Setup
|
13
|
+
|
14
|
+
DESC = 'Run wxRuby3 post-install setup.'
|
15
|
+
|
16
|
+
def self.description
|
17
|
+
" setup -h|[options]\t\t#{DESC}"
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.options
|
21
|
+
Commands.options['setup'] ||= { verbose: Commands.options[:verbose] }
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.parse_args(args)
|
25
|
+
opts = OptionParser.new
|
26
|
+
opts.banner = "#{DESC}\n\nUsage: wxruby setup -h|--help OR wxruby setup [options]\n\n"
|
27
|
+
opts.separator ''
|
28
|
+
opts.on('--wxwin=path',
|
29
|
+
"the installation root for the wxWidgets libraries and headers if not using the system default") {|v| Setup.options['wxwin'] = File.expand_path(v)}
|
30
|
+
opts.on('--wxxml=path',
|
31
|
+
"the path to the doxygen generated wxWidgets XML interface specs if not using bootstrap") {|v| Setup.options['wxxml'] = File.expand_path(v)}
|
32
|
+
opts.on('--with-wxwin',
|
33
|
+
"build a local copy of wxWidgets for use with wxRuby [false]") {|v| Setup.options['with-wxwin'] = true}
|
34
|
+
opts.on('--swig=path',
|
35
|
+
"the path to swig executable [swig]") {|v| Setup.options['swig'] = v}
|
36
|
+
opts.on('--doxygen=path',
|
37
|
+
"the path to doxygen executable [doxygen]") {|v| Setup.options['doxygen'] = v}
|
38
|
+
opts.on('--git=path',
|
39
|
+
"the path to git executable [git]") {|v| Setup.options['git'] = v}
|
40
|
+
opts.on('--[no-]autoinstall',
|
41
|
+
"do (not) attempt to automatically install any required packages") {|v| Setup.options['autoinstall'] = !!v }
|
42
|
+
opts.on('--log=PATH',
|
43
|
+
"write log to PATH/setup.log (PATH must exist) and do not remove when finished") {|v| Setup.options['log'] = v }
|
44
|
+
opts.on('-h', '--help',
|
45
|
+
'Show this message.') do |v|
|
46
|
+
puts opts
|
47
|
+
puts
|
48
|
+
exit(0)
|
49
|
+
end
|
50
|
+
opts.parse!(args)
|
51
|
+
end
|
52
|
+
|
53
|
+
def self.run(argv)
|
54
|
+
return description if argv == :describe
|
55
|
+
|
56
|
+
parse_args(argv)
|
57
|
+
|
58
|
+
cfg_args = []
|
59
|
+
cfg_args << "--wxwin=#{Setup.options['wxwin']}" if Setup.options['wxwin']
|
60
|
+
cfg_args << "--wxxml=#{Setup.options['wxxml']}" if Setup.options['wxxml']
|
61
|
+
cfg_args << '--with-wxwin' if Setup.options['with-wxwin']
|
62
|
+
cfg_args << "--swig=#{Setup.options['swig']}" if Setup.options['swig']
|
63
|
+
cfg_args << "--doxygen=#{Setup.options['doxygen']}" if Setup.options['doxygen']
|
64
|
+
cfg_args << "--git=#{Setup.options['git']}" if Setup.options['git']
|
65
|
+
unless Setup.options['autoinstall'].nil?
|
66
|
+
cfg_args << (Setup.options['autoinstall'] ? '--autoinstall' : '--no-autoinstall')
|
67
|
+
end
|
68
|
+
cfg_cmd = 'rake configure'
|
69
|
+
cfg_cmd << "[#{cfg_args.join(',')}]" unless cfg_args.empty?
|
70
|
+
|
71
|
+
result = false
|
72
|
+
FileUtils.chdir(WxRuby::ROOT) do
|
73
|
+
steps = 0
|
74
|
+
actions_txt = if Setup.options['autoinstall'] != false
|
75
|
+
steps = 1
|
76
|
+
'(possibly) install required software'
|
77
|
+
else
|
78
|
+
''
|
79
|
+
end
|
80
|
+
if Setup.options['with-wxwin'] || Setup.options['wxwin'].nil?
|
81
|
+
actions_txt << ', ' if steps>0
|
82
|
+
actions_txt << 'build the wxWidgets libraries (if needed), '
|
83
|
+
actions_txt << "\n" if steps>0
|
84
|
+
steps += 1
|
85
|
+
else
|
86
|
+
actions_txt << ',' if steps>0
|
87
|
+
end
|
88
|
+
actions_txt << 'build the native wxRuby3 extensions '
|
89
|
+
actions_txt << "\n" if steps==1
|
90
|
+
actions_txt << 'and generate the wxRuby3 reference documentation.'
|
91
|
+
$stdout.puts <<~__INFO_TXT
|
92
|
+
|
93
|
+
---
|
94
|
+
Now running wxRuby3 post-install setup.
|
95
|
+
This will #{actions_txt}
|
96
|
+
Please be patient as this may take quite a while depending on your system.
|
97
|
+
---
|
98
|
+
|
99
|
+
__INFO_TXT
|
100
|
+
log_file = File.join(WxRuby::ROOT, 'setup.log')
|
101
|
+
if Setup.options['log']
|
102
|
+
if File.directory?(Setup.options['log']) && File.writable?(Setup.options['log'])
|
103
|
+
log_file = File.join(Setup.options['log'], 'setup.log')
|
104
|
+
else
|
105
|
+
$stderr.puts "ERROR: cannot write log to #{Setup.options['log']}. Log path must exist and be writable."
|
106
|
+
exit(1)
|
107
|
+
end
|
108
|
+
end
|
109
|
+
run_env = {'WXRUBY_RUN_SILENT' => "#{log_file}"}
|
110
|
+
run_env['WXRUBY_VERBOSE'] = '1' if Setup.options[:verbose]
|
111
|
+
# can't rely on FileUtils#chdir returning the block result (bug in older Rubies) so assign result here
|
112
|
+
result = system(run_env, "#{cfg_cmd} && rake -m wxruby:gem:setup#{Setup.options['log'] ? '[:keep_log]' : ''} && gem rdoc wxruby3 --overwrite")
|
113
|
+
end
|
114
|
+
exit(result ? 0 : 1)
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
unless self.setup_done?
|
119
|
+
self.register('setup', Setup)
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
data/lib/wx/wxruby/cmd/test.rb
CHANGED
@@ -10,21 +10,71 @@ require 'fileutils'
|
|
10
10
|
module WxRuby
|
11
11
|
module Commands
|
12
12
|
class Test
|
13
|
+
|
14
|
+
DESC = 'Run wxRuby3 regression tests.'
|
15
|
+
|
13
16
|
def self.description
|
14
|
-
" test
|
17
|
+
" test -h|[options] [TEST [...]]\t#{DESC}"
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.options
|
21
|
+
Commands.options['test'] ||= { verbose: Commands.options[:verbose], excludes: [] }
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.parse_args(args)
|
25
|
+
opts = OptionParser.new
|
26
|
+
opts.banner = "#{DESC}\n\nUsage: wxruby test -h|--help OR wxruby test [options] [TEST [...]]\n\n" +
|
27
|
+
"TEST == test name\n" +
|
28
|
+
"Runs all tests (except any specified to exclude) if no test specified.\n\n"
|
29
|
+
opts.separator ''
|
30
|
+
opts.on('--list',
|
31
|
+
"display the list of names of the installed tests") do |v|
|
32
|
+
tests = Dir[File.join(WxRuby::ROOT, 'tests', '*.rb')].collect { |t| File.basename(t, '.*') }
|
33
|
+
$stdout.puts <<~__INFO
|
34
|
+
Installed wxRuby tests:
|
35
|
+
#{tests.join(', ')}
|
36
|
+
|
37
|
+
__INFO
|
38
|
+
exit(0)
|
39
|
+
end
|
40
|
+
opts.on('--exclude=TEST',
|
41
|
+
"exclude the specified test from running") {|v| Test.options[:excludes] << v }
|
42
|
+
opts.on('-h', '--help',
|
43
|
+
'Show this message.') do |v|
|
44
|
+
puts opts
|
45
|
+
puts
|
46
|
+
exit(0)
|
47
|
+
end
|
48
|
+
opts.parse!(args)
|
15
49
|
end
|
16
50
|
|
17
51
|
def self.run(argv)
|
18
|
-
if argv == :describe
|
19
|
-
|
20
|
-
|
21
|
-
|
52
|
+
return description if argv == :describe
|
53
|
+
|
54
|
+
parse_args(argv)
|
55
|
+
|
56
|
+
tests = if argv.empty?
|
57
|
+
Dir[File.join(WxRuby::ROOT, 'tests', '*.rb')]
|
58
|
+
else
|
59
|
+
argv.collect do |a|
|
60
|
+
fn = File.join(WxRuby::ROOT, 'tests', a+'.rb')
|
61
|
+
unless File.file?(fn)
|
62
|
+
$stderr.puts "ERROR: Invalid test [#{a}] specified."
|
63
|
+
exit(1)
|
64
|
+
end
|
65
|
+
fn
|
66
|
+
end
|
67
|
+
end
|
68
|
+
tests.each do |test|
|
69
|
+
unless Test.options[:excludes].include?(File.basename(test, '.*'))
|
22
70
|
exit(1) unless system(RUBY, test)
|
23
71
|
end
|
24
72
|
end
|
25
73
|
end
|
26
74
|
end
|
27
75
|
|
28
|
-
self.
|
76
|
+
if self.setup_done?
|
77
|
+
self.register('test', Test)
|
78
|
+
end
|
29
79
|
end
|
30
80
|
end
|
data/lib/wxruby_aui.so
CHANGED
Binary file
|
data/lib/wxruby_core.so
CHANGED
Binary file
|
data/lib/wxruby_grid.so
CHANGED
Binary file
|
data/lib/wxruby_html.so
CHANGED
Binary file
|
data/lib/wxruby_pg.so
CHANGED
Binary file
|
data/lib/wxruby_prt.so
CHANGED
Binary file
|
data/lib/wxruby_rbn.so
CHANGED
Binary file
|
data/lib/wxruby_rtc.so
CHANGED
Binary file
|
data/lib/wxruby_stc.so
CHANGED
Binary file
|
data/rakelib/install.rb
CHANGED
@@ -57,6 +57,7 @@ module WXRuby3
|
|
57
57
|
|
58
58
|
def install_wxwin_shlibs
|
59
59
|
if WXRuby3.config.get_config('with-wxwin')
|
60
|
+
$stdout.print "Installing wxRuby3 extensions..." if WXRuby3.config.run_silent?
|
60
61
|
# prepare required wxWidgets shared libs
|
61
62
|
wxwin_inshlibs = []
|
62
63
|
WXRuby3::Install.wxwin_shlibs.each do |shlib|
|
@@ -89,6 +90,7 @@ module WXRuby3
|
|
89
90
|
exit(1)
|
90
91
|
end
|
91
92
|
end
|
93
|
+
$stdout.puts 'done!' if WXRuby3.config.run_silent?
|
92
94
|
end
|
93
95
|
end
|
94
96
|
|
data/rakelib/lib/config/linux.rb
CHANGED
@@ -7,6 +7,7 @@
|
|
7
7
|
###
|
8
8
|
|
9
9
|
require_relative './unixish'
|
10
|
+
require_relative 'pkgman/base'
|
10
11
|
|
11
12
|
module WXRuby3
|
12
13
|
|
@@ -17,6 +18,7 @@ module WXRuby3
|
|
17
18
|
def self.included(base)
|
18
19
|
base.class_eval do
|
19
20
|
include Config::UnixLike
|
21
|
+
|
20
22
|
alias :base_ldflags :ldflags
|
21
23
|
def ldflags(target)
|
22
24
|
"-Wl,-soname,#{File.basename(target)} #{base_ldflags(target)}"
|
@@ -31,10 +33,10 @@ module WXRuby3
|
|
31
33
|
|
32
34
|
def check_rpath_patch
|
33
35
|
unless @rpath_patch
|
34
|
-
if system('
|
36
|
+
if system('command -v patchelf > /dev/null')
|
35
37
|
@rpath_patch = 'patchelf --set-rpath'
|
36
38
|
else
|
37
|
-
STDERR.puts 'Installation of binary gem with-wxwin requires an installed version of
|
39
|
+
STDERR.puts 'Installation of binary gem with-wxwin requires an installed version of the patchelf utility.'
|
38
40
|
return false
|
39
41
|
end
|
40
42
|
end
|
@@ -48,6 +50,26 @@ module WXRuby3
|
|
48
50
|
end
|
49
51
|
false
|
50
52
|
end
|
53
|
+
|
54
|
+
def check_tool_pkgs
|
55
|
+
pkg_deps = super
|
56
|
+
# need g++ to build wxRuby3 extensions in any case
|
57
|
+
pkg_deps << 'g++' unless system('command -v g++>/dev/null')
|
58
|
+
# do we need to build wxWidgets?
|
59
|
+
if get_config('with-wxwin') && get_cfg_string('wxwin').empty?
|
60
|
+
pkg_deps << 'patchelf' unless system('command -v patchelf>/dev/null')
|
61
|
+
pkg_deps << 'make' unless system('command -v make>/dev/null')
|
62
|
+
pkg_deps << 'git' unless system('command -v git>/dev/null')
|
63
|
+
end
|
64
|
+
pkg_deps
|
65
|
+
end
|
66
|
+
|
67
|
+
def install_prerequisites
|
68
|
+
pkg_deps = check_tool_pkgs
|
69
|
+
PkgManager.install(pkg_deps)
|
70
|
+
[]
|
71
|
+
end
|
72
|
+
|
51
73
|
end
|
52
74
|
end
|
53
75
|
|
@@ -7,6 +7,7 @@
|
|
7
7
|
###
|
8
8
|
|
9
9
|
require_relative './unixish'
|
10
|
+
require_relative 'pkgman/macosx'
|
10
11
|
|
11
12
|
module WXRuby3
|
12
13
|
|
@@ -53,6 +54,21 @@ module WXRuby3
|
|
53
54
|
true
|
54
55
|
end
|
55
56
|
|
57
|
+
def check_tool_pkgs
|
58
|
+
pkg_deps = super
|
59
|
+
# need g++ to build wxRuby3 extensions in any case
|
60
|
+
pkg_deps << 'gcc' unless system('command -v g++>/dev/null')
|
61
|
+
# need this to build anything (like wxRuby3 extensions itself)
|
62
|
+
pkg_deps << 'xcode' unless system('command -v install_name_tool>/dev/null')
|
63
|
+
pkg_deps
|
64
|
+
end
|
65
|
+
|
66
|
+
def install_prerequisites
|
67
|
+
pkg_deps = check_tool_pkgs
|
68
|
+
PkgManager.install(pkg_deps)
|
69
|
+
[]
|
70
|
+
end
|
71
|
+
|
56
72
|
def get_wx_libs
|
57
73
|
wx_libset = ::Set.new
|
58
74
|
lib_list = wx_config("--libs all").split(' ')
|
data/rakelib/lib/config/mingw.rb
CHANGED
@@ -8,6 +8,9 @@
|
|
8
8
|
|
9
9
|
require_relative './unixish'
|
10
10
|
|
11
|
+
require 'uri'
|
12
|
+
|
13
|
+
|
11
14
|
if ENV['RI_DEVKIT'].nil?
|
12
15
|
begin
|
13
16
|
require 'devkit'
|
@@ -23,6 +26,13 @@ module WXRuby3
|
|
23
26
|
|
24
27
|
module Platform
|
25
28
|
|
29
|
+
SWIG_URL = 'https://sourceforge.net/projects/swig/files/swigwin/swigwin-4.2.0/swigwin-4.2.0.zip/download'
|
30
|
+
SWIG_ZIP = 'swigwin-4.2.0.zip'
|
31
|
+
|
32
|
+
DOXYGEN_URL = 'https://www.doxygen.nl/files/doxygen-1.10.0.windows.x64.bin.zip'
|
33
|
+
|
34
|
+
GIT_URL = 'https://github.com/git-for-windows/git/releases/download/v2.43.0.windows.1/MinGit-2.43.0-64-bit.zip'
|
35
|
+
|
26
36
|
def self.included(base)
|
27
37
|
base.class_eval do
|
28
38
|
include Config::UnixLike
|
@@ -65,20 +75,79 @@ module WXRuby3
|
|
65
75
|
ftmp.unlink # cleanup
|
66
76
|
end
|
67
77
|
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
78
|
+
def check_tool_pkgs
|
79
|
+
pkg_deps = []
|
80
|
+
pkg_deps << 'doxygen' if expand("which #{get_cfg_string('doxygen')} 2>/dev/null").strip.empty?
|
81
|
+
pkg_deps << 'swig' if expand("which #{get_cfg_string('swig')} 2>/dev/null").strip.empty?
|
82
|
+
pkg_deps << 'git' if expand("which #{get_cfg_string('git')} 2>/dev/null").strip.empty?
|
83
|
+
pkg_deps
|
72
84
|
end
|
73
85
|
|
74
|
-
def
|
75
|
-
|
76
|
-
|
86
|
+
def install_prerequisites
|
87
|
+
pkg_deps = super
|
88
|
+
unless pkg_deps.empty?
|
89
|
+
# autoinstall or not?
|
90
|
+
unless wants_autoinstall?
|
91
|
+
STDERR.puts <<~__ERROR_TXT
|
92
|
+
ERROR: This system lacks installed versions of the following required software packages:
|
93
|
+
#{pkg_deps.join(', ')}
|
94
|
+
|
95
|
+
Install these packages and try again.
|
96
|
+
__ERROR_TXT
|
97
|
+
exit(1)
|
98
|
+
end
|
99
|
+
# if SWIG was not found in the PATH
|
100
|
+
if pkg_deps.include?('swig')
|
101
|
+
$stdout.print 'Installing SWIG...' if run_silent?
|
102
|
+
# download and install SWIG
|
103
|
+
fname = download_and_install(SWIG_URL, SWIG_ZIP, 'swig.exe')
|
104
|
+
$stdout.puts 'done!' if run_silent?
|
105
|
+
Config.instance.log_progress("Installed #{fname}")
|
106
|
+
set_config('swig', fname)
|
107
|
+
Config.save
|
108
|
+
end
|
109
|
+
# if doxygen was not found in the PATH
|
110
|
+
if pkg_deps.include?('doxygen')
|
111
|
+
$stdout.print 'Installing Doxygen...' if run_silent?
|
112
|
+
# download and install doxygen
|
113
|
+
fname = download_and_install(DOXYGEN_URL, File.basename(URI(DOXYGEN_URL).path), 'doxygen.exe', 'doxygen')
|
114
|
+
$stdout.puts 'done!' if run_silent?
|
115
|
+
Config.instance.log_progress("Installed #{fname}")
|
116
|
+
set_config('doxygen', fname)
|
117
|
+
Config.save
|
118
|
+
end
|
119
|
+
# if git was not found in the PATH
|
120
|
+
if pkg_deps.include?('git')
|
121
|
+
$stdout.print 'Installing Git...' if run_silent?
|
122
|
+
# download and install doxygen
|
123
|
+
fname = download_and_install(GIT_URL, File.basename(URI(GIT_URL).path), 'git.exe', 'git')
|
124
|
+
$stdout.puts 'done!' if run_silent?
|
125
|
+
Config.instance.log_progress("Installed #{fname}")
|
126
|
+
set_config('git', fname)
|
127
|
+
Config.save
|
128
|
+
end
|
77
129
|
end
|
130
|
+
[]
|
78
131
|
end
|
79
132
|
|
80
|
-
|
81
|
-
|
133
|
+
# only called after src gem build
|
134
|
+
def cleanup_prerequisites
|
135
|
+
tmp_tool_root = File.join(ENV['HOME'].gsub("\\", '/'), '.wxruby3')
|
136
|
+
path = get_cfg_string('swig')
|
137
|
+
unless path.empty? || !path.start_with?(tmp_tool_root)
|
138
|
+
path = File.dirname(path) while File.dirname(path) != tmp_tool_root
|
139
|
+
rm_rf(path)
|
140
|
+
end
|
141
|
+
path = get_cfg_string('doxygen')
|
142
|
+
unless path.empty? || !path.start_with?(tmp_tool_root)
|
143
|
+
path = File.dirname(path) while File.dirname(path) != tmp_tool_root
|
144
|
+
rm_rf(path)
|
145
|
+
end
|
146
|
+
path = get_cfg_string('git')
|
147
|
+
unless path.empty? || !path.start_with?(tmp_tool_root)
|
148
|
+
path = File.dirname(path) while File.dirname(path) != tmp_tool_root
|
149
|
+
rm_rf(path)
|
150
|
+
end
|
82
151
|
end
|
83
152
|
|
84
153
|
def expand(cmd)
|
@@ -93,6 +162,61 @@ module WXRuby3
|
|
93
162
|
super(*cmd, **kwargs)
|
94
163
|
end
|
95
164
|
|
165
|
+
private
|
166
|
+
|
167
|
+
def download_and_install(url, zip, exe, unpack_to=nil)
|
168
|
+
# make sure the download destination exists
|
169
|
+
tmp_tool_root = File.join(ENV['HOME'].gsub("\\", '/'), '.wxruby3')
|
170
|
+
dest = unpack_to ? File.join(tmp_tool_root, unpack_to) : File.join(tmp_tool_root, File.basename(zip, '.*'))
|
171
|
+
mkdir(tmp_tool_root) unless File.directory?(tmp_tool_root)
|
172
|
+
# download
|
173
|
+
chdir(tmp_tool_root) do
|
174
|
+
unless sh("curl -L #{url} --output #{zip}")
|
175
|
+
STDERR.puts "ERROR: Failed to download installation package for #{exe}"
|
176
|
+
exit(1)
|
177
|
+
end
|
178
|
+
# unpack
|
179
|
+
unless sh("powershell Expand-Archive -LiteralPath '#{zip}' -DestinationPath #{dest} -Force")
|
180
|
+
STDERR.puts "ERROR: Failed to unpack installation package for #{exe}"
|
181
|
+
exit(1)
|
182
|
+
end
|
183
|
+
# cleanup
|
184
|
+
rm_f(zip)
|
185
|
+
end
|
186
|
+
# find executable
|
187
|
+
find_exe(dest, exe)
|
188
|
+
end
|
189
|
+
|
190
|
+
def find_exe(path, exe)
|
191
|
+
fp = Dir.glob(File.join(path, '*')).find { |p| File.file?(p) && File.basename(p) == exe }
|
192
|
+
unless fp
|
193
|
+
Dir.glob(File.join(path, '*')).each do |p|
|
194
|
+
fp = find_exe(p, exe) if File.directory?(p)
|
195
|
+
return fp if fp
|
196
|
+
end
|
197
|
+
end
|
198
|
+
fp
|
199
|
+
end
|
200
|
+
|
201
|
+
def wx_make
|
202
|
+
bash('make && make install')
|
203
|
+
end
|
204
|
+
|
205
|
+
def wx_generate_xml
|
206
|
+
doxygen = get_cfg_string("doxygen")
|
207
|
+
doxygen = nix_path(doxygen) unless doxygen == 'doxygen'
|
208
|
+
chdir(File.join(ext_path, 'wxWidgets', 'docs', 'doxygen')) do
|
209
|
+
unless bash({ 'DOXYGEN' => doxygen, 'WX_SKIP_DOXYGEN_VERSION_CHECK' => '1' }, './regen.sh', 'xml')
|
210
|
+
$stderr.puts 'ERROR: Failed to generate wxWidgets XML API specifications for parsing by wxRuby3.'
|
211
|
+
exit(1)
|
212
|
+
end
|
213
|
+
end
|
214
|
+
end
|
215
|
+
|
216
|
+
def respawn_rake(argv = ARGV)
|
217
|
+
Kernel.exec('rake', *argv)
|
218
|
+
end
|
219
|
+
|
96
220
|
def nix_path(winpath)
|
97
221
|
(winpath.nil? || winpath.empty?) ? '' : `cygpath -a -u #{winpath}`.strip
|
98
222
|
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
# Copyright (c) 2023 M.J.N. Corino, The Netherlands
|
2
|
+
#
|
3
|
+
# This software is released under the MIT license.
|
4
|
+
|
5
|
+
###
|
6
|
+
# wxRuby3 buildtools platform pkg manager for Arch Linux type systems
|
7
|
+
###
|
8
|
+
|
9
|
+
module WXRuby3
|
10
|
+
|
11
|
+
module Config
|
12
|
+
|
13
|
+
module Platform
|
14
|
+
|
15
|
+
module PkgManager
|
16
|
+
|
17
|
+
PLATFORM_DEPS = %w[pkg-config gtk3 webkit2gtk gspell libunwind gstreamer curl libsecret libnotify libpng12]
|
18
|
+
|
19
|
+
class << self
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def do_install(distro, pkgs)
|
24
|
+
run_pacman(make_install_cmd(pkgs))
|
25
|
+
end
|
26
|
+
|
27
|
+
def add_platform_pkgs(pkgs)
|
28
|
+
if pkgs.include?('g++')
|
29
|
+
pkgs.delete('g++')
|
30
|
+
pkgs << 'gcc'
|
31
|
+
end
|
32
|
+
# find pkgs we need
|
33
|
+
PLATFORM_DEPS.inject(pkgs) { |list, pkg| list << pkg unless system("pacman -Qq #{pkg} >/dev/null 2>&1"); list }
|
34
|
+
end
|
35
|
+
|
36
|
+
def run_pacman(cmd)
|
37
|
+
run("pacman -q --noconfirm #{cmd}")
|
38
|
+
end
|
39
|
+
|
40
|
+
def make_install_cmd(pkgs)
|
41
|
+
# create install command
|
42
|
+
"-S --needed #{ pkgs.join(' ') }"
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|