Skip to content

Restore Windows support #38

Open
Open

Description

#37 removed Windows support because it was requiring a lot of work but we don't support Windows in Zebra anyway.

Restore Windows support.

This is what I tried before giving up:

  • Windows require compiling and linking to bundlecache.c (I have no idea how it works on Linux)
    • That requires compiling and linking src/zcash/cache.cpp, which requires Boost, which is super annoying
    • If you comment out the parts of orchard_ffi.rs that don't handle orchard_bundle (i.e. orchard_batch_*) then you can get away with not including bundlechache.c. But that leads to other problems:
      • Running the test results in STATUS_ENTRYPOINT_NOT_FOUND which seems to be this.

        • To work around that, adding a manifest as described there using the embed-manifest crate results in
        error: invalid instruction `cargo:rustc-link-arg-bins` from build script of `zcash_script v0.1.6 (D:\a\zcash_script\zcash_script)`
        Error: The package zcash_script v0.1.6 (D:\a\zcash_script\zcash_script) does not have a bin target.
        Error: The process 'C:\Users\runneradmin\.cargo\bin\cargo.exe' failed with exit code 101
        

        The code I used was (it's also in windows-support-attempt branch)

        if std::env::var_os("CARGO_CFG_WINDOWS").is_some() {
            embed_manifest(
                new_manifest("zcash_script").dependency(AssemblyIdentity::new(
                    "Microsoft.Windows.Common-Controls",
                    [6, 0, 0, 0],
                    0x6595b64144ccf1df,
                )),
            )
            .expect("unable to embed manifest file");
        }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions