# CppSourceSet

@Incubating
interface CppSourceSet : HeaderExportingSourceSet, LanguageSourceSet, DependentSourceSet(source)

### Deprecated

The Gradle software model is deprecated and will be removed in Gradle 10. Use the new component model (e.g. `cpp-application`, `cpp-library`, `swift-application`, `swift-library`, `xctest`) instead.

A set of C++ source files.

A C++ source set contains a set of source files, together with an optional set of exported header files.

    plugins {
        id 'cpp'
    }

    model {
        components {
            main(NativeLibrarySpec) {
                sources {
                    cpp {
                        source {
                            srcDirs "src/main/cpp", "src/shared/c++"
                            include "**/*.cpp"
                        }
                        exportedHeaders {
                            srcDirs "src/main/include", "src/shared/include"
                        }
                    }
                }
            }
        }
    }

Content copied to clipboard

#### Since

1.9

## Functions

builtBy
Link copied to clipboard
abstract fun builtBy(tasks: Array<Any>)
Adds tasks required to build this component.
generatedBy
Link copied to clipboard
abstract fun generatedBy(generatorTask: Task)
Generated.
getBuildDependencies
Link copied to clipboard
abstract fun getBuildDependencies(): TaskDependency
Returns a dependency which contains the tasks which build this artifact.
getBuildTask
Link copied to clipboard
@Nullable
abstract fun getBuildTask(): @Nullable Task
Returns the task responsible for building this component.
getDisplayName
Link copied to clipboard
abstract fun getDisplayName(): String
Returns a human-consumable display name for this element.
getExportedHeaders
Link copied to clipboard
abstract fun getExportedHeaders(): SourceDirectorySet
The headers as a directory set.
getImplicitHeaders
Link copied to clipboard
abstract fun getImplicitHeaders(): SourceDirectorySet
The headers that are private to this source set and implicitly available.
getLibs
Link copied to clipboard
abstract fun getLibs(): Collection<out Any>
The libraries that this source set requires.
getName
Link copied to clipboard
abstract fun getName(): String
Returns the name of this element.
getParentName
Link copied to clipboard
@Nullable
abstract fun getParentName(): @Nullable String
Returns the parent name.
getPreCompiledHeader
Link copied to clipboard
abstract fun getPreCompiledHeader(): String
Returns the pre-compiled header configured for this source set.
getProjectPath
Link copied to clipboard
abstract fun getProjectPath(): String
The path to the project containing this component.
getSource
Link copied to clipboard
abstract fun getSource(): SourceDirectorySet
The source files.
hasBuildDependencies
Link copied to clipboard
abstract fun hasBuildDependencies(): Boolean
Returns whether build dependencies.
lib
Link copied to clipboard
abstract fun lib(library: Any)
Adds a library that this source set requires.
setBuildTask
Link copied to clipboard
abstract fun setBuildTask(@Nullable buildTask: @Nullable Task)
Specifies the task responsible for building this component.
setPreCompiledHeader
Link copied to clipboard
abstract fun setPreCompiledHeader(header: String)
Sets the pre-compiled header to be used when compiling sources in this source set.