aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/bin/guess.hxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2021-06-21 11:59:04 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2021-06-21 11:59:04 +0200
commit195de65a84864cf5931325eeb2356f7d98155055 (patch)
tree4ba33483d9032acb3de82547d5e9e0307a3c8353 /libbuild2/bin/guess.hxx
parentd822a0ae2c9fe312ad7a31e829ce2951be6a3ea0 (diff)
Add support for automatic generation of symbol exporting .def file
Diffstat (limited to 'libbuild2/bin/guess.hxx')
-rw-r--r--libbuild2/bin/guess.hxx35
1 files changed, 34 insertions, 1 deletions
diff --git a/libbuild2/bin/guess.hxx b/libbuild2/bin/guess.hxx
index 3307999..3a2c219 100644
--- a/libbuild2/bin/guess.hxx
+++ b/libbuild2/bin/guess.hxx
@@ -16,7 +16,7 @@ namespace build2
// Currently recognized ar/ranlib and their ids:
//
// gnu GNU binutils
- // llvm LLVM ar
+ // llvm LLVM llvm-ar
// bsd FreeBSD (and maybe other BSDs)
// msvc Microsoft's lib.exe
// msvc-llvm LLVM llvm-lib.exe
@@ -133,6 +133,39 @@ namespace build2
const rc_info&
guess_rc (const path& rc, const char* paths);
+
+ // nm information.
+ //
+ // Currently recognized nm and nm-like utilities and their ids:
+ //
+ // gnu GNU binutils nm
+ // msvc Microsoft's dumpbin.exe
+ // llvm LLVM llvm-nm
+ // generic Other/generic/unrecognized
+ //
+ // The signature is normally the --version line.
+ //
+ // The checksum is used to detect nm changes. It is calculated in a
+ // toolchain-specific manner (usually the output of --version) and is not
+ // bulletproof.
+ //
+ // The environment is an optional list of environment variables that
+ // affect the resource compiler result.
+ //
+ // Watch out for the environment not to affect any of the extracted
+ // information since we cache it.
+ //
+ struct nm_info
+ {
+ process_path path;
+ string id;
+ string signature;
+ string checksum;
+ const char* const* environment;
+ };
+
+ const nm_info&
+ guess_nm (const path& nm, const char* paths);
}
}