saker.clang Documentation TaskDoc JavaDoc Packages
Input configuration for the saker.clang.compile() task. The configuration specifies which files should be compiled, in what manner. The Files field defines the inputs to the compilation task.
Summary
Fields
CompilerOptionsSpecifies one or more option specifications that are merged with the configuration when applicable.
FilesSpecifies the files that should be compiled.
ForceIncludeSpecifies the files that should be force included in the compiled source files.
IncludeDirectoriesSpecifies include directories that are used to resolve #include directives in the source code.
LanguageSpecifies the programming language that should be used for the compilation of the specified files.
MacroDefinitionsSpecifies key-value pairs which should be added as macro definitions for the compiled files.
PrecompiledHeaderSpecifies the path or file location of a header file that should be precompiled.
SimpleParametersSpecifies one or more arguments that should be directly passed to clang.
SubIdentifierSpecifies the sub-identifier that should be used as a qualifier when merging CompilerOptions.
Fields
Specifies one or more option specifications that are merged with the configuration when applicable. Similar to the CompilerOption parameter in saker.clang.compile(), but only affects this input configuration. Mergeability is determined the same way, but with the SubIdentifier field appended to the task compilation identifier.
Specifies the files that should be compiled. Accepts simple paths, wildcards, file locations, and file collections. The specified files are directly passed to clang.
Specifies the files that should be force included in the compiled source files. The option corresponds to the -include argument of clang. The option acts as if the specified file was included with the #include directive at the start of the compiled source file. Multiple force included files can be specified. You don't need to force include the precompiled header if you're using one.
Specifies include directories that are used to resolve #include directives in the source code. The values may be simple paths, wildcards, file locations, file collections, or SDK paths. The compilation task doesn't specify any include directories by default. Corresponds to the -I command line option for clang.
Specifies the programming language that should be used for the compilation of the specified files. If not specified, the language will be determined based on the extension of each file. If the file extension ends with "pp" or "xx", C++ is used. Objective-C is used for the "m" extension, and Objective-C++ for "mm". In any other cases, the file is compiled for the C language. The language is also used to determine if the given CompilerOptions configuration should be merged. The languages are treated in an case-insensitive way. Corresponds to the -x command line option for clang.
Specifies key-value pairs which should be added as macro definitions for the compiled files. Each entry in this map will be defined as a preprocessor macro definition for the compiled files. Corresponds to the -D <key>=<value> command line option for clang. If value is empty or null, it will be omitted, and -D <key> is used.
Specifies the path or file location of a header file that should be precompiled. Precompiled headers files can be preprocessed by the compiler and included in multiple source files. Using them can result in faster builds as the compiler can reuse the result of the precompilation. It is recommended that the precompiled headers contains infrequently changing source files. The precompiled header will be automatically force included in the compiled source files.
Specifies one or more arguments that should be directly passed to clang. Any arguments specified will be appended to the clang invocation for the inputs. Take care when using this option as specifying files here may result in incorrect incremental builds. The order of the specified arguments are kept.
Specifies the sub-identifier that should be used as a qualifier when merging CompilerOptions. The sub-identifier specified here will be merged with the Identifier of the compiler task, and the mergeability of a compiler option configuration is determined based on the merged identifier.