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 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
@@ -0,0 +1,3 @@
1
+ module SFML
2
+ VERSION = '0.0.1'.freeze
3
+ end
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: []