GithubHelp home page GithubHelp logo

cargo-pkgconfig's Introduction

Cargo pkg-config tool

This tool extends Cargo with a pkg-config-like interface.

This allows you to extract metadata from Cargo crates like build artifacts in a manner that is synonymous with the native pkg-config.

For example, with bindgen:

> cargo pkgconfig --libs bindgen
    Finished dev [unoptimized + debuginfo] target(s) in 0.05s
/LIBPATH:D:/Dev/Repositories/rust-bindgen/target/debug libbindgen.rlib Bcrypt.lib Userenv.lib

You can then use this output such as follows in a Makefile project:

# Declare the Rust crate to always be dirty and let Cargo handle rebuilds.
# It'd be nice to figure out a way to let Cargo tell make if the crate was rebuilt (to clean up stdout),
# but seemingly challenging to do so.
.PHONY: libsync.a
libsync.a:
	@RMCOMMAND@ libsync.a
	CRATELIBS=`@CARGO@ pkgconfig --libs sync -- --release --manifest-path $(srcdir)/sync/Cargo.toml`; \
	if [ $$? -ne 0 ]; then exit $$?; fi; \
	@MAKELIB@ $$CRATELIBS; \
	$(RANLIB) libsync.a

libcpu.a: $(OBJS) @OBJS64@ libsync.a
	@RMCOMMAND@ libcpu.a
	@MAKELIB@ $(OBJS) @OBJS64@ libsync.a
	$(RANLIB) libcpu.a

Note that this is not to be confused with the pkg-config crate, which is intended to expose a programmatic interface to the native pkg-config for build.rs scripts.

cargo-pkgconfig's People

Contributors

drchat avatar microsoft-github-policy-service[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

jetbl

cargo-pkgconfig's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.