name mode size
a 040000
b 040000
c 040000 100644 5 kb 100644 3 kb 100755 0 kb
# mulle-bootstrap, cross platform dependency manager using bash and cmake ... for Linux, OS X, FreeBSD, Windows Everything `mulle-bootstrap` installs is relative to your project root, creating a virtual environment. Downloaded packages and binaries don't "pollute" your system. Toss vagrant :) * fetches [git](// repositories. In times of need, it can also checkout [svn](// * builds [cmake](//, [xcodebuild](// and [configure](// projects and installs their output into a "dependencies" folder. * installs [brew](// binaries and libraries into an "addictions" folder (on participating platforms) * alerts to the presence of shell scripts in fetched dependencies * runs on **OS X**, **FreeBSD**, **Linux**, **Windows** with MINGW bash * certainly not a "minimal" or lightweight" project with ca. 10000 lines of shell script code ## Tell me more * [How to install]( * [What has changed ?]( * [mulle-bootstrap: A dependency management tool]( * [mulle-bootstrap: Understanding mulle-bootstrap (I)]( * [mulle-bootstrap: Understanding mulle-bootstrap (II), Recursion]( ## What mulle-bootstrap can do for you So you need a bunch of third party projects to build your own project ? No problem. Use **mulle-bootstrap init** to do the initial setup of a `.bootstrap` folder in your project directory. Then put the git repository URLs in a file called `./bootstrap/repositories`: ``` ``` **mulle-bootstrap** will check them out into a common directory `.repos`. After cloning **mulle-bootstrap** looks for a `.bootstrap` folder in the freshly checked out repositories. They might have dependencies too, if they do, those dependencies are added and also fetched. Everything should now be in place so **mulle-bootstrap** that can now build the dependencies with **cmake**. It will place the headers and the produced libraries into the `dependencies` folder. That's it in a nutshell. But it can do a lot more. ## Commands for a project user #### mulle-bootstrap Download a project which is mulle-bootstrap enabled. Execute mulle-bootstrap in it and you are all set: ```console mulle-bootstrap ``` `mulle-bootstrap` is a the shortened command of `mulle-bootstrap bootstrap`, which in turn executes: #### mulle-bootstrap fetch Downloads all required libraries into a `.repos` folder. #### mulle-bootstrap build Compiles the required libraries contained in the `.repos` folder into `./dependencies`. It compiles each project once for Release and once for Debug (and given a file `.bootstrap/sdks` multiplied by the number of sdks needed) ## Commands for a project maintainer #### mulle-bootstrap init This is the first action. It sets up a `.bootstrap` folder in your project directory root (e.g. alongside .git). At this point you should edit `.bootstrap/repositories` to add git projects dependencies. For each repository add a line like `./bootstrap/repositories`: ```console ``` In the file `.bootstrap/brews` you can specify homebrew projects that need to be installed. These will be installed into `addictions`. `./bootstrap/brews`: ```console zlib openssl ``` #### mulle-bootstrap tag Tag all fetched repositories.