aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/include
diff options
context:
space:
mode:
authorAlexander Karatarakis <alkarata@microsoft.com>2016-10-14 16:51:15 -0700
committerAlexander Karatarakis <alkarata@microsoft.com>2016-10-14 16:51:15 -0700
commitb15a23a268fd0ab283a54e9670bfd4c6e4a2f69c (patch)
tree68279ea28b4038b7d2e84f351393288852d5c138 /toolsrc/include
parentaa35c41aa67a7389c0b880658f8f797a3cdd3bdb (diff)
downloadvcpkg-b15a23a268fd0ab283a54e9670bfd4c6e4a2f69c.tar.gz
vcpkg-b15a23a268fd0ab283a54e9670bfd4c6e4a2f69c.zip
Add coff_file_reader to extract info/from dll/lib files without dumpbin
Calling dumpbin was very slow in some cases (e.g. boost). With coff_file_reader we directly examine the binary for the few bits we need.
Diffstat (limited to 'toolsrc/include')
-rw-r--r--toolsrc/include/coff_file_reader.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/toolsrc/include/coff_file_reader.h b/toolsrc/include/coff_file_reader.h
new file mode 100644
index 000000000..81f107f10
--- /dev/null
+++ b/toolsrc/include/coff_file_reader.h
@@ -0,0 +1,23 @@
+#pragma once
+#include <vector>
+#include "MachineType.h"
+#include <filesystem>
+
+namespace vcpkg {namespace COFFFileReader
+{
+ namespace fs = std::tr2::sys;
+
+ struct dll_info
+ {
+ MachineType machine_type;
+ };
+
+ struct lib_info
+ {
+ std::vector<MachineType> machine_types;
+ };
+
+ dll_info read_dll(const fs::path path);
+
+ lib_info read_lib(const fs::path path);
+}}