saker.clang Documentation TaskDoc JavaDoc Packages
Links input files using clang. The task runs clang linking operation for the given input files. It can be used to link to create the final binaries for the compiled objects files. Generally it is used to link the output object files from the saker.clang.compile() task, however, other type of files which are valid inputs to the linker are accepted as well. The task supports distributing its workload using build clusters.
Summary
Parameters
BinaryNameSpecifies the file name of the link output.
IdentifierThe Identifier of the link operation.
Input
Required parameter.
Specifies one or more inputs for the link operation.
LibraryPathSpecifies the library path that will be searched for libraries.
LinkerOptionsSpecifies one or more option specifications that are merged with the inputs when applicable.
SDKsSpecifies the SDKs (Software Development Kits) used by the task.
SimpleParametersSpecifies one or more arguments that should be directly passed to the clang.
Parameters
Specifies the file name of the link output. The specified string will be used as the name of the generated executable or library. An extension is not appended to the binary name automatically. If not specified, the file name will be generated based on the compilation Identifier.
The Identifier of the link operation. Each link task has an identifier that uniquely identifies it during a build execution. The identifier is used to determine the output directory of the link operation. It is also used to merge the appropriate options specified in LinkerOptions parameter. An identifier constists of dash separated parts of character sequences of a-z, A-Z, 0-9, _, ., (), [], @. An option specification in the LinkerOptions can be merged if the linker identifier contains all parts of the option Identifier. If not specified, the identifier is determined based on the current working directory, or assigned to "default", however, it won't be subject to option merging.
Required parameter.
Specifies one or more inputs for the link operation. The inputs may be either simple paths, wildcards, file locations, file collections or task output from saker.clang.compile().
Specifies the library path that will be searched for libraries. The values may be simple paths, wildcards, file locations, file collections, or SDK paths. The link task doesn't specify any library paths by default. Corresponds to the -L command line option for clang.
Specifies one or more option specifications that are merged with the inputs when applicable. The parameter can be used to indirectly specify various linker arguments independent of the actual inputs. This is generally useful when common options need to be specified to multiple link operation inputs. When linker arguments are determined, each option specification will be merged into the used argumnets if applicable. An option is considered to be applicable to merging if all of the Identifier parts are contained in the link task Identifier. In case of unresolveable merge conflicts, the task will throw an appropriate exception.
Specifies the SDKs (Software Development Kits) used by the task. SDKs represent development kits that are available in the build environment and to the task. SDKs are used to determine the appropriate build environment to execute the task, as well to resolve paths against them (e.g. IncludeDirectory, LibraryPath). The "Clang" SDK is used to determine the location of the clang executable. If it is not specified, then the task will attempt to determine it automatically.
Specifies one or more arguments that should be directly passed to the 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.