aboutsummaryrefslogtreecommitdiff
path: root/build2
AgeCommit message (Collapse)AuthorFilesLines
2018-09-10Replace libu with libue in buildfilesKaren Arutyunov1-4/+4
2018-09-07Fix binless logic some moreBoris Kolpackov2-15/+16
2018-09-06Fix issues with interaction between binless logic and Windows DLLsBoris Kolpackov4-26/+46
2018-09-05Fix bug in pkgconfig_load()Boris Kolpackov1-1/+1
2018-09-05Only consider common .pc file for binless variant if there is no binfullBoris Kolpackov3-15/+30
2018-09-05Adjust pkg-config logic to cover binless librariesBoris Kolpackov3-131/+234
2018-09-05Create .buildignore file in testscript root working directoryKaren Arutyunov5-12/+112
2018-09-04Check for binless-ness after seeing through to import library memberBoris Kolpackov1-11/+16
This makes a difference for installed libraries since the DLL location might be unknown (empty path).
2018-09-04Initial work on binless (binary-less aka header-only) library supportBoris Kolpackov9-354/+514
2018-09-04Rename .test/test{} to .testscript/testscript{}Boris Kolpackov2-6/+6
2018-09-03Ignore directories with .buildignore file when generating names with ↵Karen Arutyunov1-9/+11
wildcard patterns
2018-09-03Use (native) C and C++ compilers we were built with as defaultsBoris Kolpackov4-7/+44
2018-08-31Add ability to print cc compiler_id valueBoris Kolpackov2-0/+24
2018-08-31Adjust terminology in diagnostic and commentsBoris Kolpackov1-5/+5
2018-08-30Handle missing export directive in export stubBoris Kolpackov2-2/+14
If none were executed, then we assume the requested target is not exported.
2018-08-29Fix typo in diagnosticsBoris Kolpackov1-1/+1
2018-08-28Diagnose NULL test.target variable valueBoris Kolpackov1-9/+19
2018-08-27Don't insist on install rules for non-file targetsBoris Kolpackov7-26/+51
This helps with (not) installing libu*{} groups.
2018-08-27Fix diagnostics bugBoris Kolpackov1-2/+1
2018-08-27Use butl::path_match() for pattern-specific variable matchingBoris Kolpackov1-25/+10
2018-08-25Implement missing pieces in utility libraries supportBoris Kolpackov14-313/+624
In particular, we can now build static libraries out of utility libraries.
2018-08-22Rework code to sidestep Clang 3.8 on FreeBSD 11.0 mis-compilationBoris Kolpackov1-2/+1
2018-08-22Remove unnecessary move()'sBoris Kolpackov1-2/+2
2018-08-21Unset CL and _CL_ environment variables when detecting MSVCBoris Kolpackov5-18/+37
2018-08-21Print 'ar' instead of 'ld' when building static librariesBoris Kolpackov1-1/+1
2018-08-14Use thin archives if available for utility librariesBoris Kolpackov5-44/+166
Thin archives are supported by GNU ar since binutils 2.19.1 and LLVM ar since LLVM 3.8.0.
2018-08-09Add functions for decomposing name as parget/prerequisite nameBoris Kolpackov1-1/+82
2018-08-09Handle few corner cases in concatenated expansionBoris Kolpackov1-23/+42
2018-08-09Add support for name patterns without wildcard charactersBoris Kolpackov2-17/+19
In particular, this allows the "if-exists" specification of prerequisites, for example: for t: $tests exe{$t}: cxx{$t} test{+$t}
2018-08-09Add support for returning optional<T> from (buildfile) function implementationsBoris Kolpackov3-1/+32
2018-08-09Fix issue with concatenating empty typed LHSBoris Kolpackov1-3/+14
2018-08-07Add support for default extension specification, trailing dot escapingBoris Kolpackov13-188/+386
For example: cxx{*}: extension = cxx cxx{foo} # foo.cxx cxx{foo.test} # foo.test (probably what we want...) cxx{foo.test...} # foo.test.cxx (... is this) cxx{foo..} # foo. cxx{foo....} # foo.. cxx{foo.....} # error (must come in escape pair)
2018-07-30Fortify cli detection against "other" cli's (like Mono JIT compiler)Boris Kolpackov1-12/+25
2018-07-30Make project variable to be of project_name typeKaren Arutyunov30-112/+267
2018-07-28Add build.version.stage boolean variableBoris Kolpackov1-0/+14
It can be used to detection (for example, in tests) whether this is a staged toolchain.
2018-07-26Pass extension supplied by rule to target type default extension functionBoris Kolpackov6-25/+38
Also revert the precedence back to target type over rule. But now the target type is able to customize this logic (see exe{} for a use case).
2018-07-25Remove unnecessary initialization (which also helps GCC 4.9 and VC 14u3)Boris Kolpackov1-1/+1
2018-07-25Exclude cli and bash modules from bootstrap buildBoris Kolpackov1-3/+6
2018-07-25Prefer default extension supplied by rule over one supplied by target typeBoris Kolpackov3-20/+25
2018-07-25Add noteBoris Kolpackov1-3/+4
2018-07-25Fix broken dist checksum calculationKaren Arutyunov1-1/+1
2018-07-24Make exe{} target default to no extension rather than failBoris Kolpackov2-13/+10
This just keep breaking (this time for exe{}: in{} match during distribution). So we assume rules will assign the target platform extension if necessary and if not, then we default to no extension (e.g., a shell script).
2018-07-24Switch to new GCC module interface (-fmodule-mapper)Boris Kolpackov3-153/+112
2018-07-24Handle leading 'module;' marker (p0713)Boris Kolpackov3-4/+28
2018-07-24Document in and bash modulesBoris Kolpackov1-1/+2
2018-07-23Sanitize project name when forming config.import.<proj> variableBoris Kolpackov1-5/+23
Specifically, '-', '+', and '.' are replaced with '_' to form a "canonical" variable name.
2018-07-21Install bash module prerequisites for amalgamation rather than projectBoris Kolpackov4-5/+31
This is similar to what we do for shared libraries in cc::install_rule.
2018-07-21Fix installed import semantics for bash modulesBoris Kolpackov1-6/+31
2018-07-21Tweak bash rule matching semanticsBoris Kolpackov1-2/+5
2018-07-20Implement bash moduleBoris Kolpackov17-126/+900