#include "cli_resources.hpp"
+static bool
+tryPath(const os::String &path, bool verbose)
+{
+ bool exists = path.exists();
+ if (verbose) {
+ std::cerr << "info: " << (exists ? "found" : "did not find") << " " << path.str() << "\n";
+ }
+ return exists;
+}
+
os::String
-findProgram(const char*programFilename)
+findProgram(const char *programFilename, bool verbose)
{
os::String programPath;
programPath = processDir;
programPath.join(programFilename);
- if (programPath.exists()) {
+ if (tryPath(programPath, verbose)) {
return programPath;
}
// Try absolute install directory
programPath = APITRACE_PROGRAMS_INSTALL_DIR;
programPath.join(programFilename);
- if (programPath.exists()) {
+ if (tryPath(programPath, verbose)) {
return programPath;
}
#endif
}
os::String
-findWrapper(const char *wrapperFilename)
+findWrapper(const char *wrapperFilename, bool verbose)
{
os::String wrapperPath;
// Try relative build directory
// XXX: Just make build and install directory layout match
wrapperPath = processDir;
+#if defined(APITRACE_CONFIGURATION_SUBDIR)
+ // Go from `Debug\apitrace.exe` to `wrappers\Debug\foo.dll` on MSVC builds.
+ wrapperPath.join("..");
wrapperPath.join("wrappers");
+ wrapperPath.join(APITRACE_CONFIGURATION_SUBDIR);
+#else
+ wrapperPath.join("wrappers");
+#endif
wrapperPath.join(wrapperFilename);
- if (wrapperPath.exists()) {
+ if (tryPath(wrapperPath, verbose)) {
return wrapperPath;
}
wrapperPath.join("../lib/apitrace/wrappers");
#endif
wrapperPath.join(wrapperFilename);
- if (wrapperPath.exists()) {
+ if (tryPath(wrapperPath, verbose)) {
return wrapperPath;
}
// Try absolute install directory
wrapperPath = APITRACE_WRAPPERS_INSTALL_DIR;
wrapperPath.join(wrapperFilename);
- if (wrapperPath.exists()) {
+ if (tryPath(wrapperPath, verbose)) {
return wrapperPath;
}
#endif
}
os::String
-findScript(const char *scriptFilename)
+findScript(const char *scriptFilename, bool verbose)
{
os::String scriptPath;
// Try relative build directory
// XXX: Just make build and install directory layout match
- scriptPath = processDir;
+#if defined(APITRACE_SOURCE_DIR)
+ scriptPath = APITRACE_SOURCE_DIR;
scriptPath.join("scripts");
scriptPath.join(scriptFilename);
- if (scriptPath.exists()) {
+ if (tryPath(scriptPath, verbose)) {
return scriptPath;
}
+#endif
// Try relative install directory
scriptPath = processDir;
scriptPath.join("../lib/apitrace/scripts");
#endif
scriptPath.join(scriptFilename);
- if (scriptPath.exists()) {
+ if (tryPath(scriptPath, verbose)) {
return scriptPath;
}
// Try absolute install directory
scriptPath = APITRACE_SCRIPTS_INSTALL_DIR;
scriptPath.join(scriptFilename);
- if (scriptPath.exists()) {
+ if (tryPath(scriptPath, verbose)) {
return scriptPath;
}
#endif