name mode size
.. 100755 6.48kB 100755 6.75kB 100644 3.59kB 100644 3.66kB 100755 57.93kB 100755 7.29kB 100644 4.39kB 100755 33.22kB 100755 15.87kB 100755 3.05kB 100755 7.31kB 100644 7.76kB 100755 3.49kB 100644 4.19kB 100644 3.99kB 100644 2.89kB 100755 15.22kB 100644 5.55kB 100755 7.54kB 100755 16.65kB 100755 5.34kB 100755 4.62kB 100755 12.64kB 100755 1.73kB
# 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.