diff options
Diffstat (limited to 'dev-lang/dmd/files/2.084-config.d')
-rw-r--r-- | dev-lang/dmd/files/2.084-config.d | 77 |
1 files changed, 0 insertions, 77 deletions
diff --git a/dev-lang/dmd/files/2.084-config.d b/dev-lang/dmd/files/2.084-config.d deleted file mode 100644 index 7a9e1c2..0000000 --- a/dev-lang/dmd/files/2.084-config.d +++ /dev/null @@ -1,77 +0,0 @@ -/** -Generates the compiler version, the version printed with `dmd --version`. - -Outputs a file with the generated version which is imported as a string literal -in the compiler source code. -*/ -module config; - -void main(const string[] args) -{ - import std.file : mkdirRecurse, readText; - import std.path : buildPath; - - const outputDirectory = args[1]; - const versionFile = args[2]; - - version (Posix) - const sysConfigDirectory = args[3]; - - mkdirRecurse(outputDirectory); - const version_ = generateVersion(versionFile); - - updateIfChanged(buildPath(outputDirectory, "VERSION"), version_); - - version (Posix) - { - const path = buildPath(outputDirectory, "SYSCONFDIR.imp"); - updateIfChanged(path, sysConfigDirectory); - } -} - -/** -Generates the version for the compiler. - -If anything goes wrong in the process the contents of the file -`versionFile` will be returned. - -Params: - versionFile = a file containing a version, used for backup if generating the - version fails - -Returns: the generated version, or the content of `versionFile` -*/ -string generateVersion(const string versionFile) -{ - import std.process : execute; - import std.file : readText; - import std.string : strip; - - const result = execute(["git", "describe", "--dirty"]); - - return result.status == 0 ? result.output.strip : versionFile.readText; -} - -/** -Writes given the content to the given file. - -The content will only be written to the file specified in `path` if that file -doesn't exist, or the content of the existing file is different from the given -content. - -This makes sure the timestamp of the file is only updated when the -content has changed. This will avoid rebuilding when the content hasn't changed. - -Params: - path = the path to the file to write the content to - content = the content to write to the file -*/ -void updateIfChanged(const string path, const string content) -{ - import std.file : exists, readText, write; - - const existingContent = path.exists ? path.readText : ""; - - if (content != existingContent) - write(path, content); -} |