sfml3-rb 0.0.1-aarch64-linux-gnu
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 +7 -0
- data/LICENSE.md +14 -0
- data/README.md +110 -0
- data/lib/sfml/3.1/sfml_ext.so +0 -0
- data/lib/sfml/3.2/sfml_ext.so +0 -0
- data/lib/sfml/3.3/sfml_ext.so +0 -0
- data/lib/sfml/3.4/sfml_ext.so +0 -0
- data/lib/sfml/4.0/sfml_ext.so +0 -0
- data/lib/sfml/version.rb +3 -0
- data/lib/sfml.rb +9 -0
- metadata +56 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: fdee43063f3ccfed5d7d4185b131768d6c9add6c4ad240e25dae6f74987ebfe9
|
|
4
|
+
data.tar.gz: 1cf619524ee19eb2707efea0b09f59a4f0c7673b27f6b54ceff89f12ec5fcb40
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 2ac5e2840487c466ac87037daa0ac6f350962e631394c35c15b29b9da7e95041399dee8fc95bbddf703b1bc37c6f5d1e13671a58db84f33329354fe0cb167f67
|
|
7
|
+
data.tar.gz: ef7e2f248472b103dbaa03f1b003742d541feabf00c7c9bcefd8cefe0f18005de0ccf6309f0b91c8168d076aa0e3fa13de0df040addfc073ddc7b5a309421875
|
data/LICENSE.md
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
BSD Zero Clause License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Algaves
|
|
4
|
+
|
|
5
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
6
|
+
purpose with or without fee is hereby granted.
|
|
7
|
+
|
|
8
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
9
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
10
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
11
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
12
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
13
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
14
|
+
PERFORMANCE OF THIS SOFTWARE.
|
data/README.md
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# sfml3.rb
|
|
2
|
+
|
|
3
|
+
Ruby bindings for [SFML 3](https://www.sfml-dev.org/), via its C API, [CSFML](https://github.com/SFML/CSFML).
|
|
4
|
+
|
|
5
|
+
## Status
|
|
6
|
+
|
|
7
|
+
Bound against **CSFML 3**. See [TODO.md](TODO.md) for which parts of the SFML 3 API are ported so
|
|
8
|
+
far, and [CHANGELOG.md](CHANGELOG.md) for what changed recently.
|
|
9
|
+
|
|
10
|
+
## Install
|
|
11
|
+
|
|
12
|
+
```sh
|
|
13
|
+
gem install sfml3-rb
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
On a platform with a precompiled gem this installs a binary with FreeType, SFML 3 and CSFML 3
|
|
17
|
+
already linked in — no toolchain, no build, nothing to install system-wide:
|
|
18
|
+
|
|
19
|
+
| Platform | Status |
|
|
20
|
+
| --- | --- |
|
|
21
|
+
| `x86_64-linux-gnu` | built, installed and tested |
|
|
22
|
+
| `x64-mingw-ucrt` (Windows, RubyInstaller 3.1+) | builds and links cleanly; not yet run on Windows |
|
|
23
|
+
| `aarch64-linux-gnu`, `x86_64-linux-musl`, `x86_64-darwin`, `arm64-darwin` | experimental, not yet built |
|
|
24
|
+
|
|
25
|
+
Each gem carries one extension per Ruby ABI, covering Ruby 3.1 through 4.0.
|
|
26
|
+
|
|
27
|
+
Anywhere else, RubyGems falls back to the source gem, which downloads and builds FreeType, SFML 3
|
|
28
|
+
and CSFML 3 from pinned, checksum-verified tarballs at install time. That takes a few minutes and
|
|
29
|
+
needs:
|
|
30
|
+
|
|
31
|
+
* A C/C++ toolchain and CMake >= 3.22
|
|
32
|
+
* On Linux, the X11/udev/OpenGL development headers SFML links against — these can't be bundled.
|
|
33
|
+
On Fedora:
|
|
34
|
+
|
|
35
|
+
```sh
|
|
36
|
+
sudo dnf install cmake gcc-c++ libX11-devel \
|
|
37
|
+
libXrandr-devel libXcursor-devel libXi-devel systemd-devel libglvnd-devel
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
or on Debian/Ubuntu:
|
|
41
|
+
|
|
42
|
+
```sh
|
|
43
|
+
sudo apt-get install cmake build-essential libx11-dev \
|
|
44
|
+
libxrandr-dev libxcursor-dev libxi-dev libudev-dev libgl1-mesa-dev
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Each installed gem version builds its own copy; there's no build cache shared across versions.
|
|
48
|
+
|
|
49
|
+
To link against a system CSFML 3 instead (no download, no build):
|
|
50
|
+
|
|
51
|
+
```sh
|
|
52
|
+
gem install sfml3-rb -- --enable-system-libraries
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Usage
|
|
56
|
+
|
|
57
|
+
```ruby
|
|
58
|
+
require 'sfml'
|
|
59
|
+
include SFML
|
|
60
|
+
|
|
61
|
+
window = Window.new VideoMode.new(640, 480, 32), 'SFML'
|
|
62
|
+
event = Event.new
|
|
63
|
+
|
|
64
|
+
while window.is_open?
|
|
65
|
+
while window.poll_event! event
|
|
66
|
+
window.close! if event.type == 'closed'
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
window.clear [51, 76, 102, 255] # [r, g, b, a], 0-255
|
|
70
|
+
window.display
|
|
71
|
+
end
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
See [`test/hello-world.rb`](test/hello-world.rb) for a fuller example with shapes and transforms.
|
|
75
|
+
|
|
76
|
+
## Development
|
|
77
|
+
|
|
78
|
+
```sh
|
|
79
|
+
rake ports # build the vendored FreeType + SFML 3 + CSFML 3 (rake compile does this too)
|
|
80
|
+
rake compile # build the C extension into lib/sfml/
|
|
81
|
+
rake test # compile, then run the test suite
|
|
82
|
+
rake gem # build the source gem into pkg/
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
`CMakeLists.txt` is a CLion/IDE convenience build against the same vendored `ports/` prefix — `rake`
|
|
86
|
+
is the build of record.
|
|
87
|
+
|
|
88
|
+
### Building the binary gems
|
|
89
|
+
|
|
90
|
+
Cross-compilation runs in [rake-compiler-dock](https://github.com/rake-compiler/rake-compiler-dock),
|
|
91
|
+
which supplies the cross toolchains and the cross-compiled rubies. It needs Docker or Podman, and
|
|
92
|
+
pulls a large image per platform on first use.
|
|
93
|
+
|
|
94
|
+
```sh
|
|
95
|
+
rake platforms # list the targets
|
|
96
|
+
rake gem:x86_64-linux-gnu # build one platform into pkg/
|
|
97
|
+
rake gem:native # build all of them
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Each run provisions the container with [`script/provision.sh`](script/provision.sh) — a current
|
|
101
|
+
CMake everywhere, plus the target-side X11/udev/GL development files on Linux targets, which the
|
|
102
|
+
images don't ship. Windows and macOS need nothing extra: SFML uses OS libraries and frameworks the
|
|
103
|
+
mingw toolchain and the osxcross SDK already provide.
|
|
104
|
+
|
|
105
|
+
Binary gems carry one extension per Ruby ABI under `lib/sfml/<major.minor>/`; `lib/sfml.rb` prefers
|
|
106
|
+
that and falls back to the single `lib/sfml/sfml_ext.so` a source build installs.
|
|
107
|
+
|
|
108
|
+
## License
|
|
109
|
+
|
|
110
|
+
[0BSD](LICENSE.md)
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
data/lib/sfml/version.rb
ADDED
data/lib/sfml.rb
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
require 'sfml/version'
|
|
2
|
+
|
|
3
|
+
begin
|
|
4
|
+
# Binary gems ship one extension per Ruby ABI under lib/sfml/<major.minor>/.
|
|
5
|
+
# A gem built from source installs a single lib/sfml/sfml_ext.so instead.
|
|
6
|
+
require "sfml/#{RUBY_VERSION[/\d+\.\d+/]}/sfml_ext"
|
|
7
|
+
rescue LoadError
|
|
8
|
+
require 'sfml/sfml_ext'
|
|
9
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: sfml3-rb
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.0.1
|
|
5
|
+
platform: aarch64-linux-gnu
|
|
6
|
+
authors:
|
|
7
|
+
- Sealtiel Valderrama
|
|
8
|
+
bindir: bin
|
|
9
|
+
cert_chain: []
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
+
dependencies: []
|
|
12
|
+
description: Ruby bindings for SFML 3 via CSFML. Precompiled binaries are published
|
|
13
|
+
for common platforms; elsewhere SFML and CSFML are downloaded and built from source
|
|
14
|
+
at install time, so neither needs to be installed system-wide.
|
|
15
|
+
email: SealtielFreak@yandex.com
|
|
16
|
+
executables: []
|
|
17
|
+
extensions: []
|
|
18
|
+
extra_rdoc_files: []
|
|
19
|
+
files:
|
|
20
|
+
- LICENSE.md
|
|
21
|
+
- README.md
|
|
22
|
+
- lib/sfml.rb
|
|
23
|
+
- lib/sfml/3.1/sfml_ext.so
|
|
24
|
+
- lib/sfml/3.2/sfml_ext.so
|
|
25
|
+
- lib/sfml/3.3/sfml_ext.so
|
|
26
|
+
- lib/sfml/3.4/sfml_ext.so
|
|
27
|
+
- lib/sfml/4.0/sfml_ext.so
|
|
28
|
+
- lib/sfml/version.rb
|
|
29
|
+
homepage: https://github.com/algaves/sfml3.rb
|
|
30
|
+
licenses:
|
|
31
|
+
- 0BSD
|
|
32
|
+
metadata:
|
|
33
|
+
source_code_uri: https://github.com/algaves/sfml3.rb
|
|
34
|
+
bug_tracker_uri: https://github.com/algaves/sfml3.rb/issues
|
|
35
|
+
changelog_uri: https://github.com/algaves/sfml3.rb/blob/main/CHANGELOG.md
|
|
36
|
+
rdoc_options: []
|
|
37
|
+
require_paths:
|
|
38
|
+
- lib
|
|
39
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
40
|
+
requirements:
|
|
41
|
+
- - ">="
|
|
42
|
+
- !ruby/object:Gem::Version
|
|
43
|
+
version: '3.1'
|
|
44
|
+
- - "<"
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: 4.1.dev
|
|
47
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
48
|
+
requirements:
|
|
49
|
+
- - ">="
|
|
50
|
+
- !ruby/object:Gem::Version
|
|
51
|
+
version: 3.3.22
|
|
52
|
+
requirements: []
|
|
53
|
+
rubygems_version: 4.0.6
|
|
54
|
+
specification_version: 4
|
|
55
|
+
summary: SFML wrapper for Ruby
|
|
56
|
+
test_files: []
|