Giter VIP home page Giter VIP logo

rez-packages's Introduction

Overview

This is a repository of package installers. Each directory contains a rez project that you can build (using rez-build) or release (using rez-release). Doing so will build or release the associated software (gcc, boost etc) as a rez package. See the following Quick Start Guide for more details.

Please note that this project repository is for reference only. You should copy them into your own repo - at that point you can set the correct versions, put a requirement on your operating system of choice, and so on.

These installer packages make heavy use of the 'ExternalProject_add' CMake macro. You can modify calls to this macro in the CMakeLists.txt to do things such as apply your own patches. You would include these patches in your own package repository so that you retain a change history of them.

Once you have these installer packages in your own repo (or repos) you will be able to rez-build and rez-release them. You can keep them all within a single repo, or split them out into separate repos, the choice is yours and both will work.

The following environment variables are used by some packages:

REZ_REPO_PAYLOAD_DIR: Path to where package downloads (such as tgz files) are stored. Source disappears online and security measures often mean it is difficult to install from URL within a studio, so we opt to install from already downloaded source, rather than downloading as part of the install.

Quick Start Guide

  1. Copy contents of ./repository to another location;

  2. Optionally (if you want to release packages) put this copy under version control;

  3. Cd into a package you would like to install (eg hello_world_py/1.0.0);

  4. Make any necessary changes to the package.py and/or CMakeLists.txt file. A package's definition and/or build process will often not be exactly what a studio wants.

  5. Run:

    $ rez-build -i

    This will build the package, and install it to your local packages path, typically ~/packages.

    You often need to provide the source archive that the packages is built from. Rez looks for such archives under the path set by the environment variable REZ_REPO_PAYLOAD_DIR. If not set, an error message will tell you. Set this variable and goto the next step.

    If the source archive you need is not present under REZ_REPO_PAYLOAD_DIR, an error message will tell you so. Download the archive from the suggested URL, and goto the next step.

  6. Test:

    $ rez-env hello_world_py
    $ hello
    Hello world!
  7. Once your local install is working, you may want to release the package so the whole studio can use it. To release:

    $ rez-release
  8. That's it. To install newer versions, download the newer source archives, update package.py/CMakeLists.txt appropriately, and rez-release once more. All changes to your installer scripts are now kept in rez packages, and are under source control.

rez-packages's People

Contributors

predat avatar cundesi avatar

Watchers

James Cloos avatar  avatar

Forkers

githeshuai

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.