- Qbs Manual
- QbsModules
- Exporter.cmake
- Qbs 3.2.0

# Exporter.cmake

Provides support for generating CMake packages from dynamic, static and header library products. More...

Since: | Qbs 2.3

- List of all members, including inherited members

## Properties

- configFileName : string
- packageName : string
- versionFileName : string

## Detailed Description

The Exporter.cmake module contains the properties and rules to create a CMake config files from the Export item of a Product.

For instance, suppose you are creating a library. To allow exporting to CMake, you would write something like the following:

     DynamicLibrary {
         name: "mylibrary"
         qbs.installPrefix: "/opt/mylibrary"
         Depends { name: "Exporter.cmake" }
         Exporter.cmake.packageName: "MyLibrary"
         property string headersInstallDir: "include"
         // ...
         Group {
             name: "API headers"
             files: ["mylib.h"]
             qbs.install: true
             qbs.installDir: headersInstallDir
         }
         Group {
             fileTagsFilter: ["Exporter.cmake.package"]
             qbs.installDir: "lib/cmake/MyLibrary"
         }
         Export {
             Depends { name: "cpp" }
             cpp.includePaths: FileInfo.joinPaths(
                 exportingProduct.qbs.installRoot,
                 exportingProduct.qbs.installPrefix,
                 exportingProduct.headersInstallDir)
         }
     }

To build against this library, from within your CMake project, you simply use find_package:

     find_package(MyLibrary PATHS REQUIRED)
     add_executable(Consumer main.cpp)
     target_link_libraries(Consumer MyLibrary)

### Relevant File Tags

Tag | Since | Description
--- | --- | ---
`"Exporter.cmake.package"` | 2.3.0 | This tag is attached to all generated module files.
`"Exporter.cmake.configFile"` | 2.3.0 | This tag is attached to the generated config file.
`"Exporter.cmake.versionFile"` | 2.3.0 | This tag is attached to the generated version file.

## Property Documentation

### configFileName : string

The name of the generated config file.

Default: `packageName + "Config.cmake"`

### packageName : string

The name of the CMake package.

Default: Product.targetName

### versionFileName : string

The name of the generated version file.

Default: `packageName + "ConfigVersion.cmake"`