Giter Site home page Giter Site logo

patrickanguyen / wrapdb Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mesonbuild/wrapdb

0.0 1.0 0.0 2.24 MB

New wrap requests

Home Page: https://mesonbuild.com/Adding-new-projects-to-wrapdb.html

License: MIT License

Shell 0.46% Python 4.55% C 3.50% Meson 91.49%

wrapdb's Introduction

Meson Wrap Database

This is a collection of projects that use Meson as their build system, or have a meson port maintained by the Meson team. They can be used as subproject to any Meson project that needs them as dependency.

How to test a wrap

Clone this repository locally, and set the wraps option with a comma separated list of wraps that needs to be built.

For example to test libjpeg-turbo and zlib:

meson setup builddir -Dwraps=libjpeg-turbo,zlib
meson compile -C builddir

How to contribute new wraps

  • Write my-project.wrap file and add it in subprojects/ directory.

  • If upstream project's build system is not Meson, a port can be added in subprojects/packagefiles/my-project/meson.build and patch_directory = my-subproject should be added into the wrap file. Note that the whole subprojects/packagefiles/my-project subtree will be copied onto the upstream's source tree, but it is generally not accepted to override upstream files.

  • It is often easier to develop in subprojects/my-project directory and update packagefiles directory at the end. This can be done using tools/update-packagefiles.py script.

  • Add your release information in releases.json. It is a dictionary where the key is the wrap name and the value is a dictionary containing with the following keys:

    • versions: Sorted list (newest first) of release tags in the format <upstream version>-<revision> where the revision starts at 1 and is incremented when a changed is made in the meson port.
    • dependency_names: (Optional) List of dependency names (e.g. pkg-config name such as glib-2.0) provided by the wrap. It must match information from wrap's [provide] section.
    • program_names: (Optional) List of program names (e.g. glib-compile-resources) provided by the wrap. It must match information from wrap's [provide] section.
  • Configure CI in ci_config.json. It is a dictionary where the key is the wrap name and the value is a dictionary containing with the following keys:

    • build_options: (Optional) List of option=value strings that will be used to build the project on the CI.
    • debian_packages: (Optional) List of extra packages that will be installed on debian-like CI runners. Dependencies that can be provided by other wraps should not be added here because it's better to test that fallbacks works. When running tools/sanity_checks.py locally, this list will be printed but not installed.
    • brew_packages: (Optional) List of extra packages that will be installed on MacOS CI runners.
    • choco_packages: (Optional) List of extra packages that will be installed on Windows CI runners.
    • linux_only: (Optional) If set to true, indicates the wrap should be tested only on Linux CI.
    • fatal_warnings: (Optional) If set to false removes --fatal-meson-warning. Use this only when there is no other way to fix the warning.
    • skip_dependency_check: (Optional) List of platform specific dependency names that are not always provided by the project.
  • Test locally by running tools/sanity_checks.py script. It will be executed on the CI and must always return success before merging any PR.

  • Create Pull Request with your changes.

How to import one of those wraps into my project

Run meson wrap install <name> on the top source dir of your project. It will install subprojects/<name>.wrap file used by Meson to download the dependency.

wrapdb's People

Contributors

amyspark avatar benoit-pierre avatar bgilbert avatar dcbaker avatar dnicolodi avatar dreamer-coding-555 avatar eli-schwartz avatar jan200101 avatar jcaesar avatar jpakkane avatar kcgen avatar legeana avatar mattyclarkson avatar misterda avatar nazar-pc avatar neheb avatar nirbheek avatar noah1510 avatar randy408 avatar sarum9in avatar shermp avatar stephanlachnit avatar tachi107 avatar talisein avatar tmayoff avatar tp-m avatar tristan957 avatar unixy2k avatar v1993 avatar xclaesse avatar

Watchers

 avatar

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.