Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 12 additions & 2 deletions src/build.d
Original file line number Diff line number Diff line change
Expand Up @@ -329,6 +329,8 @@ alias dmdExe = makeDepWithArgs!((MethodInitializer!Dependency builder, Dependenc
string[] platformArgs;
version (Windows)
platformArgs = ["-L/STACK:8388608"];
else version (OSX)
platformArgs = ["-L-framework", "-LCoreFoundation"];

builder
// newdelete.o + lexer.a + backend.a
Expand Down Expand Up @@ -380,6 +382,11 @@ alias runCxxUnittest = makeDep!((runCxxBuilder, runCxxDep) {
.command([ env["CXX"], "-c", frontendDep.sources[0], "-o" ~ frontendDep.target, "-I" ~ env["D"] ] ~ flags["CXXFLAGS"])
);

version (OSX)
const platformArgs = ["-L-framework", "-LCoreFoundation"];
else
const string[] platformArgs;

alias cxxUnittestExe = methodInit!(Dependency, (exeBuilder, exeDep) => exeBuilder
.name("cxx-unittest")
.description("Build the C++ unittests")
Expand All @@ -390,7 +397,7 @@ alias runCxxUnittest = makeDep!((runCxxBuilder, runCxxDep) {
.command([ env["HOST_DMD_RUN"], "-of=" ~ exeDep.target, "-vtls", "-J" ~ env["RES"],
"-L-lstdc++", "-version=NoMain"
].chain(
flags["DFLAGS"], exeDep.sources, exeDep.deps.map!(d => d.target)
flags["DFLAGS"], platformArgs, exeDep.sources, exeDep.deps.map!(d => d.target)
).array)
);

Expand Down Expand Up @@ -574,6 +581,9 @@ alias toolchainInfo = makeDep!((builder, dep) => builder

writeln("==== Toolchain Information ====");

version (OSX)
show("OS", ["sw_vers"]);

version (Windows)
show("SYSTEM", ["systeminfo"]);
else
Expand Down Expand Up @@ -1047,7 +1057,7 @@ auto sourceFiles()
dtype.d debugprint.d fp.d symbol.d elem.d dcode.d cgsched.d cg87.d cgxmm.d cgcod.d cod1.d cod2.d
cod3.d cv8.d dcgcv.d pdata.d util2.d var.d md5.d backconfig.d ph2.d drtlsym.d dwarfeh.d ptrntab.d
dvarstats.d dwarfdbginf.d cgen.d os.d goh.d barray.d cgcse.d elpicpie.d
machobj.d elfobj.d
machobj.d elfobj.d core_foundation.d
" ~ ((env["OS"] == "windows") ? "cgobj.d filespec.d mscoffobj.d newman.d" : "aarray.d")
),
backendHeaders: fileArray(env["C"], "
Expand Down
41 changes: 21 additions & 20 deletions src/dmd/backend/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,26 +57,27 @@ Exception Handling
Miscellaneous
-------------

* **backend.d** internal header file for the backend
* **bcomplex.d** our own complex number implementation
* **md5.d** implementation of MD5 message digest
* **md5.di** API for md5.d
* **newman.d** "new" C++ name mangling scheme
* **os.d** some operating system specific support
* **cc.d** common definitions
* **cdef.d** configuration
* **backconfig.d** transfer configuration from front end to back end
* **compress.d** identifier comperssion
* **debugprint.d** pretty print data structures
* **iasm.d** declarations for inline assembler
* **ptrntab.d** instruction tables for inline assembler
* **oper.d** operators for expression tree
* **optabgen.d** generate tables for back end
* **ty.d** type masks
* **ph2.d** leaking allocator
* **symbol.d** symbols for the back end
* **type.d** types for the back end
* **var.d** global variables
* **backend.d** internal header file for the backend
* **bcomplex.d** our own complex number implementation
* **md5.d** implementation of MD5 message digest
* **md5.di** API for md5.d
* **newman.d** "new" C++ name mangling scheme
* **os.d** some operating system specific support
* **cc.d** common definitions
* **cdef.d** configuration
* **backconfig.d** transfer configuration from front end to back end
* **compress.d** identifier comperssion
* **core_foundation.d** bindings to parts of the Core Foundation framework
* **debugprint.d** pretty print data structures
* **iasm.d** declarations for inline assembler
* **ptrntab.d** instruction tables for inline assembler
* **oper.d** operators for expression tree
* **optabgen.d** generate tables for back end
* **ty.d** type masks
* **ph2.d** leaking allocator
* **symbol.d** symbols for the back end
* **type.d** types for the back end
* **var.d** global variables

Code Generation
---------------
Expand Down
Loading