Getting started with autotools

Alexandre Duret-Lutz’s tutorial is my resource of choice. There are also: Autotools: a practitioner’s guide to Autoconf, Automake and Libtool Autotools Mythbuster To me, the autobook is not up to date anymore and more difficult to read. However it still contains interesting chapters like Writing Portable Bourne Shell. Also, consider learning about non-recursive automake which … Read more

Xcode – Automatically add all files in a folder to a target

This is completely broken in Xcode. Adding folders by folder reference (@Pavel’s answer) should be correct – but it just doesn’t work. See also https://stackoverflow.com/a/42600782/2518722. I’m using Xcode 8.3 (update: still broken in Xcode 11), but it’s been broken for many generations prior, too. There isn’t a perfect workaround, but this is what I do: … Read more

ant depends vs. antcall

The biggest difference is that Ant will ensure that dependencies declared via depends are called at most once. For example: <target name=”a” /> <target name=”b” depends=”a” /> <target name=”c” depends=”a” /> <target name=”d” depends=”b, c” /> If I call target d, b and c are called. However, a is only called once (even though both … Read more

How can I rename files with Grunt, based on the respective file’s parent folder name?

This can be done using the grunt-contrib-copy plugin. The main thing to note is that you can change the destination programmatically by using a rename function (which takes in the destination and source of each file). Here is a (somewhat brittle) sample Gruntfile.js that should copy to your desired structure: module.exports = function(grunt) { // … Read more

How to add a whole directory or project output to WiX package

For WiX 2.0, tallow is very limited; paraffin and mallow offer additional functionality. For WiX 3.0, heat offers the same functionnality as tallow, a little bit better. In my case I’ve used mallow source and modified a bit and used it, because paraffin needs 3.5 version of .Net. You can use Mallow or Paraffin tool … Read more

What exactly is ‘Building’?

Building means many things to many people, but in general it means starting with source files produced by developers and ending with things like installation packages that are ready for deployment. “The build” can contain many things: Compilation of source files (for languages/environments that support a separate/explicit compilation step) Linking of object code (for languages/environments … Read more

Multiple settings gradle files for multiple projects building

I was able to solve this problem in a relatively clean way. Improvements are certainly welcome! Although Gradle does not support multiple settings.gradle scripts out of the box, it is possible to create individual sub-projects each with their own settings.gradle file. Let’s say you have multi-project A that depends on multi-project B, each with their … Read more

Generate C# project using CMake

As of CMake 3.8.2, CSharp project generation is officially supported by CMake. To build the default Visual Studio 2017 generated C#/WPF project using CMake, create a CMakeList.txt file as follows. Project Declaration project(Example VERSION 0.1.0 LANGUAGES CSharp) Include CMake CSharpUtilities if you are planning on using WPF or other designer properties. include(CSharpUtilities) Add all cs, … Read more