Skip to content

Commit

Permalink
Merge pull request #9592 from ZombineDev/remove-cpp-build-dependency
Browse files Browse the repository at this point in the history
Replace mem.c and tk.c with C stdlib wrappers in tk.d
merged-on-behalf-of: unknown
  • Loading branch information
dlang-bot committed Apr 12, 2019
2 parents ce8a083 + 9a164ef commit 077d345
Show file tree
Hide file tree
Showing 10 changed files with 52 additions and 1,298 deletions.
2 changes: 1 addition & 1 deletion azure-pipelines.yml
Expand Up @@ -36,7 +36,7 @@ jobs:
MODEL: 32
ARCH: x86
D_COMPILER: ldc
VISUALD_VER: v0.48.1
VISUALD_VER: v0.49.0
LDC_VERSION: 1.14.0
steps:
- template: .azure-pipelines/windows-visual-studio.yml
27 changes: 4 additions & 23 deletions src/build.d
Expand Up @@ -268,7 +268,7 @@ auto buildCXX(string obj, string fileName)
Dependency dependency = {
target: obj,
sources: [fileName],
rebuildSources: sources.backendC ~ configFiles,
rebuildSources: configFiles,
name: "(CC) BACK_OBJS %s".format(fileName),
command: [env["HOST_CXX"], "-c", "-o$@"].chain(flags["CXXFLAGS"], flags["BACK_FLAGS"], "$<".only).array
};
Expand All @@ -292,29 +292,19 @@ auto dBackend()
return dependency;
}

/// Returns: the dependencies that build the C++ backend
auto cxxBackend()
{
Dependency[] dependencies;
foreach (obj; sources.backendObjects)
dependencies ~= buildCXX(obj, env["C"].buildPath(obj.baseName.stripExtension ~ ".c"));

return dependencies;
}

/// Execute the sub-dependencies of the backend and pack everything into one object file
auto buildBackend()
{
opTabGen.run;

Dependency[] dependencies = cxxBackend();
Dependency[] dependencies;
dependencies ~= dBackend;
foreach (dependency; dependencies.parallel(1))
dependency.run;

// Pack the backend
Dependency dependency = {
sources: sources.backendObjects.chain(env["G"].buildPath("dbackend").objName.only).array,
sources: [ env["G"].buildPath("dbackend").objName ],
target: env["G"].buildPath("backend").libName,
command: [env["AR"], "rcs", "$@", "$<"],
};
Expand Down Expand Up @@ -525,7 +515,6 @@ void parseEnvironment()
env.getDefault("PGO_DIR", srcDir.buildPath("pgo"));
auto d = env.getDefault("D", srcDir.buildPath("dmd"));
env.getDefault("C", d.buildPath("backend"));
env.getDefault("TK", d.buildPath("tk"));
env.getDefault("ROOT", d.buildPath("root"));
env.getDefault("EX", d.buildPath("examples"));
auto generated = env.getDefault("GENERATED", srcDir.dirName.buildPath("generated"));
Expand Down Expand Up @@ -663,7 +652,7 @@ void processEnvironment()
// TODO: allow adding new flags from the environment
string[] dflags = ["-version=MARS", "-w", "-de", "-dip25", env["PIC_FLAG"], env["MODEL_FLAG"], "-J"~env["G"]];

flags["BACK_FLAGS"] = ["-I"~env["ROOT"], "-I"~env["TK"], "-I"~env["C"], "-I"~env["G"], "-I"~env["D"], "-DDMDV2=1"];
flags["BACK_FLAGS"] = ["-I"~env["ROOT"], "-I"~env["C"], "-I"~env["G"], "-I"~env["D"], "-DDMDV2=1"];

// TODO: add support for dObjc
auto dObjc = false;
Expand Down Expand Up @@ -794,14 +783,6 @@ auto sourceFiles()
"dt",
"obj",
].map!(e => env["C"].buildPath(e ~ ".d")).array,
backendC:
// all backend files in C
["tk"]
.map!(a => env["G"].buildPath(a).objName)
.array,
backendObjects: ["tk"]
.map!(a => env["G"].buildPath(a).objName)
.array,
};
sources.backendC.writeln;
sources.dmd = sources.frontend ~ sources.backendHeaders;
Expand Down
91 changes: 0 additions & 91 deletions src/dmd/backend/code_stub.h

This file was deleted.

0 comments on commit 077d345

Please sign in to comment.