Here’s the Deal
Slant is powered by a community that helps you make informed decisions. Tell us what you’re passionate about to get your personalized feed and help others.
Usually, make puts resulting binaries in the same place where it finds sources. In cmake, the recommended way to build is 'out-of-source' — put the product somewhere else. This allows to keep the source tree clean and use faster storage for building (like ramdisks). For more information, visit here. See More
Other build tools need wrapper modules to do certain tasks. The biggest disadvantage of these wrapper modules is that they bind you to a version of that tool. With Make you don't have that problem, there's no need for wrappers and no tools to bind you to a version, you can use any version of Make that you want. See More
"Recursive make" is a common makefile coding pattern which is used to invoke another session of make. Since a session of make only read in one top-level makefile, this is an easy and natural way to build makefiles for projects made of several submodules. But this pattern causes a lot of problems mainly that you need to partition the dependency tree into several smaller trees. This prevents dependencies from being expressed correctly between instances. This also causes parts of the dependency tree to be calculated multiple times which makes performance suffer. This and many other problems related to recursive make are explained very well in a classic article called Recursive Make Considered Harmful. See More
It says it is language-agnostic and supports C++ out of the box. Technically: yes. In practice, it is a build tool build by Java developers for Java developers and you can really feel it there. It is small things, but there is a lot of them and they can grow into big pains. See More
Gradle is a dependency programming tool first and foremost. Gradle will make sure that all declared dependencies are properly executed for every random task that you execute in your setup. The code can be spread across many directories in any kind of file layout. See More
Gradle has full integration with Jetbrains IDEA. IDEA understands multi-module Gradle builds and automatically maintains the IDEA modules within the project. You also have the option to run unit tests with either the built-in JUnit/TestNG test runner, or delegate running the test to Gradle using the same visualization as the built-in runner. See More
Android Studio's build system is an Android plugin for Gradle. What's more is that the Android Gradle plugin can be installed and run even on machines that don't have Android Studio, which enables you to build Android apps everywhere (for example continuous integration servers). See More
Since Gradle does not use XML but it uses it's own DSL based on Groovy, Gradle scripts tend to be shorter than other build tools that use XML. Boilerplate code is also considerably small because it's DSL is designed to solve a specific problem: moving the software through its lifecycle starting from compilation into static analysis and testing, packaging and finally deployment. See More
You can write code for your build system in Ruby. While not my choice for general programming, Ruby is powerful and expressive. Given some knowledge of Ruby, you can create powerful Rake extensions that result in your average target only needing a few lines in the rakefile in spite of having complex behaviors (Is the library for public consumption, or only for use within the current repo/tier? Compile certain files on certain platforms? Link to libraries published from other repos? etc.). See More
Help millions of people make better decisions.
Each month, over 1.7 million people use Slant to find the best products and share their knowledge. Pick the tags you’re passionate about to get a personalized feed and begin contributing your knowledge.