aboutsummaryrefslogtreecommitdiff
path: root/build2/cxx/link.cxx
AgeCommit message (Collapse)AuthorFilesLines
2016-08-12Implement support for C compilationBoris Kolpackov1-1852/+0
We now have two new modules: cc (c-common) and c.
2016-08-10Add ignore case support for find_option()Karen Arutyunov1-7/+2
2016-08-02Cosmetic changeBoris Kolpackov1-1/+1
2016-08-02Filter gratuitous VC cl.exe and link.exe messagesBoris Kolpackov1-6/+39
2016-08-01Fix relinking on install for VCBoris Kolpackov1-4/+9
2016-07-29Suppress VC banners even at verbosity above 2Boris Kolpackov1-5/+2
There is really no use seeing this stuff.
2016-07-23Adapt to fdstream extensionKaren Arutyunov1-20/+24
2016-07-22Incorporate target to link rule's depdbBoris Kolpackov1-1/+8
Since there is no guarantee that the target is part of the linker's checksum.
2016-07-22Factor target CPU to VC /MACHINE option translationBoris Kolpackov1-19/+13
2016-07-22Link shell32.lib and user32.lib to default for VC buildsBoris Kolpackov1-0/+19
2016-07-20Switch to dynamic empty() implementation in variable valueBoris Kolpackov1-1/+1
The current model fell apart when we modified values directly.
2016-07-20Sanitize library name-derived macro for illegal characters ('-', etc)Boris Kolpackov1-6/+11
2016-07-19Add import library target libi{}, make libs{} the DLLBoris Kolpackov1-71/+130
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-120/+145
2016-07-18Add standard static/shared macros for imported installed librariesBoris Kolpackov1-1/+48
2016-07-18Pick liba{}/libs{} before looking up cxx.export.*Boris Kolpackov1-6/+12
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-128/+98
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-15Always generate separate object files for liba{} and libso{}Boris Kolpackov1-9/+5
While on some platforms they sometimes can be the same, they could also be built differently (e.g., based on command line macros, etc). I guess we could compare the set of options and if they are identical, then use the same file. But that will complicate things quite a bit, so maybe in version 2.
2016-07-15Make .pdb ad hoc group member, installBoris Kolpackov1-16/+34
2016-07-15Name and cleanup extra VC files (.pdb, .ilk, .idb)Boris Kolpackov1-34/+68
2016-07-13Use link.exe instead of cl.exe to link executablesBoris Kolpackov1-69/+100
2016-07-11Escape Windows path backslashes in synthesized .rc fileBoris Kolpackov1-2/+18
2016-07-11Reimplement Windows rpath emulation using embedded manifestsBoris Kolpackov1-330/+113
As a bonus, everyone now gets a sane default manifest.
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-07-08Move filesystem-related functions from context to new filesystem filesBoris Kolpackov1-2/+2
2016-07-08Implement limited rpath emulation for WindowsBoris Kolpackov1-45/+425
2016-06-26Add notion of ad hoc group, use to handle DLL/import libraryBoris Kolpackov1-124/+156
2016-06-20Fix some more MinGW .dll.a searchBoris Kolpackov1-15/+43
2016-06-18Port to MinGWKaren Arutyunov1-2/+2
2016-06-18Fix MinGW .dll.a searchBoris Kolpackov1-8/+15
2016-06-18Cosmetic changesBoris Kolpackov1-1/+0
2016-06-17Initial take on DLL support for MinGW toolchainBoris Kolpackov1-23/+75
2016-06-11Initial VC++ support (static libraries only)Boris Kolpackov1-115/+281
2016-05-21Recursively link prerequisite libraries of static librariesBoris Kolpackov1-4/+52
2016-04-26Add imported library rpaths before user-supplied0.3.0Boris Kolpackov1-9/+13
This way we don't accidentally prefer old (installed) versions.
2016-04-22Clarify few @@ notesBoris Kolpackov1-1/+1
2016-04-19Redesign src/out scopingBoris Kolpackov1-11/+17
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-2/+2
2016-03-28Clean up variable usageBoris Kolpackov1-6/+8
2016-03-28Add variable cast from lookupBoris Kolpackov1-15/+15
2016-03-28New variable architectureBoris Kolpackov1-15/+15
2016-03-16Change prerequisite cleaning "limit" from subdirectories to same projectBoris Kolpackov1-4/+4
One day we will get this right.
2016-03-14Add support for guessing ar/ranlib signaturesBoris Kolpackov1-1/+6
2016-03-14Don't pass -rpath on update for installBoris Kolpackov1-6/+35
2016-03-11Implement --config-{guess,sub} optionsBoris Kolpackov1-3/+0
2016-03-10Rename cxx.host.* to cxx.target.*Boris Kolpackov1-3/+3
2016-03-09Use depdb in cxx.link ruleBoris Kolpackov1-30/+147
2016-02-29Rename level[1-6]() to l[1-6]()Boris Kolpackov1-1/+1
2016-02-14Revert back to only cleaning targets in subdirectoriesBoris Kolpackov1-9/+4
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-6/+0