rcheevos-sys 0.1.0

raw bindings to rcheevos, a library for emulators to inferface with RetroAchievements
Documentation
use std::{env, path::PathBuf};

const FILES: &[&str] = &[
    "rcheevos/src/rapi/rc_api_common.c",
    "rcheevos/src/rapi/rc_api_editor.c",
    "rcheevos/src/rapi/rc_api_info.c",
    "rcheevos/src/rapi/rc_api_runtime.c",
    "rcheevos/src/rapi/rc_api_user.c",
    "rcheevos/src/rc_client.c",
    "rcheevos/src/rc_client_raintegration.c",
    "rcheevos/src/rc_compat.c",
    "rcheevos/src/rcheevos/alloc.c",
    "rcheevos/src/rcheevos/condition.c",
    "rcheevos/src/rcheevos/condset.c",
    "rcheevos/src/rcheevos/consoleinfo.c",
    "rcheevos/src/rcheevos/format.c",
    "rcheevos/src/rcheevos/lboard.c",
    "rcheevos/src/rcheevos/memref.c",
    "rcheevos/src/rcheevos/operand.c",
    "rcheevos/src/rcheevos/rc_validate.c",
    "rcheevos/src/rcheevos/richpresence.c",
    "rcheevos/src/rcheevos/runtime.c",
    "rcheevos/src/rcheevos/runtime_progress.c",
    "rcheevos/src/rcheevos/trigger.c",
    "rcheevos/src/rcheevos/value.c",
    "rcheevos/src/rc_util.c",
    "rcheevos/src/rc_version.c",
    "rcheevos/src/rhash/aes.c",
    "rcheevos/src/rhash/cdreader.c",
    "rcheevos/src/rhash/hash.c",
    "rcheevos/src/rhash/md5.c",
    "rcheevos/src/rurl/url.c",
];

fn main() {
    let mut build = cc::Build::new();
    build
        .define("RC_DISABLE_LUA", None)
        .define("RC_CLIENT_SUPPORTS_HASH", None)
        .define("RC_STATIC", None)
        .include("rcheevos/include")
        .files(FILES);
    build.compile("rcheevos");

    println!("cargo::rustc-link-lib=static=rcheevos");

    let bindings = bindgen::Builder::default()
        .header("wrapper.h")
        .use_core()
        .layout_tests(true)
        .impl_debug(true)
        .parse_callbacks(Box::new(bindgen::CargoCallbacks::new()))
        .generate()
        .expect("Unable to generate bindings");

    let out_path = PathBuf::from(env::var("OUT_DIR").unwrap());

    bindings
        .write_to_file(out_path.join("bindings.rs"))
        .expect("Couldn't write bindings!");
}