wxruby3 0.9.5-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 +31 -20
- 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/ext.rb +22 -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 +1 -1
- data/lib/wx/doc/gen/art_provider.rb +1 -1
- 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 -348
- 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 -38
- 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 -1
- data/lib/wx/doc/gen/colour_dialog.rb +1 -1
- 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 +1 -1
- data/lib/wx/doc/gen/combo_ctrl.rb +1 -1
- 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 -1
- 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 -1
- 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 +1 -1
- 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 -1
- data/lib/wx/doc/gen/file_dialog_custom_control.rb +1 -1
- data/lib/wx/doc/gen/file_dialog_customize_hook.rb +1 -1
- 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 +1 -1
- 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 -1
- 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 +2722 -2718
- 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 -1
- 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 -1
- 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 -1
- 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 -1
- 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 -1
- 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 -1
- 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 -1925
- data/lib/wx/doc/gen/pg/pg_validation_info.rb +275 -271
- data/lib/wx/doc/gen/pg/property_grid.rb +708 -704
- 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 -382
- data/lib/wx/doc/gen/pg/property_grid_page.rb +267 -263
- data/lib/wx/doc/gen/pg/property_grid_page_state.rb +147 -143
- 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 -17
- 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 -84
- 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 -282
- 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 -43
- 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 -1
- 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 -1
- data/lib/wx/doc/gen/sizer_item.rb +1 -1
- data/lib/wx/doc/gen/slider.rb +1 -1
- 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 +1 -1
- 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 -4198
- data/lib/wx/doc/gen/stc/styled_text_event.rb +7511 -7507
- 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 -1
- 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 -1
- 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 -1
- 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 -1
- 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 -1
- data/lib/wx/doc/gen/wizard_event.rb +1 -1
- data/lib/wx/doc/gen/wizard_page.rb +1 -1
- 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/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
- metadata +23 -4
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
|
@@ -0,0 +1,169 @@
|
|
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 base
|
7
|
+
###
|
8
|
+
|
9
|
+
module WXRuby3
|
10
|
+
|
11
|
+
module Config
|
12
|
+
|
13
|
+
module Platform
|
14
|
+
|
15
|
+
module PkgManager
|
16
|
+
|
17
|
+
MIN_GENERIC_PKGS = %w[gtk3-devel patchelf g++ make git webkit2gtk3-devel gspell-devel gstreamer-devel gstreamer-plugins-base-devel libcurl-devel libsecret-devel libnotify-devel libSDL-devel zlib-devel]
|
18
|
+
|
19
|
+
class << self
|
20
|
+
|
21
|
+
def install(pkgs)
|
22
|
+
# do we need to install anything?
|
23
|
+
if !pkgs.empty? || builds_wxwidgets?
|
24
|
+
# determine the linux distro specs
|
25
|
+
distro = get_distro
|
26
|
+
begin
|
27
|
+
# load distro installation support
|
28
|
+
require_relative "./#{distro[:type]}"
|
29
|
+
rescue LoadError
|
30
|
+
# do we need to build wxWidgets?
|
31
|
+
pkgs.concat(MIN_GENERIC_PKGS) if builds_wxwidgets?
|
32
|
+
$stderr.puts <<~__ERROR_TXT
|
33
|
+
ERROR: Do not know how to install required packages for distro type '#{distro[:type]}'.
|
34
|
+
|
35
|
+
Make sure the following packages (or equivalent) are installed and than try again with `WXRUBY_NO_AUTOINSTALL=1`:
|
36
|
+
#{pkgs.join(', ')}
|
37
|
+
__ERROR_TXT
|
38
|
+
exit(1)
|
39
|
+
end
|
40
|
+
# can we install?
|
41
|
+
unless no_autoinstall? || has_sudo? || is_root?
|
42
|
+
$stderr.puts 'ERROR: Cannot check for or install required packages. Please install sudo or run as root and try again.'
|
43
|
+
exit(1)
|
44
|
+
end
|
45
|
+
# do we need to build wxWidgets?
|
46
|
+
if builds_wxwidgets?
|
47
|
+
# add platform specific packages for wxWidgets
|
48
|
+
add_platform_pkgs(pkgs)
|
49
|
+
end
|
50
|
+
# do we actually have any packages to install?
|
51
|
+
unless pkgs.empty?
|
52
|
+
# autoinstall or not?
|
53
|
+
unless wants_autoinstall?
|
54
|
+
$stderr.puts <<~__ERROR_TXT
|
55
|
+
ERROR: This system may lack installed versions of the following required software packages:
|
56
|
+
#{pkgs.join(', ')}
|
57
|
+
|
58
|
+
Install these packages and try again.
|
59
|
+
__ERROR_TXT
|
60
|
+
exit(1)
|
61
|
+
end
|
62
|
+
# do the actual install
|
63
|
+
unless do_install(distro, pkgs)
|
64
|
+
$stderr.puts <<~__ERROR_TXT
|
65
|
+
ERROR: Failed to install all or some of the following required software packages:
|
66
|
+
#{pkgs.join(', ')}
|
67
|
+
|
68
|
+
Fix any problems or install these packages yourself and try again.
|
69
|
+
__ERROR_TXT
|
70
|
+
if WXRuby3.config.run_silent?
|
71
|
+
$stderr.puts "For error details check #{WXRuby3.config.silent_log_name}"
|
72
|
+
end
|
73
|
+
exit(1)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
private
|
80
|
+
|
81
|
+
def builds_wxwidgets?
|
82
|
+
Config.get_config('with-wxwin') && Config.get_cfg_string('wxwin').empty?
|
83
|
+
end
|
84
|
+
|
85
|
+
def no_autoinstall?
|
86
|
+
Config.get_config('autoinstall') == false
|
87
|
+
end
|
88
|
+
|
89
|
+
def wants_autoinstall?
|
90
|
+
WXRuby3.config.wants_autoinstall?
|
91
|
+
end
|
92
|
+
|
93
|
+
def has_sudo?
|
94
|
+
system('command -v sudo > /dev/null')
|
95
|
+
end
|
96
|
+
|
97
|
+
def is_root?
|
98
|
+
`id -u 2>/dev/null`.chomp == '0'
|
99
|
+
end
|
100
|
+
|
101
|
+
def run(cmd)
|
102
|
+
$stdout.print "Running #{cmd}..."
|
103
|
+
rc = WXRuby3.config.sh("#{is_root? ? '' : 'sudo '}#{cmd}")
|
104
|
+
$stderr.puts (rc ? 'done!' : 'FAILED!')
|
105
|
+
rc
|
106
|
+
end
|
107
|
+
|
108
|
+
def expand(cmd)
|
109
|
+
`#{is_root? ? '' : 'sudo '}#{cmd}`
|
110
|
+
end
|
111
|
+
|
112
|
+
def get_distro
|
113
|
+
if File.file?('/etc/os-release') # works with most (if not all) recent distro releases
|
114
|
+
data = File.readlines('/etc/os-release').reduce({}) do |hash, line|
|
115
|
+
val, var = line.split('=')
|
116
|
+
hash[val] = var.strip.gsub(/(\A")|("\Z)/, '')
|
117
|
+
hash
|
118
|
+
end
|
119
|
+
{
|
120
|
+
type: if data['ID_LIKE']
|
121
|
+
data['ID_LIKE'].split.first.to_sym
|
122
|
+
elsif File.file?('/etc/redhat-release')
|
123
|
+
:rhel
|
124
|
+
elsif File.file?('/etc/SUSE-brand') || File.file?('/etc/SuSE-release')
|
125
|
+
:suse
|
126
|
+
elsif File.file?('/etc/debian_version')
|
127
|
+
:debian
|
128
|
+
else
|
129
|
+
data['ID'].to_sym
|
130
|
+
end,
|
131
|
+
distro: data['ID'].downcase,
|
132
|
+
release: data['VERSION_ID']
|
133
|
+
}
|
134
|
+
elsif File.file?('/etc/redhat-release')
|
135
|
+
data = File.read('/etc/redhat-release').strip
|
136
|
+
{
|
137
|
+
type: :rhel,
|
138
|
+
distro: data.split.shift.downcase,
|
139
|
+
release: data =~ /\d+(\.\d+)*/ ? $~[0] : ''
|
140
|
+
}
|
141
|
+
elsif File.file?('/etc/SUSE-brand') || File.file?('/etc/SuSE-release')
|
142
|
+
data = File.readlines(File.file?('/etc/SUSE-brand') ? '/etc/SUSE-brand' : '/etc/SuSE-release')
|
143
|
+
{
|
144
|
+
type: :suse,
|
145
|
+
distro: data.shift.split.shift.downcase,
|
146
|
+
release: (data.find { |s| s.strip =~ /\AVERSION\s*=/ } || '').split('=').last || ''
|
147
|
+
}
|
148
|
+
elsif File.file?('/etc/debian_version')
|
149
|
+
{
|
150
|
+
type: :debian,
|
151
|
+
distro: 'generic',
|
152
|
+
release: File.read('/etc/debian_version').strip
|
153
|
+
}
|
154
|
+
else
|
155
|
+
{
|
156
|
+
type: :unknown
|
157
|
+
}
|
158
|
+
end
|
159
|
+
end
|
160
|
+
|
161
|
+
end
|
162
|
+
|
163
|
+
end
|
164
|
+
|
165
|
+
end
|
166
|
+
|
167
|
+
end
|
168
|
+
|
169
|
+
end
|
@@ -0,0 +1,66 @@
|
|
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 Debian type systems
|
7
|
+
###
|
8
|
+
|
9
|
+
module WXRuby3
|
10
|
+
|
11
|
+
module Config
|
12
|
+
|
13
|
+
module Platform
|
14
|
+
|
15
|
+
module PkgManager
|
16
|
+
|
17
|
+
PLATFORM_DEPS = %w[libgtk-3-dev libwebkit2gtk-4.0-dev libgspell-1-dev libunwind-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libcurl4-openssl-dev libsecret-1-dev libnotify-dev]
|
18
|
+
|
19
|
+
class << self
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def do_install(distro, pkgs)
|
24
|
+
run_apt(make_install_cmd(pkgs))
|
25
|
+
end
|
26
|
+
|
27
|
+
def add_platform_pkgs(pkgs)
|
28
|
+
# get architecture
|
29
|
+
arch = expand('dpkg --print-architecture').strip
|
30
|
+
# find pkgs we need
|
31
|
+
PLATFORM_DEPS.inject(pkgs) do |list, pkg|
|
32
|
+
list << pkg unless (system("dpkg-query -s \"#{pkg}:#{arch}\" >/dev/null 2>&1") ||
|
33
|
+
system("dpkg-query -s \"#{pkg}:all\" >/dev/null 2>&1") ||
|
34
|
+
(expand("dpkg-query -s \"#{pkg}\" 2>/dev/null").strip =~ /Architecture: (#{arch}|all)/))
|
35
|
+
list
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def run_apt(cmd)
|
40
|
+
run("DEBIAN_FRONTEND=noninteractive apt-get -q -o=Dpkg::Use-Pty=0 #{cmd}")
|
41
|
+
end
|
42
|
+
|
43
|
+
def update_pkgs
|
44
|
+
run_apt('update')
|
45
|
+
end
|
46
|
+
|
47
|
+
def make_install_cmd(pkgs)
|
48
|
+
# update cache
|
49
|
+
update_pkgs
|
50
|
+
# get list of available packages
|
51
|
+
apt_cache = `apt-cache pkgnames`.chomp.split("\n").collect { |s| s.strip }
|
52
|
+
# remove un-installables
|
53
|
+
pkgs = pkgs.select { |pkg| apt_cache.include?(pkg) }
|
54
|
+
# create install command
|
55
|
+
"install -y #{ pkgs.join(' ') }"
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|