aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/cc
AgeCommit message (Collapse)AuthorFilesLines
2020-05-27Initial support for ad hoc recipes (still work in progress)Boris Kolpackov4-37/+20
2020-05-22Fix bug in previous commitBoris Kolpackov1-1/+1
2020-05-22Make template definition available in all translation units where usedBoris Kolpackov3-28/+38
We were trying to be clever but GCC 10's IPA-SRA optimization didn't like it.
2020-04-30Rename target::member to target::adhoc_memberBoris Kolpackov2-2/+2
2020-04-27Rework tool importation along with cli moduleBoris Kolpackov4-22/+10
Specifically, now config.<tool> (like config.cli) is handled by the import machinery (it is like a shorter alias for config.import.<tool>.<tool>.exe that we already had). And the cli module now uses that instead of custom logic. This also adds support for uniform tool metadata extraction that is handled by the import machinery. As a result, a tool that follows the "build2 way" can be imported with metadata by the buildfile and/or corresponding module without any tool-specific code or brittleness associated with parsing --version or similar outputs. See the cli tool/module for details. Finally, two new flavors of the import directive are now supported: import! triggers immediate importation skipping any rule-specific logic while import? is optional import (analogous to using?). Note that optional import is always immediate. There is also the import-specific metadata attribute which can be specified for these two import flavors in order to trigger metadata importation. For example: import? [metadata] cli = cli%exe{cli} if ($cli != [null]) info "cli version $($cli:cli.version)"
2020-04-13Add ../share/pkgconfig/ search directory by default on LinuxBoris Kolpackov2-10/+20
2020-04-11Pass LC_ALL=C when extracting locale-dependent information in bin module on ↵Karen Arutyunov1-1/+0
POSIX
2020-04-07Pass LC_ALL=C when extracting locale-dependent information on POSIXBoris Kolpackov2-19/+68
2020-04-02Fix ~host config to only contain cc and bin modules configurationBoris Kolpackov1-1/+1
Also add ~build2 that contains everything (except config.dist.*) to be used for build system modules.
2020-03-31Switch to project variable visibility by defaultBoris Kolpackov2-15/+18
2020-03-20Generate common .pc file in addition to static/staged when installing lib{}Boris Kolpackov6-26/+88
The common .pc file is produced by ignoring any static/shared-specific poptions and splitting loptions/libs into Libs/Libs.private. It is "best effort", in a sense that it's not guaranteed to be sufficient in all cases, but it will probably cover the majority of cases, even on Windows, thanks to automatic dllimport'ing of functions.
2020-03-17Rename all find*(variable) to lookup*(variable)Boris Kolpackov1-6/+6
Now we consistently use term "lookup" for variable value lookup. At some point we should also rename type lookup to binding and get rid of all the lookup_type aliases.
2020-03-17Rework config::{omitted,required,optional}() into unified config_lookup()Boris Kolpackov4-35/+40
2020-03-13Cleanup and make config/utility.?xx part of build system coreBoris Kolpackov1-4/+2
2020-03-11Minor config variable lookup cleanupsBoris Kolpackov1-5/+16
2020-03-10Force hard links inside backlinked DLL assembly directoryBoris Kolpackov1-1/+2
Windows does not allow the manifest file inside to be a symlink for some (probably security) reasons.
2020-02-28Add .gitattributes fileKaren Arutyunov1-1062/+1062
2020-02-27Minor code clanupBoris Kolpackov1-5/+4
2020-02-27Fix .pc files-based static linkage failing on macosKaren Arutyunov1-0/+9
Note that this is achieved by using the PKGCONF_PKG_PKGF_DONT_MERGE_SPECIAL_FRAGMENTS that we invented in the libpkgconf library.
2020-02-26Adapt to adding validator to butl::char_scannerKaren Arutyunov2-22/+32
2020-02-24Work around bug in Clang 10 targeting MSVC in c++2a (LLVM bug #44956)Boris Kolpackov2-2/+5
2020-02-24Disable /WHOLEARCHIVE workaround for lld-link 9.0.1 and laterBoris Kolpackov1-9/+16
2020-02-18New LICENSE/AUTHORS arrangementBoris Kolpackov1-0/+3
2020-02-12Defer failure to compiler diagnostics even if not in "keep going" modeBoris Kolpackov1-3/+6
2020-02-12Add convenience run_start() overloadBoris Kolpackov2-3/+3
2020-02-11Instrument unassigned source path case in cc::compile_ruleBoris Kolpackov1-1/+12
2020-02-11Add match_only flag to contextBoris Kolpackov1-2/+2
2020-02-11Defer unknown header failure to compiler diagnosticsBoris Kolpackov2-81/+192
2020-02-10Make no-target/no-rule header dependency extraction diagnostics consistentBoris Kolpackov1-9/+26
2020-02-07Drop copyright notice from source codeKaren Arutyunov41-41/+0
2020-02-06Add -l<name> resolution exclusions for Windows Platform SDK librariesBoris Kolpackov1-29/+77
2020-02-04Add note to manual on specifying search paths in compiler modeBoris Kolpackov2-1/+5
2020-02-03Fix bug in sys_*_dirs commitBoris Kolpackov1-1/+1
2020-02-03Exclude -lexecinfo from resolutionBoris Kolpackov1-0/+5
2020-02-03Add header/library search paths from compiler mode to sys_*_dirsBoris Kolpackov10-193/+352
2020-01-31Propagate installed library out (tag) when converting to nameBoris Kolpackov3-13/+31
2020-01-31Use -l representation of library names in pkg-config files for MSVCBoris Kolpackov1-5/+38
Passing it as foo.lib triggers some (brain-dead) fragmentation logic in libpkgconf. Also, a C library built with MSVC can be used in MinGW (and vice versa) and so this is also a step in supporting that.
2020-01-31Tag installed library targets with linker pathBoris Kolpackov3-24/+34
This makes sure we get different targets for different toolchains.
2020-01-29Rename module_base to module, redo module boot/init argument passingBoris Kolpackov2-18/+14
2020-01-28Use scope::var_pool()Boris Kolpackov2-28/+28
2020-01-27Protect cc guess cache with mutexBoris Kolpackov1-1/+12
2020-01-27Improve module loading APIBoris Kolpackov2-36/+17
2020-01-27Improve process run_*() APIBoris Kolpackov4-8/+14
2020-01-27Add corner case check in const.{c,cxx} array splittingBoris Kolpackov1-8/+11
2020-01-27Minor cleanupBoris Kolpackov1-15/+1
2020-01-24Don't pass dependency library non-export loptions to linkerKaren Arutyunov1-2/+10
2019-11-29Reorder {cc,c/cxx}.{poptions,loptions}Boris Kolpackov5-12/+23
Now it is c/cxx first followed by cc which is the reverse order of coptions since the header/library search paths are examined in the order specified (in contrast to the "last value wins" semantics that we assume for coptions).
2019-11-26Rename executable's .lib/.exp to avoid clashes with librariesBoris Kolpackov2-32/+44
Failed that we cannot have an executable and a library with the same name and in the same directory (their .lib's will clash).
2019-11-18Add couple of sanity checksBoris Kolpackov1-3/+8
2019-11-15Use path_name_view in location and path_name_value in location_valueKaren Arutyunov1-2/+2