summaryrefslogtreecommitdiffstats
path: root/build2/cxx
Commit message (Collapse)AuthorAgeFilesLines
...
* Add model mutex, make var_pool const by defaultBoris Kolpackov2017-02-131-3/+3
|
* Add bunch of missing const'sBoris Kolpackov2017-01-231-2/+2
|
* Store platform targets as typed target_tripletBoris Kolpackov2017-01-061-5/+4
|
* Update copyright yearBoris Kolpackov2017-01-054-4/+4
|
* Add support for cxx.std=latest, use when building build2Boris Kolpackov2016-12-141-5/+43
|
* Handle C++ standard selection in VC14u3, VC15Boris Kolpackov2016-11-271-12/+37
| | | | They now provide the /std: option which defaults to c++14.
* Add support for VC15Karen Arutyunov2016-11-261-1/+1
|
* Make names and vector<name> different types, add typed value constructorBoris Kolpackov2016-11-181-4/+4
|
* Handle /usr/local brain-deathBoris Kolpackov2016-09-051-0/+2
|
* Improve mixed source (e.g., C and C++) building supportBoris Kolpackov2016-08-312-3/+3
|
* Add support for target visibility, use for dist, test, installBoris Kolpackov2016-08-301-1/+1
| | | | | | | | | | This means we can no longer write: install = false Now it should be: *: install = false
* Limit c.std, cxx.std, and extension visibility to projectBoris Kolpackov2016-08-281-1/+1
|
* Reimplement UNIX rpath using process_library(), -rpath-link is still brokenBoris Kolpackov2016-08-271-0/+1
|
* Clean up library export, make c and cxx modules project root onlyBoris Kolpackov2016-08-271-130/+142
| | | | | | | | So now c and cxx modules can only be loaded in project root scope (normally root.build). Also, the c.std and cxx.std must now be set *before* loading the module to take effect. This means we won't be able to handle old buildfiles anymore but old versions of build2 should be able to handle new *.std placement.
* Add pkg-config support for import installedBoris Kolpackov2016-08-261-0/+2
| | | | Redesign library importing/exporting while at it.
* Pick *.libs variable depending on library type during static linkingBoris Kolpackov2016-08-241-0/+2
|
* Handle *.export.libs, distinguish interface and implementation dependenciesBoris Kolpackov2016-08-241-1/+1
| | | | | | | | | | | | | | | | | | | | | A library dependency on another libraries is either "interface" or "implementation". If it is interface, then everyone who links to this library should also link to the interface dependency, explicitly. A good example of an interface dependency is a library API that is called in inline functions. Interface dependencies of a library should be explicitly listed in the *.export.libs (where we can also list target names). So the typical usage will be along these lines: import int_libs = libfoo%lib{foo} import int_libs += ... import imp_libs = libbar%lib{bar} import imp_libs += ... lib{baz}: ... $int_libs $imp_libs lib{baz}: cxx.export.libs = $int_libs
* Rename cc.{vars,config} modules to cc.core.{vars,config}Boris Kolpackov2016-08-231-3/+3
| | | | We are going to use cc.config for something else.
* Cache process_path, use fallback search directory for binutilsBoris Kolpackov2016-08-221-10/+11
|
* Implement uninstall operationBoris Kolpackov2016-08-191-0/+1
|
* Rename module to initBoris Kolpackov2016-08-122-6/+6
|
* Implement support for C compilationBoris Kolpackov2016-08-1220-6020/+197
| | | | We now have two new modules: cc (c-common) and c.
* Add ignore case support for find_option()Karen Arutyunov2016-08-103-13/+7
|
* Cosmetic changeBoris Kolpackov2016-08-022-4/+4
|
* Check for eof before streaming rdbufBoris Kolpackov2016-08-021-3/+9
|
* Filter gratuitous VC cl.exe and link.exe messagesBoris Kolpackov2016-08-023-18/+119
|
* Fix relinking on install for VCBoris Kolpackov2016-08-011-4/+9
|
* Suppress VC banners even at verbosity above 2Boris Kolpackov2016-07-292-7/+3
| | | | There is really no use seeing this stuff.
* Make /EHsc and /MD default for VC compilerBoris Kolpackov2016-07-291-4/+45
|
* Adapt to fdstream extensionKaren Arutyunov2016-07-236-209/+230
|
* Incorporate target to link rule's depdbBoris Kolpackov2016-07-223-2/+16
| | | | Since there is no guarantee that the target is part of the linker's checksum.
* Factor target CPU to VC /MACHINE option translationBoris Kolpackov2016-07-222-19/+30
|
* Link shell32.lib and user32.lib to default for VC buildsBoris Kolpackov2016-07-221-0/+19
|
* Save config vars in order specified rather than alphabeticallyBoris Kolpackov2016-07-211-1/+1
| | | | | This way we can group them semantically which results in easier to understand config.build output.
* Switch to dynamic empty() implementation in variable valueBoris Kolpackov2016-07-201-1/+1
| | | | The current model fell apart when we modified values directly.
* Sanitize library name-derived macro for illegal characters ('-', etc)Boris Kolpackov2016-07-201-6/+11
|
* Print project name and out_root in config reportsBoris Kolpackov2016-07-201-4/+2
|
* Move ar/ranlib to bin.ar sub-module, load in cxx unless shared-only buildBoris Kolpackov2016-07-201-22/+42
| | | | This way we don't load/configure what we don't need.
* Add import library target libi{}, make libs{} the DLLBoris Kolpackov2016-07-195-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.
* Add support for building DLLs with VCBoris Kolpackov2016-07-193-131/+409
|
* Add standard static/shared macros for imported installed librariesBoris Kolpackov2016-07-181-1/+48
|
* Pick liba{}/libs{} before looking up cxx.export.*Boris Kolpackov2016-07-184-39/+73
| | | | | This way we can specify static library-specific defines which are necessary to handle DLL export.
* Redesign obj to exe/lib mappingBoris Kolpackov2016-07-179-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)
* Always generate separate object files for liba{} and libso{}Boris Kolpackov2016-07-151-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.
* Make .pdb ad hoc group member, installBoris Kolpackov2016-07-152-16/+41
|
* Name and cleanup extra VC files (.pdb, .ilk, .idb)Boris Kolpackov2016-07-153-40/+122
|
* Use link.exe instead of cl.exe to link executablesBoris Kolpackov2016-07-132-69/+109
|
* Escape Windows path backslashes in synthesized .rc fileBoris Kolpackov2016-07-111-2/+18
|
* Reimplement Windows rpath emulation using embedded manifestsBoris Kolpackov2016-07-114-334/+525
| | | | As a bonus, everyone now gets a sane default manifest.
* Add config.bin.pattern, pass it as hint from cxx moduleBoris Kolpackov2016-07-091-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.