aboutsummaryrefslogtreecommitdiffstats
path: root/ice40/resource/embed.cc
diff options
context:
space:
mode:
authorMiodrag Milanovic <mmicko@gmail.com>2018-07-04 12:06:03 +0200
committerMiodrag Milanovic <mmicko@gmail.com>2018-07-04 12:08:16 +0200
commitb96727549ccd319f61d33982f678075880fad166 (patch)
tree6d7fc3bc0d200b2c336bec74b1855ca5c577afbf /ice40/resource/embed.cc
parentc9d1bce85994756f196a6eb22926ba4acaf42aec (diff)
downloadnextpnr-b96727549ccd319f61d33982f678075880fad166.tar.gz
nextpnr-b96727549ccd319f61d33982f678075880fad166.tar.bz2
nextpnr-b96727549ccd319f61d33982f678075880fad166.zip
Building using MSVC works
Diffstat (limited to 'ice40/resource/embed.cc')
-rw-r--r--ice40/resource/embed.cc31
1 files changed, 31 insertions, 0 deletions
diff --git a/ice40/resource/embed.cc b/ice40/resource/embed.cc
new file mode 100644
index 00000000..15245355
--- /dev/null
+++ b/ice40/resource/embed.cc
@@ -0,0 +1,31 @@
+#include <windows.h>
+#include <cstdio>
+#include "nextpnr.h"
+#include "resource.h"
+
+NEXTPNR_NAMESPACE_BEGIN
+
+const char* chipdb_blob_384;
+const char* chipdb_blob_1k;
+const char* chipdb_blob_5k;
+const char* chipdb_blob_8k;
+
+const char* LoadFileInResource(int name, int type, DWORD& size)
+{
+ HMODULE handle = ::GetModuleHandle(NULL);
+ HRSRC rc = ::FindResource(handle, MAKEINTRESOURCE(name),
+ MAKEINTRESOURCE(type));
+ HGLOBAL rcData = ::LoadResource(handle, rc);
+ size = ::SizeofResource(handle, rc);
+ return static_cast<const char*>(::LockResource(rcData));
+}
+void load_chipdb()
+{
+ DWORD size = 0;
+ chipdb_blob_384 = LoadFileInResource(IDR_CHIPDB_384, BINARYFILE, size);
+ chipdb_blob_1k = LoadFileInResource(IDR_CHIPDB_1K, BINARYFILE, size);
+ chipdb_blob_5k = LoadFileInResource(IDR_CHIPDB_5K, BINARYFILE, size);
+ chipdb_blob_8k = LoadFileInResource(IDR_CHIPDB_8K, BINARYFILE, size);
+}
+
+NEXTPNR_NAMESPACE_END \ No newline at end of file