Questions tagged [build-system]

Build systems are tools used for compiling source code and assembling/packaging the results.

Build systems covers a wide range of tools that are used to compile/assemble/transform source code into executables, libraries, and other artifacts; these tools can include (but are not limited to) e.g. make, ant, gradle, maven, etc.

These systems can also be covered/described by terms like "build automation", "build servers"; more information on tools of this kind can be found on Wikipedia.

69 questions
51
votes
4 answers

What is the difference between building and compiling ?

What's the difference between Building and Compiling.
25
votes
6 answers

Why isn't java used as a build language?

If Java is a general purpose language, and building a program is something that can be described using the Java language, why isn't this the best way to write build files and instead we use tools like Ant, Maven, and Gradle? Wouldn't that be more…
vainolo
  • 1,321
  • 3
  • 13
  • 22
24
votes
5 answers

Why do build tools use a scripting language different than underlying programming language?

I've recently been using some build tools for a Nodejs project at work when I realized that most languages' main build tool/system use a different language than the underlying programming language itself. For example, make does not use C or C++ to…
joshin4colours
  • 3,678
  • 1
  • 24
  • 37
23
votes
4 answers

How can CI be used for interpreted languages?

I have never used a Continuous Integration system (CI) before. I primarily code in MATLAB, Python or PHP. Neither of these have a build step and I do not see how a CI could be used for my work. A friend on a large project in a large firm told me…
20
votes
1 answer

Haskell build and artifact environment similar to Maven

I used to be a Java developer for a long time, but recently, I joined a Haskell team. In the java world, if you have a large project, with several teams working on it, a common approach is to use an artifact server such as Maven to ease and…
Oxy
  • 309
  • 1
  • 4
19
votes
6 answers

Why should makefiles have an "install" target?

Coming from the world of C and C++, most build system have an install target, notably Makefiles (where it is recommended by GNU for example) or CMake. This target copies the runtime files (executables, libraries, ...) in the operating system (for…
Synxis
  • 307
  • 2
  • 6
15
votes
4 answers

Does it make sense to write build scripts in C++?

I'm using CMake to generate my projects IDE/makefiles, but I still need to call custom "scripts" to manipulate my compiled files or even generate code. In previous projects I've been using Python and it was OK, but now I'm having serious trouble…
Klaim
  • 14,832
  • 3
  • 49
  • 62
14
votes
2 answers

How should I select continuous integration tool?

I found this cool comparison table for integration servers on Wikipedia, but I am a little uncertain how to rank the tools vs. my needs and interests. The chart itself seems to have a lot of boxes marked unknown, so if you are comfortable updating…
DeveloperDon
  • 4,958
  • 1
  • 26
  • 53
13
votes
2 answers

Are there any build systems that incorporate relative expected task times into the schedule?

Here's a small illustration of my question: Assume a build job that consists of 4 independent tasks named A-D. D takes longer than A-C do in sum. A build system that cannot incorporate the relative task times might schedule the tasks like…
sjakobi
  • 157
  • 7
12
votes
5 answers

To integrate git versions as build numbers or not?

A colleague and I have been taking turns debating/discussing the issues/merits of integrating a version derived from the current git repository into our code whenever it builds. We think the merits include: No need to worry about human error in…
Travis Griggs
  • 341
  • 1
  • 2
  • 6
12
votes
7 answers

How to cope with the problem of (compiling) a large code base?

Although I can code, I don't yet have any experience with working on large projects. What I did so far was either coding small programs that get compiled in matter of seconds (various c/c++ exercises like algorithms, programming principles, ideas,…
tkit
  • 222
  • 2
  • 9
11
votes
2 answers

How many make threads to use?

When I (re-)build large systems on a desktop/laptop computer, I tell make to use more than one thread to speed up the compilation speed, like this: $ make -j$[ $K * $C ] Where $C is supposed to indicate the number of cores (which we can assume to…
bitmask
  • 879
  • 2
  • 8
  • 19
9
votes
2 answers

How is it possible to build the whole codebase from source at Google scale?

The first answer to an old, recently active question linked to a video which talks about how Google repository is done. One interesting thing which was mentioned is the fact that everything is build from source, without relying on binaries. This…
Arseni Mourzenko
  • 134,780
  • 31
  • 343
  • 513
8
votes
6 answers

Splitting large C++ project

Like it happens to many, our C++ project grew larger and larger, and it finally hit the point where maintainability starts to be a concern, mostly due to build times: even by using ccache, every change requires anywhere from 30 seconds to 5 minutes…
matpen
  • 197
  • 1
  • 3
7
votes
3 answers

How to prevent overlap booking on a calendar booking system

As an exercise, I am trying to design a simple calendar booking system for multiple meeting rooms. I kind of got my head around some requirements such as find available rooms for a given time range, room booking look up. However, I seem to stuck a…
smurf
  • 79
  • 1
  • 2
1
2 3 4 5