aboutsummaryrefslogtreecommitdiff
path: root/build2/cxx
AgeCommit message (Collapse)AuthorFilesLines
2016-08-12Rename module to initBoris Kolpackov2-6/+6
2016-08-12Implement support for C compilationBoris Kolpackov20-6020/+197
We now have two new modules: cc (c-common) and c.
2016-08-10Add ignore case support for find_option()Karen Arutyunov3-13/+7
2016-08-02Cosmetic changeBoris Kolpackov2-4/+4
2016-08-02Check for eof before streaming rdbufBoris Kolpackov1-3/+9
2016-08-02Filter gratuitous VC cl.exe and link.exe messagesBoris Kolpackov3-18/+119
2016-08-01Fix relinking on install for VCBoris Kolpackov1-4/+9
2016-07-29Suppress VC banners even at verbosity above 2Boris Kolpackov2-7/+3
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 Arutyunov6-209/+230
2016-07-22Incorporate target to link rule's depdbBoris Kolpackov3-2/+16
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 Kolpackov2-19/+30
2016-07-22Link shell32.lib and user32.lib to default for VC buildsBoris Kolpackov1-0/+19
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-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-20Print project name and out_root in config reportsBoris Kolpackov1-4/+2
2016-07-20Move ar/ranlib to bin.ar sub-module, load in cxx unless shared-only buildBoris Kolpackov1-22/+42
This way we don't load/configure what we don't need.
2016-07-19Add import library target libi{}, make libs{} the DLLBoris Kolpackov5-120/+183
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 Kolpackov3-131/+409
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 Kolpackov4-39/+73
This way we can specify static library-specific defines which are necessary to handle DLL export.
2016-07-17Redesign obj to exe/lib mappingBoris Kolpackov9-188/+320
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 Kolpackov2-16/+41
2016-07-15Name and cleanup extra VC files (.pdb, .ilk, .idb)Boris Kolpackov3-40/+122
2016-07-13Use link.exe instead of cl.exe to link executablesBoris Kolpackov2-69/+109
2016-07-11Escape Windows path backslashes in synthesized .rc fileBoris Kolpackov1-2/+18
2016-07-11Reimplement Windows rpath emulation using embedded manifestsBoris Kolpackov4-334/+525
As a bonus, everyone now gets a sane default manifest.
2016-07-09Add config.bin.pattern, pass it as hint from cxx moduleBoris Kolpackov1-13/+74
With this change we normally no longer need to specify config.bin.ar explicitly when cross-compiling or set it to lib.exe for VC.
2016-07-08Add dependency on fsdir{} in alias rulesBoris Kolpackov2-2/+2
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 Kolpackov2-45/+428
2016-07-01Port to MSVCKaren Arutyunov2-10/+10
2016-06-27Add config.bin.target var/hint, use to decide libso{} install modeBoris Kolpackov1-80/+98
Normally the user doesn't need to specify config.bin.target explicitly since the cxx module will hint it. We now also have the whole set of target's components: bin.target.{cpu,vendor,system,version,class}
2016-06-27Get rid of extern "C" in module boot()/init()Boris Kolpackov2-16/+16
We will have a separate (extern "C") register() function that will return the pointers to these two. This way we can still throw exceptions from boot() and init().
2016-06-26Add support for passing configuration hints via module init()Boris Kolpackov2-3/+11
2016-06-26Minor module interface cleanupsBoris Kolpackov1-8/+4
2016-06-26Add notion of ad hoc group, use to handle DLL/import libraryBoris Kolpackov3-133/+170
2016-06-20Fix some more MinGW .dll.a searchBoris Kolpackov1-15/+43
2016-06-18Port to MinGWKaren Arutyunov2-8/+34
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 Kolpackov3-26/+81
2016-06-11Initial VC++ support (static libraries only)Boris Kolpackov8-257/+728
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-25Fix bug in C++ compiler guessing logicBoris Kolpackov1-1/+1
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-22Clarify few @@ notesBoris Kolpackov2-2/+2