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

Perl build, unit testing, code coverage: A complete working example

It took me a while and it also took me taking small snippets from a number of different sources and melting them together, but I think I have a small working example that sufficiently demonstrates to a Perl newbie the Perl build process including unit testing and code coverage analysis & reporting. (I’m using ActiveState … Read more

Verification of dependency authenticity in Maven POM based automated build systems

tl;dr: Non-existent verification mechanisms in Maven and missing language constructs in the POM’s DSL are a serious security threat. Until MNG-6026 is addressed, use someting like Gradle Witness. Introduction None of the answers provided so far seem to solve the problem. Signing artifacts is only a first step into the right direction. But the condition … 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

How do I force cmake to include “-pthread” option during compilation?

The Threads module in the latest versions (>= 3.1) of CMake generates the Threads::Threads imported target. Linking your target against Threads::Threads adds all the necessary compilation and linking flags. It can be done like this: set(CMAKE_THREAD_PREFER_PTHREAD TRUE) set(THREADS_PREFER_PTHREAD_FLAG TRUE) find_package(Threads REQUIRED) add_executable(test test.cpp) target_link_libraries(test Threads::Threads) Use of the imported target is highly recommended for new … Read more