/ / C ++ - Ich benötige ein Makro oder eine Umgebungsvariable, um herauszufinden, ob ich Bazel unter Windows ausführt - C ++, Windows, Bazel

C ++ - Ich brauche ein Makro oder eine Umgebungsvariable, um zu erkennen, wenn ich Bazel unter Windows - C ++, Windows, Bazel laufen lasse

Als Workaround muss ich anhängen "../../../../../../"s zu den Dateipfaden, die ich öffnen möchte, die Teil meiner Datenabhängigkeiten sind, wenn ich meine ausführbare Datei mit Bazel unter Windows ausführen. Siehe auch den hier verlinkten Kommentar: C ++ Bazel-Projekt mit einem Datenrepository

Ich hätte gerne so etwas wie das unten, was meine Anwendungstests erheblich vereinfachen würde:

auto basePath = "dataDir/subDir/"s;
if( isRunningFromBazelOnWindows() ) basePath = "../../../../../../"s + basePath;
auto file = std::ifstream{basePath + "dataFile"};
...

wie kann ich codieren? isRunningFromBazelOnWindows()?

Vielen Dank!

Antworten:

0 für die Antwort № 1

Bazel (jetzt vielleicht noch nicht in einem stabilen Bazel veröffentlicht?) Bietet Runfiles-Bibliotheken, die den Zugriff auf Runfiles vereinfachen. Ich denke mal das design doc ist der beste Ort, um zu beginnen.