From f99346ba61290ac184ca781023ad131430485f55 Mon Sep 17 00:00:00 2001 From: gmanricks Date: Sat, 20 Apr 2024 14:51:21 +0300 Subject: [PATCH] fix for windows path --- common/kernel/command.cc | 2 +- himbaechel/arch.cc | 9 ++++++++- himbaechel/uarch/gowin/gowin.cc | 12 +++++++++++- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/common/kernel/command.cc b/common/kernel/command.cc index d6d451f5..dc178cd2 100644 --- a/common/kernel/command.cc +++ b/common/kernel/command.cc @@ -197,7 +197,7 @@ void init_share_dirname() npnr_share_dirname = proc_share_path; return; } - proc_share_path = proc_self_path + "..\\share\\"; + proc_share_path = proc_self_path + "..\\share\\" + "nextpnr\\"; if (check_file_exists(proc_share_path, true)) { npnr_share_dirname = proc_share_path; return; diff --git a/himbaechel/arch.cc b/himbaechel/arch.cc index 1270934e..0262548b 100644 --- a/himbaechel/arch.cc +++ b/himbaechel/arch.cc @@ -61,8 +61,15 @@ void Arch::load_chipdb(const std::string &path) if (!args.chipdb_override.empty()) { db_path = args.chipdb_override; } else { + std::string separator; +#if defined(_WIN32) + separator = "\\"; +#else + separator = "/"; +#endif db_path = proc_share_dirname(); - db_path += "/himbaechel/"; + db_path += "himbaechel"; + db_path += separator; db_path += path; } try { diff --git a/himbaechel/uarch/gowin/gowin.cc b/himbaechel/uarch/gowin/gowin.cc index 751f1865..fdac5ed1 100644 --- a/himbaechel/uarch/gowin/gowin.cc +++ b/himbaechel/uarch/gowin/gowin.cc @@ -128,7 +128,17 @@ void GowinImpl::init_database(Arch *arch) } } - arch->load_chipdb(stringf("gowin/chipdb-%s.bin", family.c_str())); + char separator; +#if defined(_WIN32) + separator = '\\'; +#else + separator = '/'; +#endif + arch->load_chipdb(stringf( + "gowin%cchipdb-%s.bin", + separator, + family.c_str() + )); // These fields go in the header of the output JSON file and can help // gowin_pack support different architectures