From 31267a1ae8d670c4b8749fc55b07c01d9285a488 Mon Sep 17 00:00:00 2001 From: William Speirs Date: Thu, 16 Oct 2014 12:06:54 -0400 Subject: Header changes so it will compile on VS --- kernel/driver.cc | 7 +++++-- kernel/yosys.cc | 10 +++++++--- kernel/yosys.h | 29 ++++++++++++++++++++++++++++- 3 files changed, 40 insertions(+), 6 deletions(-) (limited to 'kernel') diff --git a/kernel/driver.cc b/kernel/driver.cc index 8117a61c5..7f2cdb325 100644 --- a/kernel/driver.cc +++ b/kernel/driver.cc @@ -27,11 +27,14 @@ #include #include -#include -#include #include #include +#ifndef _WIN32 +# include +#endif + + USING_YOSYS_NAMESPACE int main(int argc, char **argv) diff --git a/kernel/yosys.cc b/kernel/yosys.cc index 1ce7b5207..9c1cb58f3 100644 --- a/kernel/yosys.cc +++ b/kernel/yosys.cc @@ -33,17 +33,21 @@ #elif defined(__APPLE__) # include #else +# include +# include # include # include #endif -#include #include -#include #include YOSYS_NAMESPACE_BEGIN +#ifdef _WIN32 +const char *yosys_version_str = "Windows"; +#endif + int autoidx = 1; RTLIL::Design *yosys_design = NULL; @@ -325,10 +329,10 @@ void yosys_shutdown() #ifdef YOSYS_ENABLE_PLUGINS for (auto &it : loaded_plugins) dlclose(it.second); -#endif loaded_plugins.clear(); loaded_plugin_aliases.clear(); +#endif } RTLIL::IdString new_id(std::string file, int line, std::string func) diff --git a/kernel/yosys.h b/kernel/yosys.h index 239146d77..e4465edf7 100644 --- a/kernel/yosys.h +++ b/kernel/yosys.h @@ -68,6 +68,30 @@ # include #endif +// a few platform specific things +#ifdef _WIN32 +# define NOMINMAX +# include +# include // takes care of a number of typedefs +# include +# include + +// these are always a bit dangerous :-) +# define strtok_r strtok_s +# define strdup _strdup +# define snprintf _snprintf +# define access _access +# define getcwd _getcwd +# define mkdir _mkdir +# define popen _popen +# define pclose _pclose + +# define PATH_MAX MAX_PATH +# define F_OK 00 +# define X_OK 00 // note this is NOT correct as there is no execute flag in Windows +#endif + + #define PRIVATE_NAMESPACE_BEGIN namespace { #define PRIVATE_NAMESPACE_END } #define YOSYS_NAMESPACE_BEGIN namespace Yosys { @@ -85,6 +109,9 @@ #if !defined(__GNUC__) && !defined(__clang__) # define __attribute__(...) +# define _NORETURN_ __declspec(noreturn) +#else +# define _NORETURN_ #endif YOSYS_NAMESPACE_BEGIN @@ -96,7 +123,7 @@ namespace RTLIL { struct Cell; } -std::string stringf(const char *fmt, ...) __attribute__ ((format (printf, 1, 2))); +std::string stringf(const char *fmt, ...) __attribute__((format(printf, 1, 2))); std::string vstringf(const char *fmt, va_list ap); std::string next_token(std::string &text, const char *sep); bool patmatch(const char *pattern, const char *string); -- cgit v1.2.3