wxruby3 0.9.0.pre.rc.1-x64-mingw-ucrt → 0.9.0.pre.rc.2-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 (86) hide show
  1. checksums.yaml +4 -4
  2. data/INSTALL.md +51 -22
  3. data/README.md +38 -6
  4. data/assets/hello_button-macos.png +0 -0
  5. data/assets/hello_button-msw.png +0 -0
  6. data/assets/hello_button_clicked-macos.png +0 -0
  7. data/assets/hello_button_clicked-msw.png +0 -0
  8. data/assets/hello_button_clicked_combi.png +0 -0
  9. data/assets/hello_world-macos.png +0 -0
  10. data/assets/hello_world-msw.png +0 -0
  11. data/assets/hello_world_combi.png +0 -0
  12. data/ext/wxbase32u_gcc_custom.dll +0 -0
  13. data/ext/wxbase32u_net_gcc_custom.dll +0 -0
  14. data/ext/wxbase32u_xml_gcc_custom.dll +0 -0
  15. data/ext/wxmsw32u_aui_gcc_custom.dll +0 -0
  16. data/ext/wxmsw32u_core_gcc_custom.dll +0 -0
  17. data/ext/wxmsw32u_gl_gcc_custom.dll +0 -0
  18. data/ext/wxmsw32u_html_gcc_custom.dll +0 -0
  19. data/ext/wxmsw32u_media_gcc_custom.dll +0 -0
  20. data/ext/wxmsw32u_propgrid_gcc_custom.dll +0 -0
  21. data/ext/wxmsw32u_qa_gcc_custom.dll +0 -0
  22. data/ext/wxmsw32u_ribbon_gcc_custom.dll +0 -0
  23. data/ext/wxmsw32u_richtext_gcc_custom.dll +0 -0
  24. data/ext/wxmsw32u_stc_gcc_custom.dll +0 -0
  25. data/ext/wxmsw32u_webview_gcc_custom.dll +0 -0
  26. data/ext/wxmsw32u_xrc_gcc_custom.dll +0 -0
  27. data/lib/wx/core/brush.rb +6 -0
  28. data/lib/wx/core/events/evt_list.rb +7 -0
  29. data/lib/wx/core/evthandler.rb +12 -2
  30. data/lib/wx/core/font.rb +22 -14
  31. data/lib/wx/core/helpprovider.rb +2 -2
  32. data/lib/wx/core/menu.rb +5 -0
  33. data/lib/wx/core/pen.rb +6 -0
  34. data/lib/wx/core/window.rb +28 -1
  35. data/lib/wx/doc/app.rb +40 -0
  36. data/lib/wx/doc/brush.rb +17 -0
  37. data/lib/wx/doc/font.rb +27 -0
  38. data/lib/wx/doc/gen/activity_indicator.rb +65 -0
  39. data/lib/wx/doc/gen/aui/aui_tool_bar.rb +2 -2
  40. data/lib/wx/doc/gen/context_help_button.rb +48 -0
  41. data/lib/wx/doc/gen/core.rb +2 -2
  42. data/lib/wx/doc/gen/event_blocker.rb +18 -16
  43. data/lib/wx/doc/gen/event_filter.rb +38 -45
  44. data/lib/wx/doc/gen/event_list.rb +7 -0
  45. data/lib/wx/doc/gen/file_dialog.rb +48 -49
  46. data/lib/wx/doc/gen/font.rb +9 -0
  47. data/lib/wx/doc/gen/hyperlink_ctrl.rb +147 -0
  48. data/lib/wx/doc/gen/hyperlink_event.rb +43 -0
  49. data/lib/wx/doc/gen/menu_bar.rb +0 -6
  50. data/lib/wx/doc/gen/radio_box.rb +0 -8
  51. data/lib/wx/doc/pen.rb +17 -0
  52. data/lib/wx/doc/radio_box.rb +20 -0
  53. data/lib/wx/doc/window.rb +27 -0
  54. data/lib/wx/keyword_defs.rb +77 -76
  55. data/lib/wx/prt/keyword_defs.rb +5 -1
  56. data/lib/wx/version.rb +1 -1
  57. data/lib/wxruby_aui.so +0 -0
  58. data/lib/wxruby_core.so +0 -0
  59. data/lib/wxruby_grid.so +0 -0
  60. data/lib/wxruby_html.so +0 -0
  61. data/lib/wxruby_pg.so +0 -0
  62. data/lib/wxruby_prt.so +0 -0
  63. data/lib/wxruby_rbn.so +0 -0
  64. data/lib/wxruby_rtc.so +0 -0
  65. data/lib/wxruby_stc.so +0 -0
  66. data/rakelib/install.rb +17 -6
  67. data/rakelib/lib/config/linux.rb +4 -2
  68. data/rakelib/lib/config/macosx.rb +120 -1
  69. data/rakelib/lib/config/mingw.rb +6 -1
  70. data/rakelib/lib/config/unixish.rb +26 -11
  71. data/rakelib/lib/config.rb +15 -6
  72. data/samples/aui/aui.rb +432 -363
  73. data/samples/propgrid/propgrid.rb +3 -0
  74. data/samples/sampler/editor.rb +33 -25
  75. data/samples/sampler/sample.rb +2 -2
  76. data/samples/sampler/stc_editor.rb +4 -2
  77. data/tests/lib/item_container_tests.rb +82 -0
  78. data/tests/lib/text_entry_tests.rb +80 -0
  79. data/tests/lib/wxapp_runner.rb +12 -0
  80. data/tests/lib/wxframe_runner.rb +89 -4
  81. data/tests/test_ext_controls.rb +28 -0
  82. data/tests/test_font.rb +239 -0
  83. data/tests/test_intl.rb +5 -1
  84. data/tests/test_std_controls.rb +263 -37
  85. data/tests/test_window.rb +340 -0
  86. metadata +25 -2
@@ -3,4 +3,123 @@
3
3
  # Copyright (c) M.J.N. Corino, The Netherlands
4
4
  ###
5
5
 
6
- raise "MacOSX platform is unsupported as yet."
6
+ require_relative './unixish'
7
+
8
+ module WXRuby3
9
+
10
+ module Config
11
+
12
+ module Platform
13
+
14
+ def self.included(base)
15
+ base.class_eval do
16
+ include Config::UnixLike
17
+
18
+ def debug_command(*args)
19
+ args.unshift(FileUtils::RUBY)
20
+ args.unshift('--')
21
+ args.unshift('lldb')
22
+ args.join(' ')
23
+ end
24
+
25
+ def dll_mask
26
+ "{#{dll_ext},dylib}"
27
+ end
28
+
29
+ def get_rpath_origin
30
+ "@loader_path"
31
+ end
32
+
33
+ def check_rpath_patch
34
+ # no need to check anything; install_name_tool is part of XCode cmdline tools
35
+ # and without these we couldn't build anything
36
+ true
37
+ end
38
+
39
+ def patch_rpath(shlib, *rpath)
40
+ # don't leave old rpath-s behind
41
+ sh("install_name_tool -delete_rpath '@loader_path/../lib' #{shlib} 2>/dev/null", verbose: false) { |_,_| }
42
+ # add deployment rpath-s
43
+ sh("install_name_tool #{rpath.collect {|rp| "-add_rpath '#{rp}'"}.join(' ')} #{shlib} 2>/dev/null", verbose: false) { |_,_| }
44
+ true
45
+ end
46
+
47
+ def update_shlib_loadpaths(shlib, deplibs)
48
+ changes = deplibs.collect { |dl| "-change '#{dl}' '@rpath/#{File.basename(dl)}'"}
49
+ sh("install_name_tool #{changes.join(' ')} #{shlib} 2>/dev/null", verbose: false) { |_,_| }
50
+ true
51
+ end
52
+
53
+ def get_wx_libs
54
+ wx_libset = ::Set.new
55
+ lib_list = wx_config("--libs all").split(' ')
56
+ until lib_list.empty?
57
+ s = lib_list.shift
58
+ if s == '-framework'
59
+ wx_libset << "#{s} #{lib_list.shift}"
60
+ else
61
+ wx_libset << s
62
+ end
63
+ end
64
+ # some weird thing with this; at least sometimes '--libs all' will not output media library even if feature active
65
+ if features_set?('wxUSE_MEDIACTRL')
66
+ lib_list = wx_config("--libs media").split(' ')
67
+ until lib_list.empty?
68
+ s = lib_list.shift
69
+ if s == '-framework'
70
+ wx_libset << "#{s} #{lib_list.shift}"
71
+ else
72
+ wx_libset << s
73
+ end
74
+ end
75
+ end
76
+ wx_libset.collect { |s| s.dup }
77
+ end
78
+
79
+ def do_link(pkg)
80
+ objs = pkg.all_obj_files.collect { |o| File.join('..', o) }.join(' ') + ' '
81
+ sh "cd lib && #{WXRuby3.config.ld} #{WXRuby3.config.ldflags(pkg.lib_target)} #{objs} " +
82
+ "#{WXRuby3.config.libs} #{WXRuby3.config.link_output_flag}#{pkg.lib_target}"
83
+ end
84
+
85
+ private
86
+
87
+ def wx_configure
88
+ bash('./configure --disable-sys-libs --without-liblzma --prefix=`pwd`/install --disable-tests --without-subdirs --disable-debug_info')
89
+ end
90
+
91
+ def wx_make
92
+ bash('make -j$(sysctl -n hw.logicalcpu) && make install')
93
+ end
94
+ end
95
+ end
96
+
97
+ def init_platform
98
+ init_unix_platform
99
+
100
+ @dll_pfx = 'lib'
101
+
102
+ if @wx_version
103
+ @cpp.sub!(/-std=gnu\+\+11/, '-std=gnu++14')
104
+ @ld.sub!(/-o\s*\Z/, '')
105
+
106
+ @extra_cflags.concat %w[-Wno-unused-function -Wno-conversion-null -Wno-sometimes-uninitialized
107
+ -Wno-overloaded-virtual -Wno-deprecated-copy]
108
+ @extra_cflags << ' -Wno-deprecated-declarations' unless @no_deprecated
109
+
110
+ # create a .dylib binary
111
+ @extra_ldflags << '-dynamic -bundle'
112
+
113
+ unless @wx_path.empty?
114
+ libdirs = @wx_libs.select {|s| s.start_with?('-L')}.collect {|s| s.sub(/^-L/,'')}
115
+ @exec_env['DYLD_LIBRARY_PATH'] = "#{ENV['DYLD_LIBRARY_PATH']}:#{dest_dir}:#{libdirs.join(':')}"
116
+ end
117
+ end
118
+ end
119
+ private :init_platform
120
+
121
+ end
122
+
123
+ end
124
+
125
+ end
@@ -21,8 +21,8 @@ module WXRuby3
21
21
  module Platform
22
22
 
23
23
  def self.included(base)
24
- base.include Config::UnixLike
25
24
  base.class_eval do
25
+ include Config::UnixLike
26
26
 
27
27
  attr_reader :rescomp
28
28
 
@@ -52,6 +52,10 @@ module WXRuby3
52
52
 
53
53
  private
54
54
 
55
+ def wx_make
56
+ bash('make && make install')
57
+ end
58
+
55
59
  def wx_generate_xml
56
60
  chdir(File.join(ext_path, 'wxWidgets', 'docs', 'doxygen')) do
57
61
  sh({ 'WX_SKIP_DOXYGEN_VERSION_CHECK' => '1' }, 'regen.bat xml')
@@ -107,6 +111,7 @@ module WXRuby3
107
111
 
108
112
  @ruby_ldflags.each { |flags| flags.sub!(' $(DEFFILE)', '') } # cleanup for older RubyInstaller versions
109
113
  @ruby_ldflags.each { |flags| flags.gsub!(/-s(\s|\Z)/, '') } if @debug_build # do not strip debug symbols for debug build
114
+ @ruby_ldflags << '-s' if @release_build # strip debug symbols for release build
110
115
  @ruby_cppflags << RB_CONFIG['debugflags'] if @debug_build
111
116
  @ruby_cppflags.each { |flags| flags.gsub!(/-O\d/, '-O0') } if @debug_build # disable optimizations for debug build
112
117
 
@@ -52,6 +52,10 @@ module WXRuby3
52
52
  "#{WXRuby3.config.libs} #{WXRuby3.config.link_output_flag}#{pkg.lib_target}"
53
53
  end
54
54
 
55
+ def get_rpath_origin
56
+ "$ORIGIN"
57
+ end
58
+
55
59
  private
56
60
 
57
61
  def wx_checkout
@@ -76,6 +80,14 @@ module WXRuby3
76
80
  end
77
81
  end
78
82
 
83
+ def wx_configure
84
+ bash('./configure --prefix=`pwd`/install --disable-tests --without-subdirs --disable-debug_info')
85
+ end
86
+
87
+ def wx_make
88
+ bash('make -j$(nproc) && make install')
89
+ end
90
+
79
91
  def wx_build
80
92
  # initialize submodules
81
93
  unless sh('git submodule update --init')
@@ -83,12 +95,12 @@ module WXRuby3
83
95
  exit(1)
84
96
  end
85
97
  # configure wxWidgets
86
- unless bash('./configure --prefix=`pwd`/install --disable-tests --without-subdirs --disable-debug_info')
98
+ unless wx_configure
87
99
  STDERR.puts "ERROR: Failed to configure wxWidgets."
88
100
  exit(1)
89
101
  end
90
102
  # make and install wxWidgets
91
- unless bash('make && make install')
103
+ unless wx_make
92
104
  STDERR.puts "ERROR: Failed to build wxWidgets libraries."
93
105
  exit(1)
94
106
  end
@@ -117,6 +129,16 @@ module WXRuby3
117
129
  get_cfg_string('wxxml')
118
130
  end
119
131
 
132
+ def get_wx_libs
133
+ wx_libset = ::Set.new
134
+ wx_libset.merge wx_config("--libs all").split(' ')
135
+ # some weird thing with this; at least sometimes '--libs all' will not output media library even if feature active
136
+ if features_set?('wxUSE_MEDIACTRL')
137
+ wx_libset.merge wx_config("--libs media").split(' ')
138
+ end
139
+ wx_libset.collect { |s| s.dup }
140
+ end
141
+
120
142
  def init_unix_platform
121
143
  # Allow specification of custom wxWidgets build (mostly useful for
122
144
  # static wxRuby3 builds)
@@ -155,13 +177,7 @@ module WXRuby3
155
177
 
156
178
  @cpp = wx_config("--cxx")
157
179
  @ld = wx_config("--ld")
158
- wx_libset = ::Set.new
159
- wx_libset.merge wx_config("--libs all").split(' ')
160
- # some weird thing with this; at least sometimes '--libs all' will not output media library even if feature active
161
- if features_set?('wxUSE_MEDIACTRL')
162
- wx_libset.merge wx_config("--libs media").split(' ')
163
- end
164
- @wx_libs = wx_libset.collect { |s| s.dup }
180
+ @wx_libs = get_wx_libs
165
181
 
166
182
  # remove all warning flags provided by Ruby config
167
183
  @ruby_cppflags = @ruby_cppflags.collect { |flags| flags.split(' ') }.flatten.
@@ -169,8 +185,7 @@ module WXRuby3
169
185
  @ruby_cppflags.concat %w[-Wall -Wextra -Wno-unused-parameter] # only keep these
170
186
  # add include flags
171
187
  @ruby_cppflags.concat ['-I.', *@ruby_includes.collect { |inc| "-I#{inc}" }]
172
- @ruby_ldflags << '-s' if @release_build # strip debug symbols for release build
173
- @ruby_ldflags << "-Wl,-rpath,\\$ORIGIN/../lib" # add default rpath
188
+ @ruby_ldflags << "-Wl,-rpath,'#{get_rpath_origin}/../lib'" # add default rpath
174
189
  @ruby_libs << "-L#{RB_CONFIG['libdir']}" # add ruby lib dir
175
190
  # add ruby defined shared ruby lib(s); not any other flags
176
191
  @ruby_libs.concat RB_CONFIG['LIBRUBYARG_SHARED'].split(' ').select { |s| s.start_with?('-l')}
@@ -245,11 +245,19 @@ module WXRuby3
245
245
  def do_link(_pkg)
246
246
  end
247
247
 
248
+ def get_rpath_origin
249
+ ''
250
+ end
251
+
248
252
  def check_rpath_patch
249
253
  true
250
254
  end
251
255
 
252
- def patch_rpath(_shlib, _rpath)
256
+ def patch_rpath(_shlib, *)
257
+ true
258
+ end
259
+
260
+ def update_shlib_loadpaths(_shlib, _deplibs)
253
261
  true
254
262
  end
255
263
 
@@ -389,11 +397,12 @@ module WXRuby3
389
397
  @rb_docgen_path = File.join(Config.wxruby_root, @rb_docgen_dir)
390
398
 
391
399
  # Extra swig helper files to be built
392
- @helper_modules = if macosx?
393
- %w|RubyStockObjects Mac|
394
- else
395
- %w|RubyStockObjects|
396
- end
400
+ @helper_modules = %w|RubyStockObjects|
401
+ # if macosx?
402
+ # %w|RubyStockObjects Mac|
403
+ # else
404
+ # %w|RubyStockObjects|
405
+ # end
397
406
  # helper to initialize on startup (stock objects can only be initialized after App creation)
398
407
  @helper_inits = @helper_modules - %w|RubyStockObjects|
399
408