Merge pull request #15 from YosysHQ/fix-ecp5-msvc

Add missing files and missing includes for MSVC
This commit is contained in:
Miodrag Milanović 2018-08-02 08:24:30 -07:00 committed by GitHub
commit 775dba2bee
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 39 additions and 0 deletions

View File

@ -22,6 +22,7 @@
#error Include "arch.h" via "nextpnr.h" only.
#endif
#include <set>
#include <sstream>
NEXTPNR_NAMESPACE_BEGIN

View File

@ -21,6 +21,7 @@
#define ECP5_CONFIG_H
#include "nextpnr.h"
#include <map>
NEXTPNR_NAMESPACE_BEGIN

5
ecp5/resource/chipdb.rc Normal file
View File

@ -0,0 +1,5 @@
#include "resource.h"
IDR_CHIPDB_25K BINARYFILE "..\chipdbs\chipdb-25k.bin"
IDR_CHIPDB_45K BINARYFILE "..\chipdbs\chipdb-45k.bin"
IDR_CHIPDB_88K BINARYFILE "..\chipdbs\chipdb-85k.bin"

28
ecp5/resource/embed.cc Normal file
View File

@ -0,0 +1,28 @@
#include <cstdio>
#include <windows.h>
#include "nextpnr.h"
#include "resource.h"
NEXTPNR_NAMESPACE_BEGIN
const char *chipdb_blob_25k;
const char *chipdb_blob_45k;
const char *chipdb_blob_85k;
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_25k = LoadFileInResource(IDR_CHIPDB_25K, BINARYFILE, size);
chipdb_blob_45k = LoadFileInResource(IDR_CHIPDB_45K, BINARYFILE, size);
chipdb_blob_85k = LoadFileInResource(IDR_CHIPDB_85K, BINARYFILE, size);
}
NEXTPNR_NAMESPACE_END

4
ecp5/resource/resource.h Normal file
View File

@ -0,0 +1,4 @@
#define BINARYFILE 256
#define IDR_CHIPDB_25K 101
#define IDR_CHIPDB_45K 102
#define IDR_CHIPDB_85K 103