#include "AutoGenerated.inc"
#include "llvm/System/Path.h"
#include "llvm/Support/raw_ostream.h"
using namespace llvm;
namespace llvmc {
extern char *ProgramName;
}
static std::string GetDirSeparator() {
#if __linux__ || __APPLE__
return "/";
#else
return "\\";
#endif
}
namespace hooks {
std::string
GetLowerCasePartDefine(void) {
std::string Partname;
if (AutoGeneratedParameter_p.empty()) {
Partname = "16f1xxx";
} else {
Partname = AutoGeneratedParameter_p;
}
std::string LowerCase;
for (unsigned i = 0; i <= Partname.size(); i++) {
LowerCase.push_back(std::tolower(Partname[i]));
}
return "__" + LowerCase;
}
std::string
GetUpperCasePartDefine(void) {
std::string Partname;
if (AutoGeneratedParameter_p.empty()) {
Partname = "16f1xxx";
} else {
Partname = AutoGeneratedParameter_p;
}
std::string UpperCase;
for (unsigned i = 0; i <= Partname.size(); i++) {
UpperCase.push_back(std::toupper(Partname[i]));
}
return "__" + UpperCase;
}
std::string GetBinDir() {
void *P = (void*) (intptr_t) GetBinDir;
sys::Path ProgramFullPath
= sys::Path::GetMainExecutable(llvmc::ProgramName, P);
std::string BinDir = ProgramFullPath.getDirname();
return BinDir + GetDirSeparator();
}
std::string GetInstallDir() {
sys::Path BinDirPath = sys::Path(GetBinDir());
std::string InstallDir = BinDirPath.getDirname();
return InstallDir + GetDirSeparator();
}
std::string GetStdHeadersDir() {
return GetInstallDir() + "include";
}
std::string GetStdAsmHeadersDir() {
return GetInstallDir() + "inc";
}
std::string GetStdLinkerScriptsDir() {
return GetInstallDir() + "lkr";
}
std::string GetStdLibsDir() {
return GetInstallDir() + "lib";
}
}