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.
Files changed (386) hide show
  1. checksums.yaml +4 -4
  2. data/.wxconfig +9 -8
  3. data/INSTALL.md +315 -78
  4. data/README.md +31 -20
  5. data/ext/wxbase32u_gcc_custom.dll +0 -0
  6. data/ext/wxbase32u_net_gcc_custom.dll +0 -0
  7. data/ext/wxbase32u_xml_gcc_custom.dll +0 -0
  8. data/ext/wxmsw32u_aui_gcc_custom.dll +0 -0
  9. data/ext/wxmsw32u_core_gcc_custom.dll +0 -0
  10. data/ext/wxmsw32u_gl_gcc_custom.dll +0 -0
  11. data/ext/wxmsw32u_html_gcc_custom.dll +0 -0
  12. data/ext/wxmsw32u_media_gcc_custom.dll +0 -0
  13. data/ext/wxmsw32u_propgrid_gcc_custom.dll +0 -0
  14. data/ext/wxmsw32u_qa_gcc_custom.dll +0 -0
  15. data/ext/wxmsw32u_ribbon_gcc_custom.dll +0 -0
  16. data/ext/wxmsw32u_richtext_gcc_custom.dll +0 -0
  17. data/ext/wxmsw32u_stc_gcc_custom.dll +0 -0
  18. data/ext/wxmsw32u_webview_gcc_custom.dll +0 -0
  19. data/ext/wxmsw32u_xrc_gcc_custom.dll +0 -0
  20. data/lib/wx/core/ext.rb +22 -3
  21. data/lib/wx/doc/gen/about_dialog_info.rb +1 -1
  22. data/lib/wx/doc/gen/accelerator.rb +1 -1
  23. data/lib/wx/doc/gen/accessible.rb +1 -1
  24. data/lib/wx/doc/gen/activity_indicator.rb +1 -1
  25. data/lib/wx/doc/gen/animation.rb +1 -1
  26. data/lib/wx/doc/gen/animation_ctrl.rb +1 -1
  27. data/lib/wx/doc/gen/any_button.rb +1 -1
  28. data/lib/wx/doc/gen/app.rb +1 -1
  29. data/lib/wx/doc/gen/app_traits.rb +1 -1
  30. data/lib/wx/doc/gen/art_provider.rb +1 -1
  31. data/lib/wx/doc/gen/aui/aui_dock_art.rb +430 -426
  32. data/lib/wx/doc/gen/aui/aui_floating_frame.rb +34 -30
  33. data/lib/wx/doc/gen/aui/aui_manager.rb +352 -348
  34. data/lib/wx/doc/gen/aui/aui_manager_event.rb +107 -103
  35. data/lib/wx/doc/gen/aui/aui_mdi_child_frame.rb +157 -153
  36. data/lib/wx/doc/gen/aui/aui_mdi_client_window.rb +42 -38
  37. data/lib/wx/doc/gen/aui/aui_mdi_parent_frame.rb +109 -105
  38. data/lib/wx/doc/gen/aui/aui_notebook.rb +438 -434
  39. data/lib/wx/doc/gen/aui/aui_notebook_event.rb +145 -141
  40. data/lib/wx/doc/gen/aui/aui_pane_info.rb +689 -685
  41. data/lib/wx/doc/gen/aui/aui_tab_art.rb +369 -365
  42. data/lib/wx/doc/gen/aui/aui_tab_ctrl.rb +100 -96
  43. data/lib/wx/doc/gen/aui/aui_tool_bar.rb +445 -441
  44. data/lib/wx/doc/gen/aui/aui_tool_bar_art.rb +268 -264
  45. data/lib/wx/doc/gen/aui/aui_tool_bar_event.rb +179 -175
  46. data/lib/wx/doc/gen/aui/aui_tool_bar_item.rb +219 -215
  47. data/lib/wx/doc/gen/banner_window.rb +1 -1
  48. data/lib/wx/doc/gen/bitmap.rb +1 -1
  49. data/lib/wx/doc/gen/bitmap_button.rb +1 -1
  50. data/lib/wx/doc/gen/bitmap_combo_box.rb +1 -1
  51. data/lib/wx/doc/gen/book_ctrl_base.rb +1 -1
  52. data/lib/wx/doc/gen/book_ctrl_event.rb +1 -1
  53. data/lib/wx/doc/gen/box_sizer.rb +1 -1
  54. data/lib/wx/doc/gen/brush.rb +1 -1
  55. data/lib/wx/doc/gen/busy_info.rb +1 -1
  56. data/lib/wx/doc/gen/button.rb +1 -1
  57. data/lib/wx/doc/gen/calculate_layout_event.rb +1 -1
  58. data/lib/wx/doc/gen/calendar_ctrl.rb +1 -1
  59. data/lib/wx/doc/gen/calendar_date_attr.rb +1 -1
  60. data/lib/wx/doc/gen/calendar_event.rb +1 -1
  61. data/lib/wx/doc/gen/caret.rb +1 -1
  62. data/lib/wx/doc/gen/check_box.rb +1 -1
  63. data/lib/wx/doc/gen/check_list_box.rb +1 -1
  64. data/lib/wx/doc/gen/choice.rb +1 -1
  65. data/lib/wx/doc/gen/choicebook.rb +1 -1
  66. data/lib/wx/doc/gen/client_dc.rb +1 -1
  67. data/lib/wx/doc/gen/clipboard.rb +1 -1
  68. data/lib/wx/doc/gen/collapsible_pane.rb +1 -1
  69. data/lib/wx/doc/gen/collapsible_pane_event.rb +1 -1
  70. data/lib/wx/doc/gen/colour.rb +1 -1
  71. data/lib/wx/doc/gen/colour_dialog.rb +1 -1
  72. data/lib/wx/doc/gen/colour_picker_ctrl.rb +1 -1
  73. data/lib/wx/doc/gen/colour_picker_event.rb +1 -1
  74. data/lib/wx/doc/gen/combo_box.rb +1 -1
  75. data/lib/wx/doc/gen/combo_ctrl.rb +1 -1
  76. data/lib/wx/doc/gen/command_link_button.rb +1 -1
  77. data/lib/wx/doc/gen/config_base.rb +1 -1
  78. data/lib/wx/doc/gen/context_help_button.rb +1 -1
  79. data/lib/wx/doc/gen/control.rb +1 -1
  80. data/lib/wx/doc/gen/control_with_items.rb +1 -1
  81. data/lib/wx/doc/gen/core.rb +5 -5
  82. data/lib/wx/doc/gen/cursor.rb +1 -1
  83. data/lib/wx/doc/gen/data_format.rb +1 -1
  84. data/lib/wx/doc/gen/data_object.rb +1 -1
  85. data/lib/wx/doc/gen/data_object_simple_base.rb +1 -1
  86. data/lib/wx/doc/gen/date_event.rb +1 -1
  87. data/lib/wx/doc/gen/date_picker_ctrl.rb +1 -1
  88. data/lib/wx/doc/gen/dc.rb +1 -1
  89. data/lib/wx/doc/gen/defs.rb +1 -1
  90. data/lib/wx/doc/gen/dial_up_event.rb +1 -1
  91. data/lib/wx/doc/gen/dial_up_manager.rb +1 -1
  92. data/lib/wx/doc/gen/dialog.rb +1 -1
  93. data/lib/wx/doc/gen/dir_dialog.rb +1 -1
  94. data/lib/wx/doc/gen/dir_filter_list_ctrl.rb +1 -1
  95. data/lib/wx/doc/gen/dir_picker_ctrl.rb +1 -1
  96. data/lib/wx/doc/gen/drag_drop.rb +1 -1
  97. data/lib/wx/doc/gen/drag_image.rb +1 -1
  98. data/lib/wx/doc/gen/editable_list_box.rb +1 -1
  99. data/lib/wx/doc/gen/event.rb +1 -1
  100. data/lib/wx/doc/gen/event_blocker.rb +1 -1
  101. data/lib/wx/doc/gen/event_filter.rb +1 -1
  102. data/lib/wx/doc/gen/events.rb +1 -1
  103. data/lib/wx/doc/gen/evt_handler.rb +1 -1
  104. data/lib/wx/doc/gen/ext_help_controller.rb +1 -1
  105. data/lib/wx/doc/gen/file_ctrl.rb +1 -1
  106. data/lib/wx/doc/gen/file_ctrl_event.rb +1 -1
  107. data/lib/wx/doc/gen/file_dialog.rb +1 -1
  108. data/lib/wx/doc/gen/file_dialog_custom_control.rb +1 -1
  109. data/lib/wx/doc/gen/file_dialog_customize_hook.rb +1 -1
  110. data/lib/wx/doc/gen/file_dir_picker_event.rb +1 -1
  111. data/lib/wx/doc/gen/file_picker_ctrl.rb +1 -1
  112. data/lib/wx/doc/gen/file_system.rb +1 -1
  113. data/lib/wx/doc/gen/find_dialog_event.rb +1 -1
  114. data/lib/wx/doc/gen/find_replace_data.rb +1 -1
  115. data/lib/wx/doc/gen/find_replace_dialog.rb +1 -1
  116. data/lib/wx/doc/gen/flex_grid_sizer.rb +1 -1
  117. data/lib/wx/doc/gen/font.rb +1 -1
  118. data/lib/wx/doc/gen/font_data.rb +1 -1
  119. data/lib/wx/doc/gen/font_dialog.rb +1 -1
  120. data/lib/wx/doc/gen/font_picker_ctrl.rb +1 -1
  121. data/lib/wx/doc/gen/font_picker_event.rb +1 -1
  122. data/lib/wx/doc/gen/frame.rb +1 -1
  123. data/lib/wx/doc/gen/fs_file.rb +1 -1
  124. data/lib/wx/doc/gen/functions.rb +1 -1
  125. data/lib/wx/doc/gen/gauge.rb +1 -1
  126. data/lib/wx/doc/gen/gb_sizer_item.rb +1 -1
  127. data/lib/wx/doc/gen/gcdc.rb +1 -1
  128. data/lib/wx/doc/gen/gdi_common.rb +3 -3
  129. data/lib/wx/doc/gen/gdi_object.rb +1 -1
  130. data/lib/wx/doc/gen/generic_dir_ctrl.rb +1 -1
  131. data/lib/wx/doc/gen/graphics_context.rb +1 -1
  132. data/lib/wx/doc/gen/graphics_object.rb +1 -1
  133. data/lib/wx/doc/gen/grid/grid_cell_activatable_editor.rb +28 -24
  134. data/lib/wx/doc/gen/grid/grid_cell_attr.rb +251 -247
  135. data/lib/wx/doc/gen/grid/grid_cell_auto_wrap_string_editor.rb +25 -21
  136. data/lib/wx/doc/gen/grid/grid_cell_auto_wrap_string_renderer.rb +27 -23
  137. data/lib/wx/doc/gen/grid/grid_cell_bool_editor.rb +38 -34
  138. data/lib/wx/doc/gen/grid/grid_cell_bool_renderer.rb +25 -21
  139. data/lib/wx/doc/gen/grid/grid_cell_choice_editor.rb +35 -31
  140. data/lib/wx/doc/gen/grid/grid_cell_date_editor.rb +28 -24
  141. data/lib/wx/doc/gen/grid/grid_cell_date_renderer.rb +34 -30
  142. data/lib/wx/doc/gen/grid/grid_cell_date_time_renderer.rb +30 -26
  143. data/lib/wx/doc/gen/grid/grid_cell_editor.rb +183 -179
  144. data/lib/wx/doc/gen/grid/grid_cell_enum_editor.rb +29 -25
  145. data/lib/wx/doc/gen/grid/grid_cell_enum_renderer.rb +33 -29
  146. data/lib/wx/doc/gen/grid/grid_cell_float_editor.rb +34 -30
  147. data/lib/wx/doc/gen/grid/grid_cell_float_renderer.rb +67 -63
  148. data/lib/wx/doc/gen/grid/grid_cell_number_editor.rb +34 -30
  149. data/lib/wx/doc/gen/grid/grid_cell_number_renderer.rb +25 -21
  150. data/lib/wx/doc/gen/grid/grid_cell_renderer.rb +93 -89
  151. data/lib/wx/doc/gen/grid/grid_cell_string_renderer.rb +25 -21
  152. data/lib/wx/doc/gen/grid/grid_cell_text_editor.rb +38 -34
  153. data/lib/wx/doc/gen/grid/grid_ctrl.rb +2722 -2718
  154. data/lib/wx/doc/gen/grid/grid_editor_created_event.rb +82 -78
  155. data/lib/wx/doc/gen/grid/grid_event.rb +106 -102
  156. data/lib/wx/doc/gen/grid/grid_range_select_event.rb +93 -89
  157. data/lib/wx/doc/gen/grid/grid_size_event.rb +70 -66
  158. data/lib/wx/doc/gen/grid/grid_string_table.rb +130 -126
  159. data/lib/wx/doc/gen/grid/grid_table_base.rb +303 -299
  160. data/lib/wx/doc/gen/grid/grid_table_message.rb +70 -66
  161. data/lib/wx/doc/gen/grid_bag_sizer.rb +1 -1
  162. data/lib/wx/doc/gen/grid_sizer.rb +1 -1
  163. data/lib/wx/doc/gen/gui_event_loop.rb +1 -1
  164. data/lib/wx/doc/gen/header_ctrl.rb +1 -1
  165. data/lib/wx/doc/gen/header_ctrl_event.rb +1 -1
  166. data/lib/wx/doc/gen/help_controller.rb +1 -1
  167. data/lib/wx/doc/gen/help_provider.rb +1 -1
  168. data/lib/wx/doc/gen/html/html_cell.rb +515 -511
  169. data/lib/wx/doc/gen/html/html_cell_event.rb +58 -54
  170. data/lib/wx/doc/gen/html/html_easy_printing.rb +171 -167
  171. data/lib/wx/doc/gen/html/html_help_controller.rb +292 -288
  172. data/lib/wx/doc/gen/html/html_help_data.rb +147 -143
  173. data/lib/wx/doc/gen/html/html_help_window.rb +232 -228
  174. data/lib/wx/doc/gen/html/html_link_event.rb +30 -26
  175. data/lib/wx/doc/gen/html/html_list_box.rb +301 -297
  176. data/lib/wx/doc/gen/html/html_printout.rb +94 -90
  177. data/lib/wx/doc/gen/html/html_window.rb +406 -402
  178. data/lib/wx/doc/gen/hyperlink_ctrl.rb +1 -1
  179. data/lib/wx/doc/gen/hyperlink_event.rb +1 -1
  180. data/lib/wx/doc/gen/icon.rb +1 -1
  181. data/lib/wx/doc/gen/icon_location.rb +1 -1
  182. data/lib/wx/doc/gen/image.rb +1 -1
  183. data/lib/wx/doc/gen/image_list.rb +1 -1
  184. data/lib/wx/doc/gen/info_bar.rb +1 -1
  185. data/lib/wx/doc/gen/keyboard_state.rb +1 -1
  186. data/lib/wx/doc/gen/list_box.rb +1 -1
  187. data/lib/wx/doc/gen/list_ctrl.rb +1 -1
  188. data/lib/wx/doc/gen/list_event.rb +1 -1
  189. data/lib/wx/doc/gen/listbook.rb +1 -1
  190. data/lib/wx/doc/gen/locale.rb +1 -1
  191. data/lib/wx/doc/gen/log.rb +1 -1
  192. data/lib/wx/doc/gen/mdi_client_window.rb +1 -1
  193. data/lib/wx/doc/gen/mdi_frame.rb +1 -1
  194. data/lib/wx/doc/gen/media_ctrl.rb +1 -1
  195. data/lib/wx/doc/gen/media_event.rb +1 -1
  196. data/lib/wx/doc/gen/memory_dc.rb +1 -1
  197. data/lib/wx/doc/gen/menu.rb +1 -1
  198. data/lib/wx/doc/gen/menu_bar.rb +1 -1
  199. data/lib/wx/doc/gen/menu_item.rb +1 -1
  200. data/lib/wx/doc/gen/message_dialog.rb +1 -1
  201. data/lib/wx/doc/gen/mini_frame.rb +1 -1
  202. data/lib/wx/doc/gen/mirror_dc.rb +1 -1
  203. data/lib/wx/doc/gen/mouse_state.rb +1 -1
  204. data/lib/wx/doc/gen/multi_choice_dialog.rb +1 -1
  205. data/lib/wx/doc/gen/non_owned_window.rb +1 -1
  206. data/lib/wx/doc/gen/notebook.rb +1 -1
  207. data/lib/wx/doc/gen/num_validator.rb +1 -1
  208. data/lib/wx/doc/gen/number_entry_dialog.rb +1 -1
  209. data/lib/wx/doc/gen/object.rb +1 -1
  210. data/lib/wx/doc/gen/owner_drawn_combo_box.rb +1 -1
  211. data/lib/wx/doc/gen/paint_dc.rb +1 -1
  212. data/lib/wx/doc/gen/palette.rb +1 -1
  213. data/lib/wx/doc/gen/panel.rb +1 -1
  214. data/lib/wx/doc/gen/pen.rb +1 -1
  215. data/lib/wx/doc/gen/persistence_manager.rb +1 -1
  216. data/lib/wx/doc/gen/persistent_object.rb +1 -1
  217. data/lib/wx/doc/gen/persistent_window.rb +1 -1
  218. data/lib/wx/doc/gen/pg/numeric_property_validator.rb +33 -29
  219. data/lib/wx/doc/gen/pg/pg_array_editor_dialog.rb +299 -295
  220. data/lib/wx/doc/gen/pg/pg_cell.rb +162 -158
  221. data/lib/wx/doc/gen/pg/pg_editor.rb +693 -689
  222. data/lib/wx/doc/gen/pg/pg_multi_button.rb +133 -129
  223. data/lib/wx/doc/gen/pg/pg_properties.rb +2662 -2658
  224. data/lib/wx/doc/gen/pg/pg_property.rb +1929 -1925
  225. data/lib/wx/doc/gen/pg/pg_validation_info.rb +275 -271
  226. data/lib/wx/doc/gen/pg/property_grid.rb +708 -704
  227. data/lib/wx/doc/gen/pg/property_grid_event.rb +168 -164
  228. data/lib/wx/doc/gen/pg/property_grid_interface.rb +1071 -1067
  229. data/lib/wx/doc/gen/pg/property_grid_manager.rb +386 -382
  230. data/lib/wx/doc/gen/pg/property_grid_page.rb +267 -263
  231. data/lib/wx/doc/gen/pg/property_grid_page_state.rb +147 -143
  232. data/lib/wx/doc/gen/picker_base.rb +1 -1
  233. data/lib/wx/doc/gen/platform_info.rb +1 -1
  234. data/lib/wx/doc/gen/popup_window.rb +1 -1
  235. data/lib/wx/doc/gen/progress_dialog.rb +1 -1
  236. data/lib/wx/doc/gen/property_sheet_dialog.rb +1 -1
  237. data/lib/wx/doc/gen/prt/page_setup_dialog.rb +32 -28
  238. data/lib/wx/doc/gen/prt/post_script_dc.rb +21 -17
  239. data/lib/wx/doc/gen/prt/preview_frame.rb +49 -45
  240. data/lib/wx/doc/gen/prt/print_abort_dialog.rb +126 -122
  241. data/lib/wx/doc/gen/prt/print_data.rb +637 -633
  242. data/lib/wx/doc/gen/prt/print_dialog.rb +43 -39
  243. data/lib/wx/doc/gen/prt/printer.rb +484 -480
  244. data/lib/wx/doc/gen/prt/printer_dc.rb +26 -22
  245. data/lib/wx/doc/gen/query_layout_info_event.rb +1 -1
  246. data/lib/wx/doc/gen/radio_box.rb +1 -1
  247. data/lib/wx/doc/gen/radio_button.rb +1 -1
  248. data/lib/wx/doc/gen/rbn/ribbon_art_provider.rb +1716 -1712
  249. data/lib/wx/doc/gen/rbn/ribbon_bar.rb +239 -235
  250. data/lib/wx/doc/gen/rbn/ribbon_bar_event.rb +34 -30
  251. data/lib/wx/doc/gen/rbn/ribbon_button_bar.rb +439 -435
  252. data/lib/wx/doc/gen/rbn/ribbon_button_bar_event.rb +52 -48
  253. data/lib/wx/doc/gen/rbn/ribbon_control.rb +116 -112
  254. data/lib/wx/doc/gen/rbn/ribbon_gallery.rb +205 -201
  255. data/lib/wx/doc/gen/rbn/ribbon_gallery_event.rb +44 -40
  256. data/lib/wx/doc/gen/rbn/ribbon_page.rb +129 -125
  257. data/lib/wx/doc/gen/rbn/ribbon_panel.rb +229 -225
  258. data/lib/wx/doc/gen/rbn/ribbon_panel_event.rb +34 -30
  259. data/lib/wx/doc/gen/rbn/ribbon_tool_bar.rb +329 -325
  260. data/lib/wx/doc/gen/rbn/ribbon_tool_bar_event.rb +31 -27
  261. data/lib/wx/doc/gen/rearrange_ctrl.rb +1 -1
  262. data/lib/wx/doc/gen/rearrange_list.rb +1 -1
  263. data/lib/wx/doc/gen/region.rb +1 -1
  264. data/lib/wx/doc/gen/region_iterator.rb +1 -1
  265. data/lib/wx/doc/gen/rtc/rich_text_box.rb +424 -420
  266. data/lib/wx/doc/gen/rtc/rich_text_buffer.rb +1148 -1144
  267. data/lib/wx/doc/gen/rtc/rich_text_buffer_data_object.rb +30 -26
  268. data/lib/wx/doc/gen/rtc/rich_text_composite_object.rb +516 -512
  269. data/lib/wx/doc/gen/rtc/rich_text_ctrl.rb +1991 -1987
  270. data/lib/wx/doc/gen/rtc/rich_text_event.rb +159 -155
  271. data/lib/wx/doc/gen/rtc/rich_text_file_handler.rb +167 -163
  272. data/lib/wx/doc/gen/rtc/rich_text_formatting_dialog.rb +271 -267
  273. data/lib/wx/doc/gen/rtc/rich_text_header_footer_data.rb +171 -167
  274. data/lib/wx/doc/gen/rtc/rich_text_html_handler.rb +88 -84
  275. data/lib/wx/doc/gen/rtc/rich_text_image.rb +323 -319
  276. data/lib/wx/doc/gen/rtc/rich_text_object.rb +2819 -2815
  277. data/lib/wx/doc/gen/rtc/rich_text_paragraph_layout_box.rb +1187 -1183
  278. data/lib/wx/doc/gen/rtc/rich_text_printing.rb +242 -238
  279. data/lib/wx/doc/gen/rtc/rich_text_style_list_box.rb +286 -282
  280. data/lib/wx/doc/gen/rtc/rich_text_style_organiser_dialog.rb +181 -177
  281. data/lib/wx/doc/gen/rtc/rich_text_xml_handler.rb +47 -43
  282. data/lib/wx/doc/gen/rtc/symbol_picker_dialog.rb +145 -141
  283. data/lib/wx/doc/gen/sash_event.rb +1 -1
  284. data/lib/wx/doc/gen/sash_layout_window.rb +1 -1
  285. data/lib/wx/doc/gen/sash_window.rb +1 -1
  286. data/lib/wx/doc/gen/scaled_dc.rb +1 -1
  287. data/lib/wx/doc/gen/screen_dc.rb +1 -1
  288. data/lib/wx/doc/gen/scroll_bar.rb +1 -1
  289. data/lib/wx/doc/gen/scrolled_canvas.rb +1 -1
  290. data/lib/wx/doc/gen/scrolled_control.rb +1 -1
  291. data/lib/wx/doc/gen/scrolled_window.rb +1 -1
  292. data/lib/wx/doc/gen/search_ctrl.rb +1 -1
  293. data/lib/wx/doc/gen/simplebook.rb +1 -1
  294. data/lib/wx/doc/gen/single_choice_dialog.rb +1 -1
  295. data/lib/wx/doc/gen/sizer.rb +1 -1
  296. data/lib/wx/doc/gen/sizer_item.rb +1 -1
  297. data/lib/wx/doc/gen/slider.rb +1 -1
  298. data/lib/wx/doc/gen/spin_button.rb +1 -1
  299. data/lib/wx/doc/gen/spin_ctrl.rb +1 -1
  300. data/lib/wx/doc/gen/spin_ctrl_double.rb +1 -1
  301. data/lib/wx/doc/gen/spin_double_event.rb +1 -1
  302. data/lib/wx/doc/gen/spin_event.rb +1 -1
  303. data/lib/wx/doc/gen/splash_screen.rb +1 -1
  304. data/lib/wx/doc/gen/splitter_event.rb +1 -1
  305. data/lib/wx/doc/gen/splitter_window.rb +1 -1
  306. data/lib/wx/doc/gen/static_bitmap.rb +1 -1
  307. data/lib/wx/doc/gen/static_box.rb +1 -1
  308. data/lib/wx/doc/gen/static_box_sizer.rb +1 -1
  309. data/lib/wx/doc/gen/static_line.rb +1 -1
  310. data/lib/wx/doc/gen/static_text.rb +1 -1
  311. data/lib/wx/doc/gen/status_bar.rb +1 -1
  312. data/lib/wx/doc/gen/stc/styled_text_ctrl.rb +4202 -4198
  313. data/lib/wx/doc/gen/stc/styled_text_event.rb +7511 -7507
  314. data/lib/wx/doc/gen/std_dialog_button_sizer.rb +1 -1
  315. data/lib/wx/doc/gen/svg_file_dc.rb +1 -1
  316. data/lib/wx/doc/gen/system_options.rb +1 -1
  317. data/lib/wx/doc/gen/system_settings.rb +1 -1
  318. data/lib/wx/doc/gen/task_bar_button.rb +1 -1
  319. data/lib/wx/doc/gen/task_bar_icon.rb +1 -1
  320. data/lib/wx/doc/gen/task_bar_icon_event.rb +1 -1
  321. data/lib/wx/doc/gen/text_attr.rb +1 -1
  322. data/lib/wx/doc/gen/text_ctrl.rb +1 -1
  323. data/lib/wx/doc/gen/text_entry.rb +1 -1
  324. data/lib/wx/doc/gen/text_entry_dialog.rb +1 -1
  325. data/lib/wx/doc/gen/text_validator.rb +1 -1
  326. data/lib/wx/doc/gen/time_picker_ctrl.rb +1 -1
  327. data/lib/wx/doc/gen/timer.rb +1 -1
  328. data/lib/wx/doc/gen/timer_event.rb +1 -1
  329. data/lib/wx/doc/gen/tip_provider.rb +1 -1
  330. data/lib/wx/doc/gen/toggle_button.rb +1 -1
  331. data/lib/wx/doc/gen/tool_bar.rb +1 -1
  332. data/lib/wx/doc/gen/tool_tip.rb +1 -1
  333. data/lib/wx/doc/gen/toolbook.rb +1 -1
  334. data/lib/wx/doc/gen/top_level_window.rb +1 -1
  335. data/lib/wx/doc/gen/tree_ctrl.rb +1 -1
  336. data/lib/wx/doc/gen/tree_event.rb +1 -1
  337. data/lib/wx/doc/gen/treebook.rb +1 -1
  338. data/lib/wx/doc/gen/ui_action_simulator.rb +1 -1
  339. data/lib/wx/doc/gen/utils.rb +1 -1
  340. data/lib/wx/doc/gen/v_list_box.rb +1 -1
  341. data/lib/wx/doc/gen/v_scrolled_window.rb +1 -1
  342. data/lib/wx/doc/gen/validator.rb +1 -1
  343. data/lib/wx/doc/gen/variant.rb +1 -1
  344. data/lib/wx/doc/gen/window.rb +1 -1
  345. data/lib/wx/doc/gen/window_dc.rb +1 -1
  346. data/lib/wx/doc/gen/window_disabler.rb +1 -1
  347. data/lib/wx/doc/gen/with_images.rb +1 -1
  348. data/lib/wx/doc/gen/wizard.rb +1 -1
  349. data/lib/wx/doc/gen/wizard_event.rb +1 -1
  350. data/lib/wx/doc/gen/wizard_page.rb +1 -1
  351. data/lib/wx/doc/gen/wizard_page_simple.rb +1 -1
  352. data/lib/wx/doc/gen/wrap_sizer.rb +1 -1
  353. data/lib/wx/doc/gen/xml_node.rb +1 -1
  354. data/lib/wx/doc/gen/xml_resource.rb +1 -1
  355. data/lib/wx/rtc/ext/rich_text_ctrl.rb +5 -5
  356. data/lib/wx/version.rb +1 -1
  357. data/lib/wx/wxruby/base.rb +6 -4
  358. data/lib/wx/wxruby/cmd/sampler.rb +39 -29
  359. data/lib/wx/wxruby/cmd/setup.rb +122 -0
  360. data/lib/wx/wxruby/cmd/test.rb +56 -6
  361. data/lib/wxruby_aui.so +0 -0
  362. data/lib/wxruby_core.so +0 -0
  363. data/lib/wxruby_grid.so +0 -0
  364. data/lib/wxruby_html.so +0 -0
  365. data/lib/wxruby_pg.so +0 -0
  366. data/lib/wxruby_prt.so +0 -0
  367. data/lib/wxruby_rbn.so +0 -0
  368. data/lib/wxruby_rtc.so +0 -0
  369. data/lib/wxruby_stc.so +0 -0
  370. data/rakelib/install.rb +2 -0
  371. data/rakelib/lib/config/linux.rb +24 -2
  372. data/rakelib/lib/config/macosx.rb +16 -0
  373. data/rakelib/lib/config/mingw.rb +133 -9
  374. data/rakelib/lib/config/pkgman/arch.rb +53 -0
  375. data/rakelib/lib/config/pkgman/base.rb +169 -0
  376. data/rakelib/lib/config/pkgman/debian.rb +66 -0
  377. data/rakelib/lib/config/pkgman/macosx.rb +183 -0
  378. data/rakelib/lib/config/pkgman/rhel.rb +54 -0
  379. data/rakelib/lib/config/pkgman/suse.rb +54 -0
  380. data/rakelib/lib/config/unixish.rb +36 -19
  381. data/rakelib/lib/config.rb +254 -61
  382. data/rakelib/prepost.rake +9 -4
  383. data/rakelib/yard/templates/default/fulldoc/html/css/wxruby3.css +14 -0
  384. data/rakelib/yard/templates/default/fulldoc/html/setup.rb +5 -5
  385. data/rakelib/yard/yard/relative_markdown_links.rb +7 -1
  386. 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
 
@@ -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('which patchelf > /dev/null 2>&1')
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 either the patchelf utility.'
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(' ')
@@ -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
- private
69
-
70
- def wx_make
71
- bash('make && make install')
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 wx_generate_xml
75
- chdir(File.join(ext_path, 'wxWidgets', 'docs', 'doxygen')) do
76
- sh({ 'WX_SKIP_DOXYGEN_VERSION_CHECK' => '1' }, 'regen.bat xml')
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
- def respawn_rake(argv = ARGV)
81
- Kernel.exec('rake', *argv)
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