fermium 0.1.0-alpha.1

An opinionated crate of SDL2 bindings.
Documentation

License:Zlib Minimum Rust Version AppVeyor TravisCI crates.io docs.rs

fermium

This is bindings to the SDL2 C API.

  • There are pre-generated bindings for the following targets:
    • armv7-unknown-linux-gnueabihf
    • i686-pc-windows-msvc
    • x86_64-apple-darwin
    • x86_64-pc-windows-msvc
    • x86_64-unknown-linux-gnu
  • If your platform supports SDL2 but isn't on that list, please send in a PR!
    • Install the clang-3.9, libclang-3.9-dev, and llvm packages for your platform. Might be under different names, depending on distro and such.
    • Then cargo install bindgen
    • Then cargo build --features="use_bindgen_bin"
    • All the results go in to the OUT_DIR, something like target/debug/build/fermium-LONGHASHCODE/out.
    • There should be a 2.0.8, 2.0.9, and 2.0.10 version of the bindings for your target, it does all three versions in a single build.
    • Just PR those new files and I'll get it up on crates.io as soon as I can.

You can dynamic link or static link.

  • Dynamic linking is the default, and is the officially suggested linking style, both by me and also by the SDL2 project.
    • On Windows just grab the "Runtime Binaries" from The SDL Website or from the fermium repository. Put it in your project directory for development, and ship it with your program when you release something.
    • On not-windows you should get SDL2 through your distro package manager (linux) or homebrew (Mac).
  • Static linking is available.
    • On Windows this will automatically build the static library for you. This takes some extra time, but is otherwise fully automated and you don't need to perform any special steps.
    • On not-Windows please be aware that not all package managers distribute SDL2 configured for static linking, so you might have to build the library from source with static linking enabled.

The default API target level is 2.0.8, but you can enable features to add in functions from 2.0.9 or 2.0.10.

  • Even without the features enabled your program will build and run with any newer version of SDL2 as well, and you'll get all relevent bug fixes and such, you just can't call the newer functions.
  • Please be aware that while Windows and Mac both have easy access to 2.0.10, Most of the Linux distributions still have 2.0.8 or 2.0.9 in their package managers. Unless you really need those newer functions, you might as well stay at the 2.0.8 API level for now.

License

This crate uses the Zlib license, the same license that SDL2 itself uses.

  • The old-headers-only/ directory contains header files from older versions of SDL2 and its add-ons, for use by bindgen when needed.
  • The full-source/ directory contains all the source needed to potentially build SDL2 and its add-ons, for use with static linking on windows. A lot of the test asset files (PNGs, mp3s, etc) have been removed to keep the download smaller.
  • The win32-devel-files/ directory has dynamic lib files for use when building on Windows. As with the full-source/ directory, spare files have been deleted to save on space.

Project Logo

birth of fermium