... for Linux, OS X, FreeBSD, Windows
... for C, C++, Objective-C
... certainly not a "minimal" or "lightweight" project with ca. 10000 lines of shell script code
- You program in C, C++ or in Objective-C, mulle-bootstrap is written for you
- If you need to link against a library, that clashes with an installed library, mulle-bootstrap could break this quandary
- If you feel that
apt-get install
pollutes your system with too many libraries, mulle-bootstrap may be the solution - If you don't like developing in virtual machines, mulle-bootstrap may tickle your fancy
- If you like to decompose huge projects into reusable libraries, mulle-bootstrap may enable you to do so
- If you do cross-platform development, mulle-bootstrap may be your best bet for a dependency manager
- Nothing gets installed outside of the project folder
- mulle-bootstrap manages your dependencies, it does not manage your project
- It should be adaptable to a wide ranges of project styles. Almost anything can be done with configuration settings or additional shell scripts.
- It should be scrutable. If things go wrong, it should be easy to figure out what the problem is. It has extensive logging and tracing support built in.
- It should run everywhere. mulle-bootstrap is a collection of shell scripts. If your system can run the bash, it can run mulle-bootstrap.
- downloads zip and tar archives
- fetches git repositories and 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
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 add the git repository
URLs:
mulle-bootstrap init
mulle-bootstrap setting -g -r -a "repositories" "https://github.com/madler/zlib.git"
mulle-bootstrap setting -g -r -a "repositories" "https://github.com/coapp-packages/expat.git"
mulle-bootstrap
mulle-bootstrap will check them out into a common directory stashes
.
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. It will place the headers and the produced
libraries into the dependencies/lib
and dependencies/include
folders.
-
CMakeLists.txt.example shows how to access dependencies from cmake
-
mulle-bootstrap: Understanding mulle-bootstrap (II), Recursion
If you want to hack on mulle-bootstrap, I'd recommend to get Sublime Text and install the linter plugin to use Shellcheck. It simplifies shell scripting by an order of magnitude.
The development is done on Mulle kybernetiK. Releases and bug-tracking are on GitHub.