aboutsummaryrefslogtreecommitdiff
path: root/build2/cxx/compile.cxx
AgeCommit message (Collapse)AuthorFilesLines
2016-08-12Implement support for C compilationBoris Kolpackov1-1497/+0
We now have two new modules: cc (c-common) and c.
2016-08-10Add ignore case support for find_option()Karen Arutyunov1-4/+1
2016-08-02Cosmetic changeBoris Kolpackov1-3/+3
2016-08-02Check for eof before streaming rdbufBoris Kolpackov1-3/+9
2016-08-02Filter gratuitous VC cl.exe and link.exe messagesBoris Kolpackov1-12/+37
2016-07-29Suppress VC banners even at verbosity above 2Boris Kolpackov1-2/+1
There is really no use seeing this stuff.
2016-07-29Make /EHsc and /MD default for VC compilerBoris Kolpackov1-4/+45
2016-07-23Adapt to fdstream extensionKaren Arutyunov1-134/+138
2016-07-22Incorporate target to link rule's depdbBoris Kolpackov1-1/+3
Since there is no guarantee that the target is part of the linker's checksum.
2016-07-21Save config vars in order specified rather than alphabeticallyBoris Kolpackov1-1/+1
This way we can group them semantically which results in easier to understand config.build output.
2016-07-19Add import library target libi{}, make libs{} the DLLBoris Kolpackov1-2/+2
In the end, having libs{} be the DLL with import library being its member is more natural than making libs{} the import library and having dll{} as its member.
2016-07-19Add support for building DLLs with VCBoris Kolpackov1-11/+15
2016-07-18Pick liba{}/libs{} before looking up cxx.export.*Boris Kolpackov1-25/+45
This way we can specify static library-specific defines which are necessary to handle DLL export.
2016-07-17Redesign obj to exe/lib mappingBoris Kolpackov1-17/+63
Specifically: * objso{} and libso{} target types have been renamed to objs{} and libs{} * obje{} has been added (so now we have obje{}, obja{}, and objs{}) * obje{} is now used for building exe{} * object file extensions have been changed to use "hierarchical extensions" that reflect the extension of the corresponding exe/lib target (instead of the -so suffix we used), specifically: obje{}: foo.o, (UNIX), foo.exe.o (MinGW), foo.exe.obj (Windows) obja{}: foo.a.o (UNIX, MinGW), foo.lib.obj (Windows) objs{}: foo.so.o (UNIX), foo.dylib.o (Darwin), foo.dll.o (MinGW), foo.dll.obj (Windows)
2016-07-15Name and cleanup extra VC files (.pdb, .ilk, .idb)Boris Kolpackov1-6/+51
2016-07-08Add dependency on fsdir{} in alias rulesBoris Kolpackov1-1/+1
This makes sure that a directory with only dir{} target gets cleaned up.
2016-06-18Port to MinGWKaren Arutyunov1-6/+32
2016-06-17Initial take on DLL support for MinGW toolchainBoris Kolpackov1-3/+3
2016-06-11Initial VC++ support (static libraries only)Boris Kolpackov1-79/+348
2016-04-23Revert back to using root scope in src_out()/out_src()Boris Kolpackov1-2/+2
Relaxing it to base was not wise since we can have "sideways" prerequisites (those from parallel directories such as brep's ../web/*).
2016-04-21Implement short-circuiting to group stateBoris Kolpackov1-3/+5
This is necessary to get rid of bogus restarts in inject_prerequisites() where it think a group member was updated since its state changed from unknown to (group's) changed.
2016-04-19Redesign src/out scopingBoris Kolpackov1-4/+16
We no longer enter paths from the src tree into scope map. Instead, targets from the src tree now include their out tree directory (in essence their "configuration"). This is then used to find a target's scope. See the comment in class target for details. The result of this change is that we can now again build multiple configurations (out trees) for same project at once.
2016-03-31Clean up variable lookup interfacesBoris Kolpackov1-1/+1
2016-03-28Clean up variable usageBoris Kolpackov1-4/+4
2016-03-28Add variable cast from lookupBoris Kolpackov1-8/+8
2016-03-28New variable architectureBoris Kolpackov1-8/+8
2016-03-16Change prerequisite cleaning "limit" from subdirectories to same projectBoris Kolpackov1-3/+4
One day we will get this right.
2016-03-15Don't realize() header path if it comes from depdbBoris Kolpackov1-2/+4
2016-03-14Don't add non-existent/non-updatable headers to depdbBoris Kolpackov1-9/+7
2016-03-11Implement --config-{guess,sub} optionsBoris Kolpackov1-2/+0
2016-03-10Rename cxx.host.* to cxx.target.*Boris Kolpackov1-3/+3
2016-03-09Use depdb in cxx.link ruleBoris Kolpackov1-59/+29
2016-03-09Force creation of output directory before opening depdbBoris Kolpackov1-1/+15
2016-03-08Fix depdb/target update raceBoris Kolpackov1-2/+3
2016-03-07Use cxx.checksum value in cxx.compile depdbBoris Kolpackov1-11/+11
2016-03-07Remove the depdb (.d) files when cleaningBoris Kolpackov1-1/+1
2016-03-07Implement compiler guessing, including icc and msvcBoris Kolpackov1-1/+2
2016-02-29Rename level[1-6]() to l[1-6]()Boris Kolpackov1-13/+13
2016-02-29Implement auxiliary dependency database (.d files), use in cxx.compileBoris Kolpackov1-289/+496
This is part of the "High Fidelity Build" work.
2016-02-15Skip until end of -M output instead of just closing pipeBoris Kolpackov1-3/+8
Clang 3.7.0 on Fedora didn't like that.
2016-02-14Revert back to only cleaning targets in subdirectoriesBoris Kolpackov1-7/+2
Cleaning everything as long as it is in the same strong amalgamation had some undesirable side effects. For example, in bpkg, upgrading a package (which requires clean/reconfigure) led to all its prerequisite being cleaned as well and then rebuilt. That was very surprising.
2016-02-12<types>/<utility> scheme cleanupBoris Kolpackov1-5/+0
2016-02-12Don't call realize() on non-existing header pathsBoris Kolpackov1-7/+9
2016-02-12Use path::realize() instead of normalize() for extracted dependenciesBoris Kolpackov1-1/+9
2016-01-27Add support for Mac OS target (-dynamiclib, -install_name, @rpath, .dylib)Boris Kolpackov1-2/+10
2016-01-09Update copyright yearBoris Kolpackov1-1/+1
2016-01-05Rename build directory/namespace to build2Boris Kolpackov1-0/+794