Articles tagged CMake

  1. How to set up a build system in C++, Python and Java

    I don't know why, but setting up the build system for a new software project and maintaining it seems to be something people are always afraid of. I've often heard people say "Eclipse does the job. It's just additional work." This usually leads to confusion and a lot of bulk and weird solutions several days later when the project starts to evolve...

    Read more
  2. Relative RPath Settings with CMake

    The run-time search path (rpath) defines paths to search for dynamic libraries when executing a program. It is a mechanism on Linux parallel to the LD_LIBRARY_PATH environment variable, which is another hint to find dynamic libraries.

    Usually, it is a good idea to make software which you built relocatable. This means that created binaries can be...

    Read more
  3. Using Dependency Tracking in Jenkins with CMake-based C++ Projects

    If you are building multiple related software projects with a continuous integration server one important aspect is to be notified when changes in an upstream job break the build or tests for a downstream job. This involves knowing which exact build numbers of the upstream and the downstream job are involved.

    The Jenkins continuous integration server...

    Read more
  4. Gcov Coverage Reports in Jenkins

    I am currently evaluating the applicability and limitations of the Jenkins continuous integration server for C++ development. Besides several limitations which are mainly caused by the complexity of C++, Jenkins provides a solid basis for continuous integration of C++ projects.

    One thing which I was not happy with so far was the missing integration...

    Read more
  5. Ignoring Warnings from System Headers

    Compiling C and C++ code with the highest warning levels is a good practice and helps spotting potential errors. For GCC the flags

    1
    
    -Wall -Wextra
    

    will generate a lot of useful warning messages about unused parameters etc.

    Unfortunately, this is not the common practice and often the own compiler settings concerning the warning level results in...

    Read more
  6. CMake: installing headers and preserving the directory structure

    CMake doesn't provide a dedicated way to install header files (except for mac). What I wanted to do was to install all headers of my project using the same directory structure as in the source tree. This isn't as easy as it sounds. Assume you have a list of header files:

    1
    
    SET(HS folder/test.h folder/other/test2.h)
    

    A simple call to INSTALL doesn...

    Read more
  7. Out-of-Source Builds mit CMake

    In der Java-Welt gibt es schon lange die sinnvolle Konvention kompilierte class-Dateien in einer anderen Verzeichnisstruktur abzulegen als den Quellcode. So eine eine Konvention hat viele Vorteile:

    • Falls der Quellcode in ein Versionskontrollsystem eingecheckt wird (und das sollte er auf jeden Fall), müssen nicht umständliche Regeln zum Excluden...
    Read more