Library
      Library
    
    Builds a statically linked library.
Library( alias )            ; (optional) Alias
{
  ; options for compilation
  .Compiler                 ; Compiler to use
  .CompilerOptions          ; Options for compiler
  .CompilerOutputPath       ; Path to store intermediate objects
  .CompilerOutputExtension  ; (optional) Specify the file extension for generated objects (default .obj or .o)
  .CompilerOutputPrefix     ; (optional) Specify a prefix for generated objects (default none)
  ; Options for librarian
  .Librarian                ; Librarian to collect intermediate objects
  .LibrarianOptions         ; Options for librarian
  .LibrarianType            ; (optional) Specify the librarian type. Valid options include:
                            ; auto, msvc, ar, ar-orbis, greenhills-ax
                            ; Default is 'auto' (use the librarian executable name to detect)
  .LibrarianOutput          ; Output path for lib file
  .LibrarianAdditionalInputs; (optional) Additional inputs to merge into library
  .LibrarianAllowResponseFile ; (optional) Allow response files to be used if not auto-detected (default: false)  
  .LibrarianForceResponseFile ; (optional) Force use of response files (default: false)
  ; Specify inputs for compilation
  .CompilerInputPath           ; (optional) Path to find files in
  .CompilerInputPattern        ; (optional) Pattern(s) to use when finding files (default *.cpp)
  .CompilerInputPathRecurse    ; (optional) Recurse into dirs when finding files (default true)
  .CompilerInputExcludePath    ; (optional) Path(s) to exclude from compilation
  .CompilerInputExcludedFiles  ; (optional) File(s) to exclude from compilation (partial, root-relative of full path)
  .CompilerInputExcludePattern ; (optional) Pattern(s) to exclude from compilation
  .CompilerInputFiles          ; (optional) Explicit array of files to build
  .CompilerInputFilesRoot      ; (optional) Root path to use for .obj path generation for explicitly listed files
  .CompilerInputUnity          ; (optional) Unity to build (or Unities)
  .CompilerInputAllowNoFiles   ; (optional) Don't fail if no inputs are found
  .CompilerInputObjectLists    ; (optional) ObjectList(s) whos output should be used as an input
  ; Cache & Distributed compilation control
  .AllowCaching             ; (optional) Allow caching of compiled objects if available (default true)
  .AllowDistribution        ; (optional) Allow distributed compilation if available (default true)
  
  ; Custom preprocessor support
  .Preprocessor             ; (optional) Compiler to use for preprocessing
  .PreprocessorOptions      ; (optional) Args to pass to compiler if using custom preprocessor
  
  ; Additional compiler options
  .CompilerForceUsing       ; (optional) List of objects to be used with /FU
  ; (optional) Properties to control precompiled header use
  .PCHInputFile             ; (optional) Precompiled header (.cpp) file to compile
  .PCHOutputFile            ; (optional) Precompiled header compilation output
  .PCHOptions               ; (optional) Options for compiler for precompiled header
  ; Additional options
  .PreBuildDependencies     ; (optional) Force targets to be built before this library (Rarely needed,
                            ; but useful when a library relies on generated code).
  .ConcurrencyGroupName     ; (optional) Concurrency Group for this task
  .Environment              ; (optional) Environment variables to use for local build
                            ; If set, librarian uses this environment
                            ; If not set, librarian uses .Environment from your Settings node
  .Hidden                   ; (optional) Hide a target from -showtargets (default false)
}
Build-Time Substitutions
- CompilerOptions
 - %1 - Input file for each invocation of the compiler as determined by the various Input parameters.
 - %2 - Output name of object being compiled, as specified by CompilerOutputPath and the name of discovered objects depending on the Compiler input options (extension is also replace with CompilerOutputExtension).
 - %3 - Object file for PCH file, as used in linking. (PCHOutputFile + CompilerOutputExtension). (MSVC Only)
 - %4 - CompilerForceUsing expansion. Expand items with /FU"%4". (MSVC Only)
 - LibrarianOptions
 - %1 - List of objects to link.
 - %2 - Output library as specified by 'LibrarianOutput'.
 - PCHOptions
 - %1 - Input file for used to generate the PCH (PCHInputFile).
 - %2 - Output name of PCH file to generate (PCHOutputFile).
 - %3 - Object file for PCH, as used in linking. (PCHOutputFile + CompilerOutputExtension). (MSVC Only)
 - %4 - CompilerForceUsing expansion. Expand items with /FU"%4". (MSVC Only)
 
