aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/functions-builtin.cxx
AgeCommit message (Collapse)AuthorFilesLines
2022-10-10Preparatory work for public/private variable distinctionBoris Kolpackov1-1/+1
We still always use the public var_pool from context but where required, all access now goes through scope::var_pool().
2022-09-30Move integer and bool function to separate source/testscript filesBoris Kolpackov1-158/+0
2022-09-29Add $find(<sequence>, <value>), $find_index(<sequence>, <value>) functionsBoris Kolpackov1-0/+33
The $find() function returns true if the sequence contains the specified value. The $find_index() function returns the index of the first element in the sequence that is equal to the specified value or $size(<sequence>) if none is found. For string sequences, it's possible to request case- insensitive comparison with a flag.
2022-09-22Add $integer_sequence(<begin>, <end>[, <step>]) functionBoris Kolpackov1-0/+31
It returns the list of uint64 integers starting from <begin> (including) to <end> (excluding) with the specified <step> or 1 if unspecified. For example: hdr = foo.hxx bar.hxx baz.hxx src = foo.cxx bar.cxx baz.cxx assert ($size($hdr) == $size($src)) "hdr and src expected to be parallel" for i: $integer_sequence(0, $size($hdr)) { h = ($hdr[$i]) s = ($src[$i]) ... }
2022-09-22Add support for hex notation for uint64 typeBoris Kolpackov1-1/+54
Specifically, now we can do: x = [uint64] 0x0000ffff cxx.poptions += "-DOFFSET=$x" # -DOFFSET=65535 cxx.poptions += "-DOFFSET=$string($x, 16)" # -DOFFSET=0xffff cxx.poptions += "-DOFFSET=$string($x, 16, 8)" # -DOFFSET=0x0000ffff Note that there is no hex notation support for the int64 (signed) type.
2022-02-16Invent quoting modes for to_stream(name)Karen Arutyunov1-1/+1
2021-11-04Add $size() function to get size of sequence (names, strings, etc)Boris Kolpackov1-17/+4
2021-11-02Add $sort() functionBoris Kolpackov1-1/+69
Available overloads: $sort(<names> [, <flags>]) $sort(<ints> [, <flags>]) $sort(<strings> [, <flags>]) $sort(<paths> [, <flags>]) $sort(<dir_paths> [, <flags>]) The following flag is supported by the all overloads: dedup - in addition to sorting also remove duplicates Additionally, the strings overload also support the following flag: icase - sort ignoring case Note that on case-insensitive filesystem the paths and dir_paths overload's order is case-insensitive.
2021-04-09Document hermetic build configuration supportBoris Kolpackov1-0/+4
2020-12-04Mark Buildfile functions as pure or impureBoris Kolpackov1-12/+18
2020-10-28Add missing $builtin.string(int64)Boris Kolpackov1-0/+1
2020-03-31Switch to project variable visibility by defaultBoris Kolpackov1-1/+1
2020-03-18Add $visibility(<variable>) function for querying variable visibilityBoris Kolpackov1-0/+15
2020-03-17Add $defined(<variable>) functionBoris Kolpackov1-23/+23
2020-02-07Drop copyright notice from source codeKaren Arutyunov1-1/+0
2019-10-18Add $quote() function for quoting valuesBoris Kolpackov1-0/+25
This can be useful if we want to pass a value on the command line, for example, in a testscript: $* config.cxx=$quote($recall($cxx.path) $cxx.mode, true)
2019-08-23Introduce notion of build contextBoris Kolpackov1-2/+2
All non-const global state is now in class context and we can now have multiple independent builds going on at the same time.
2019-07-01Split build system into library and driverBoris Kolpackov1-0/+56