libui 0.0.13 → 0.0.15

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6de141936b3efcb92a52161f0426d62485efe1e5aad3117f76cf97d0ddc8031b
4
- data.tar.gz: b7ce62745c0c8dc93fc8ba0555a5240f0f56d73b68b6f6ba238153d6478d4f83
3
+ metadata.gz: 2fe04f1f03b5bc2cdc5596993230212f76b2582d05e943a1b0f67cfa8a26c1d5
4
+ data.tar.gz: 9fa47e55f1d5fd30191d7c48e546269fd72c727fea98850ab6a665beeeccd4ce
5
5
  SHA512:
6
- metadata.gz: 8caad6d8235897aa9b1c1c0782a425f85c4b7016d57464d69bfba9c3a1716eb5d3ea8520157ecc1a9209a299e863fc178c21897256e26e80b02a3beeff1be894
7
- data.tar.gz: 2c328acfbc5862157124d6f31cf66950b07af1dacbbb81ee1f50340bb837bdb08e1d3b6abfaa9bfa5b8ecd81fe5e80a9d10e239c3489e534160ddb720135c502
6
+ metadata.gz: 31a67b3239d6f80f3be0693b9a06be1903cba54157a790d5a3a008dc282470e8e6037716e0c3428ff461ab6207d1b64f1ae59d2d33aa7cdd4348d4e831e56929
7
+ data.tar.gz: f2a9feac43d98eca7d952f2c6970ceb90ab32c778b497fa09396a5cde7739bf00330529f53aa8c4a4896b71eeffb0dea93f5c5849cd29a22291a1ca2fdd52c1f
data/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
  [![Gem Version](https://badge.fury.io/rb/libui.svg)](https://badge.fury.io/rb/libui)
5
5
  <a href="https://github.com/AndyObtiva/glimmer-dsl-libui"><img alt="glimmer-dsl-libui" src="https://github.com/AndyObtiva/glimmer/blob/master/images/glimmer-logo-hi-res.svg" width="50" height="50" align="right"></a>
6
6
 
7
- :radio_button: [libui](https://github.com/andlabs/libui) - a portable GUI library - for Ruby
7
+ :radio_button: [libui](https://github.com/libui-ng/libui-ng) - a portable GUI library - for Ruby
8
8
 
9
9
  ## Installation
10
10
 
@@ -13,7 +13,7 @@ gem install libui
13
13
  ```
14
14
 
15
15
  * The gem package contains the [official release](https://github.com/andlabs/libui/releases/tag/alpha4.1) of the libui shared library versions 4.1 for Windows, Mac, and Linux.
16
- * Namely `libui.dll`, `libui.dylib`, and `libui.so` (only 1.4MB in total).
16
+ * Namely `libui.dll`, `libui.dylib`, and `libui.so` (only 1.8MB in total).
17
17
  * No dependency
18
18
  * The libui gem uses the standard Ruby library [Fiddle](https://github.com/ruby/fiddle) to call C functions.
19
19
 
@@ -21,7 +21,9 @@ gem install libui
21
21
  |---------|-----|-------|
22
22
  |<img src="https://user-images.githubusercontent.com/5798442/103118046-900ea780-46b0-11eb-81fc-32626762e4df.png">|<img src="https://user-images.githubusercontent.com/5798442/103118059-99980f80-46b0-11eb-9d12-324ec4d297c9.png">|<img src="https://user-images.githubusercontent.com/5798442/103118068-a0bf1d80-46b0-11eb-8c5c-3bdcc3dcfb26.png">|
23
23
 
24
- Note: If you are using the 32-bit (x86) version of Ruby, you need to download the 32-bit (x86) native dll. See [Development](#development).
24
+ Note:
25
+ * If you are using the 32-bit (x86) version of Ruby, you need to download the 32-bit (x86) native dll. See [Development](#development).
26
+ * On Windows, libui may not work due to missing DLLs. In that case, you need to install [Visual C++ Redistributable](https://docs.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist). See ([#48](https://github.com/kojix2/LibUI/issues/48))
25
27
 
26
28
  ## Usage
27
29
 
@@ -64,17 +66,15 @@ Compared to original libui written in C,
64
66
  * If the last argument is nil, it can be omitted.
65
67
  * You can pass a block as a callback.
66
68
  * The block will be converted to a Proc object and added to the last argument.
67
- * Even in that case, it is possible to omit the last argument nil.
69
+ * Even in that case, it is possible to omit the last argument when nil.
68
70
 
69
71
  You can use [the documentation for libui's Go bindings](https://pkg.go.dev/github.com/andlabs/ui) as a reference.
70
72
 
71
- ### Not object oriented?
73
+ ### DSLs for LibUI
72
74
 
73
75
  LibUI is not object-oriented, but provides high portability with minimal implementation.
74
76
  If you want to write in an object-oriented way, please use the following DSLs built on top of LibUI.
75
77
 
76
- ### DSLs for LibUI
77
-
78
78
  * [Glimmer DSL for LibUI](https://github.com/AndyObtiva/glimmer-dsl-libui)
79
79
  * [libui_paradise](https://rubygems.org/gems/libui_paradise)
80
80
 
@@ -115,7 +115,7 @@ end
115
115
  ```
116
116
 
117
117
  * Callbacks
118
- * In Ruby/Fiddle, C callback function is written as an object of
118
+ * In Ruby/Fiddle, a C callback function is written as an object of
119
119
  `Fiddle::Closure::BlockCaller` or `Fiddle::Closure`.
120
120
  In this case, you need to be careful about Ruby's garbage collection.
121
121
  If the function object is collected, memory will be freed
@@ -160,7 +160,7 @@ Add additional options below if necessary.
160
160
  git clone https://github.com/kojix2/libui
161
161
  cd libui
162
162
  bundle install
163
- bundle exec rake vendor:all_x64 # download shared libraries for all platforms
163
+ bundle exec rake vendor:default # download shared libraries for all platforms
164
164
  bundle exec rake test
165
165
  ```
166
166
 
@@ -169,9 +169,10 @@ You can use the following rake tasks to download the shared library required for
169
169
  `rake -T`
170
170
 
171
171
  ```
172
- rake vendor:all_x64 # Download libui.so, libui.dylib, and libui.dll to...
172
+ rake vendor:default # Downlaod [linux_x64, mac_arm, windows_x64] to vendor directory
173
173
  rake vendor:linux_x64 # Download libui.so for Linux to vendor directory
174
174
  rake vendor:linux_x86 # Download libui.so for Linux to vendor directory
175
+ rake vendor:mac_arm # Download libui.dylib for Mac to vendor directory (universal binary)
175
176
  rake vendor:mac_x64 # Download libui.dylib for Mac to vendor directory
176
177
  rake vendor:windows_x64 # Download libui.dll for Windows to vendor directory
177
178
  rake vendor:windows_x86 # Download libui.dll for Windows to vendor directory
@@ -185,8 +186,11 @@ Or Set environment variable `LIBUIDIR` to specify the path to the shared library
185
186
 
186
187
  Would you like to add your commits to libui?
187
188
  * Please feel free to send us your [pull requests](https://github.com/kojix2/libui/pulls).
188
- * Small corrections, such as typofixes, are appreciated.
189
- * Did you find any bugs? Write it in the [issues](https://github.com/kojix2/LibUI/issue) section!
189
+ * Small corrections, such as typo fixes, are appreciated.
190
+ * Did you find any bugs? Enter in the [issues](https://github.com/kojix2/LibUI/issues) section!
191
+
192
+ I have seen many OSS projects abandoned. The main reason is that no one has the right to commit to the original repository, except the founder.
193
+ Do you need commit rights to my repository? Do you want to get admin rights and take over the project? If so, please feel free to contact me @kojix2.
190
194
 
191
195
  ## Acknowledgement
192
196
 
@@ -18,7 +18,7 @@ module LibUI
18
18
  # See the monkey patch in ffi.rb.
19
19
  _f, ret_type, arg_types = func.callback_argument_types[idx]
20
20
  # TODO: raise some nice error if _f is nil.
21
-
21
+
22
22
  callback = Fiddle::Closure::BlockCaller.new(
23
23
  ret_type, arg_types, &arg
24
24
  )
data/lib/libui/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module LibUI
2
- VERSION = '0.0.13'
2
+ VERSION = '0.0.15'
3
3
  end
data/lib/libui.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require_relative 'libui/version'
2
2
  require_relative 'libui/utils'
3
+ require 'rbconfig'
3
4
 
4
5
  module LibUI
5
6
  class Error < StandardError; end
@@ -0,0 +1,45 @@
1
+ # libui shared library for M1 Mac
2
+
3
+ libui.dylib for Mac has been replaced with a universal binary to make LibUI compatible with M1 Mac.
4
+
5
+ See https://github.com/kojix2/LibUI/issues/47
6
+
7
+ The LibUI gem also includes libui.so for Linux and libui.dll for Windows, which are identical to the official binaries distributed by andlabs.
8
+
9
+ ## Target libui version
10
+
11
+ libui version alpha 4.1
12
+ https://github.com/andlabs/libui
13
+
14
+ ## Universal binary
15
+
16
+ file command to show that it is a universal binary.
17
+
18
+ ```
19
+ file libui.dylib
20
+ # libui.dylib: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit dynamically linked shared library x86_64] [arm64:Mach-O 64-bit dynamically linked shared library arm64]
21
+ # libui.dylib (for architecture x86_64): Mach-O 64-bit dynamically linked shared library x86_64
22
+ # libui.dylib (for architecture arm64): Mach-O 64-bit dynamically linked shared library arm64
23
+ ```
24
+
25
+ ## sha256sum
26
+
27
+ ```
28
+ 6da2ff5acb6fba09b47eae0219b3aaefd002ace00003ab5d59689e396bcefff7 libui.dylib
29
+ ```
30
+
31
+ ## Build method
32
+
33
+ 1. Get the libui version alpha 4.1 and create a shared library for arm64 on M1 mac.
34
+ 2. Download the official shared library provided by [andlabs](https://github.com/andlabs/libui/releases/tag/alpha4.1).
35
+ 3. Use the lipo command to merge the two files to create a universal binary.
36
+
37
+ ## Contributing
38
+
39
+ libui-ng is looking for a way to create a binary file for the M1 Mac.
40
+ See https://github.com/libui-ng/libui-ng/issues/41
41
+
42
+ ## License
43
+
44
+ MIT
45
+
data/vendor/libui.dylib CHANGED
Binary file
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libui
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.13
4
+ version: 0.0.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - kojix2
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-11-23 00:00:00.000000000 Z
11
+ date: 2022-03-12 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email:
@@ -27,6 +27,7 @@ files:
27
27
  - lib/libui/version.rb
28
28
  - vendor/LICENSE
29
29
  - vendor/README.md
30
+ - vendor/README_DYLIB.md
30
31
  - vendor/libui.dll
31
32
  - vendor/libui.dylib
32
33
  - vendor/libui.so
@@ -49,7 +50,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
49
50
  - !ruby/object:Gem::Version
50
51
  version: '0'
51
52
  requirements: []
52
- rubygems_version: 3.2.22
53
+ rubygems_version: 3.3.7
53
54
  signing_key:
54
55
  specification_version: 4
55
56
  summary: Ruby bindings to libui