DManager

Class which manages a D checkout and its dependencies.

class DManager : ICacheHost {}

Members

Aliases

MergeMode
alias MergeMode = ManagedRepository.MergeMode
Undocumented in source.
binDir
alias binDir = subDir!"bin"
Undocumented in source.
buildDir
alias buildDir = subDir!"build"
Undocumented in source.
dlDir
alias dlDir = subDir!"dl"
Undocumented in source.
githubDir
alias githubDir = subDir!"github-cache"
Undocumented in source.
homeDir
alias homeDir = subDir!"home"
Undocumented in source.
repoDir
alias repoDir = subDir!"repo"
Undocumented in source.
tmpDir
alias tmpDir = subDir!"tmp"
Undocumented in source.

Classes

Component
class Component

Base class for a D component.

Curl
class Curl

libcurl DLL and import library for Windows.

DInstaller
class DInstaller

Stub for the installer repository, which is needed by the dlang.org makefiles.

DMD
class DMD

The dmd executable

DManagerRepository
class DManagerRepository

Base class for a DManager Git repository.

Druntime
class Druntime

Druntime. Installs only import files, but builds the library too.

Dub
class Dub

The Dub package manager and build tool

Extras
class Extras

Extras not built from source (DigitalMars and third-party tools and libraries)

MetaRepository
class MetaRepository

The meta-repository, which contains the sub-project submodules.

Phobos
class Phobos

Phobos library and imports.

PhobosIncludes
class PhobosIncludes

Phobos import files. In older versions of D, Druntime depended on Phobos modules.

RDMD
class RDMD

The rdmd build tool by itself. It predates the tools package.

SubmoduleRepository
class SubmoduleRepository

Sub-project repositories.

Tools
class Tools

Tools package with all its components, including rdmd.

Website
class Website

Website (dlang.org). Only buildable on POSIX.

Functions

begin
SubmoduleState begin(string commit)

Begin customization, starting at the specified commit.

build
void build(SubmoduleState submoduleState, bool incremental)

Build the specified components according to the specified configuration.

buildRev
void buildRev(string rev)

Shortcut for begin + build

cacheEngineDir
string cacheEngineDir(string engineName)

Returns the path to cached data for the given cache engine (as in config.local.cache).

callback
deprecated void callback(string[] args)
Undocumented in source. Be warned that the author may not have intended to support it.
checkout
void checkout(SubmoduleState submoduleState)

Simply check out the source code for the given submodules.

componentNameFromKey
string componentNameFromKey(string key)
Undocumented in source. Be warned that the author may not have intended to support it.
cp
void cp(string src, string dst)
Undocumented in source. Be warned that the author may not have intended to support it.
getBranch
string[2] getBranch(string submoduleName, string user, string base, string tip)

Returns the commit hash for the given branch (optionally GitHub fork). The result can then be used with addMerge/removeMerge.

getCacheState
bool[string] getCacheState(string[string][string] history)
bool[string] getCacheState(string[] refs)

Returns the isCached state for all commits in the history of the given ref.

getCallbackCommand
deprecated string getCallbackCommand()

Override this method with one which returns a command, which will invoke the unmergeRebaseEdit function below, passing to it any additional parameters. Note: Currently unused. Was previously used for unmerging things using interactive rebase.

getComponent
Component getComponent(string name)

Retrieve a component by name (as it would occur in config.build.components.enable).

getKeyOrder
string[][] getKeyOrder(string key)
Undocumented in source. Be warned that the author may not have intended to support it.
getLog
LogEntry[] getLog(string refName)

Gets the D merge log (newest first).

getMetaRepo
MetaRepository getMetaRepo()
Undocumented in source. Be warned that the author may not have intended to support it.
getPull
string[2] getPull(string submoduleName, int pullNumber)

Returns the commit hash for the given pull request # (base and tip). The result can then be used with addMerge/removeMerge.

getSubmodule
ManagedRepository getSubmodule(string name)
Undocumented in source. Be warned that the author may not have intended to support it.
getSubmoduleComponents
Component[] getSubmoduleComponents(string submoduleName)

Retrieve components built from the given submodule name.

getVSInstaller
auto getVSInstaller()
Undocumented in source. Be warned that the author may not have intended to support it.
haveEnumerateTLV
bool haveEnumerateTLV()
Undocumented in source. Be warned that the author may not have intended to support it.
isCached
bool isCached(SubmoduleState submoduleState)

Check if the given build is cached.

log
void log(string line)

Override to add logging.

merge
void merge(SubmoduleState submoduleState, string submoduleName, string[2] branch, MergeMode mode)

Applies a merge onto the given SubmoduleState.

migrateCache
void migrateCache(string sourceEngineName, string targetEngineName)

Move cached files from one cache engine to another.

needCacheEngine
DCache needCacheEngine()
Undocumented in source. Be warned that the author may not have intended to support it.
needCurl
string needCurl()

Get libcurl for Windows (DLL and import libraries)

needDMC
void needDMC(Environment env, string ver)
Undocumented in source. Be warned that the author may not have intended to support it.
needDMD
void needDMD(Environment env, string dmdVer)

Pull in a built DMD as configured. Note that this function invalidates the current repository state.

needExtras
string needExtras()

Get DMD unbuildable extras (proprietary DigitalMars utilities, 32-bit import libraries)

needKindleGen
void needKindleGen(Environment env)
Undocumented in source. Be warned that the author may not have intended to support it.
needMSYS
void needMSYS(Environment env)
Undocumented in source. Be warned that the author may not have intended to support it.
needVC
void needVC(Environment env, string model)
Undocumented in source. Be warned that the author may not have intended to support it.
needWorkingCC
void needWorkingCC()
Undocumented in source. Be warned that the author may not have intended to support it.
optimizeCache
void optimizeCache()

Optimize entire cache.

parseSpec
SubmoduleState parseSpec(string spec)

Bootstrap description resolution. See DMD.Config.Bootstrap.spec. This is essentially a hack to allow the entire Config structure to be parsed from an .ini file.

purgeUnbuildable
void purgeUnbuildable()

Delete cached "unbuildable" build results.

rebuild
void rebuild()

Rerun build without cleaning up any files.

revert
void revert(SubmoduleState submoduleState, string submoduleName, string[2] branch, MergeMode mode)

Reverts a commit from the given SubmoduleState. parent is the 1-based mainline index (as per man git-revert), or 0 if commit is not a merge commit.

shouldPurge
bool shouldPurge(string key)
Undocumented in source. Be warned that the author may not have intended to support it.
test
void test(bool incremental)

Run all tests for the current checkout (like rebuild).

unmerge
void unmerge(SubmoduleState submoduleState, string submoduleName, string[2] branch, MergeMode mode)

Removes a merge from the given SubmoduleState.

update
bool update()

Fetch latest D history. Return true if any updates were fetched.

Manifest constants

cacheVersion
enum cacheVersion;

This number increases with each incompatible change to cached data.

configFileName
enum configFileName;
Undocumented in source.
configFileName
enum configFileName;
Undocumented in source.
unbuildableMarker
enum unbuildableMarker;

Unbuildable versions are saved in the cache as a single empty file with this name.

Properties

baseEnvironment
Environment baseEnvironment [@property getter]

Create a build environment base.

cacheEngineName
string cacheEngineName [@property getter]

Returns the name of the cache engine being used.

subDir
string subDir [@property getter]

Get a specific subdirectory of the work directory.

Static functions

applyEnv
string[string] applyEnv(string[string] target, string[string] source)

Apply user modifications onto an environment. Supports Windows-style %VAR% expansions.

disableCrashDialog
void disableCrashDialog()

Disable the "<program> has stopped working" standard Windows dialog.

msvcModelDir
string msvcModelDir(string model, string dir64)
Undocumented in source. Be warned that the author may not have intended to support it.
msvcModelStr
string msvcModelStr(string model, string str32, string str64)
Undocumented in source. Be warned that the author may not have intended to support it.
needConfSwitch
bool needConfSwitch()

Do we need to explicitly specify a -conf= switch to DMD This is true when there exists a configuration file in the home directory.

Static variables

additionalComponents
string[] additionalComponents;

Components disabled by default.

allComponents
string[] allComponents;

All components that may be enabled and built.

defaultComponents
string[] defaultComponents;

Components enabled by default.

Structs

Config
struct Config

DManager configuration.

Environment
struct Environment

Current build environment.

LogEntry
struct LogEntry

Gets the D merge log (newest first).

SubmoduleState
struct SubmoduleState

Indicates the state of a build customization.

Variables

autoClean
bool autoClean;

Automatically re-clone the repository in case "git reset --hard" fails.

binExt
enum string binExt;

Executable file name suffix for the current platform.

binExt
enum string binExt;
Undocumented in source.
cacheFailures
bool cacheFailures;

Whether we should cache failed builds.

config
Config config;

DManager configuration.

haveEnumerateTLVChecked
bool haveEnumerateTLVChecked;
haveEnumerateTLVValue
bool haveEnumerateTLVValue;
Undocumented in source.
needWorkingCCChecked
bool needWorkingCCChecked;
Undocumented in source.
verifyWorkTree
bool verifyWorkTree;

Whether to verify working tree state to make sure we don't clobber user changes

Inherited Members

From ICacheHost

getKeyOrder
string[][] getKeyOrder(string key)

An optimization helper which provides a linear order in which keys should be optimized (cache entries most likely to have common data should be adjacent in the list).

log
void log(string s)

Log a string.

Meta