Qbs

Blog Documentation Get Qbs
  • Qbs Manual
  • QbsModules
  • vcs
  • Qbs 2.3.0
  • vcs QML Type

    Provides support for version control systems. More...

    Import Statement: import QbsModules
    Since: Qbs 1.10

    Properties

    Detailed Description

    The vcs module provides the current state of the project's repository via the repoState property. By default, a C header is also generated, allowing for simple retrieval of the repository state directly from within your C/C++ sources. This is useful to embed information into binaries about the exact state of the repository from which they were built.

    For example:

    #include <vcs-repo-state.h>
    #include <iostream>
    
    int main()
    {
        std::cout << "I was built from " << VCS_REPO_STATE << std::endl;
    }

    Above, a header file called vcs-repo-state.h is created, defining a macro called VCS_REPO_STATE, which expands to a character constant describing the current state of the repository. For Git, this would be the current HEAD's commit hash.

    Property Documentation

    headerFileName: string

    The name of the C header file to be created.

    Set this to undefined if you do not want a header file to be generated.

    Default: "vcs-repo-state.h"


    repoDir: string

    The root directory of the repository.

    Default: The top-level project directory (project.sourceDirectory).


    repoState: string

    The current state of the repository.

    For example, in Git this is the commit hash of the current HEAD.

    Default: Undefined


    toolFilePath: string

    Set this property if the tool has an unusual name in your local installation, or if it is located in a directory that is not in the build environment's PATH.

    Default: The file name of the version control tool corresponding to type.


    type: string

    The version control system used in the project.

    Currently, the supported values are "git" and "svn".

    Default: auto-detected