From f3f1c5cd4642126bfa75de6e1019792fa7e12fe1 Mon Sep 17 00:00:00 2001 From: falkTX Date: Sat, 12 Mar 2022 12:30:27 +0000 Subject: [PATCH] Set a custom fallback systemdir per OS Signed-off-by: falkTX --- src/CardinalPlugin.cpp | 16 +++++++++++++--- src/override/common.cpp | 2 +- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/CardinalPlugin.cpp b/src/CardinalPlugin.cpp index d02ed86..deb9b02 100644 --- a/src/CardinalPlugin.cpp +++ b/src/CardinalPlugin.cpp @@ -151,11 +151,21 @@ struct Initializer // If source code dir does not exist use install target prefix as system dir else #endif - if (system::exists(CARDINAL_PLUGIN_PREFIX "/share/cardinal")) { - asset::bundlePath = CARDINAL_PLUGIN_PREFIX "/share/cardinal/PluginManifests"; + #if defined(ARCH_MAC) + asset::systemDir = "/Library/Application Support/Cardinal"; + #elif defined(ARCH_WIN) + if (const char* const commonprogfiles = std::getenv("COMMONPROGRAMFILES")) + asset::systemDir = system::join(commonprogfiles, "Cardinal"); + #else asset::systemDir = CARDINAL_PLUGIN_PREFIX "/share/cardinal"; - templatePath = system::join(asset::systemDir, "template.vcv"); + #endif + + if (! asset::systemDir.empty()) + { + asset::bundlePath = system::join(asset::systemDir, "PluginManifests"); + templatePath = system::join(asset::systemDir, "template.vcv"); + } } } diff --git a/src/override/common.cpp b/src/override/common.cpp index f469d3e..c1c9e70 100644 --- a/src/override/common.cpp +++ b/src/override/common.cpp @@ -53,7 +53,7 @@ const std::string APP_VERSION_MAJOR = "2"; const std::string APP_VERSION = "2.1"; #if defined ARCH_WIN const std::string APP_OS = "win"; -#elif ARCH_MAC +#elif defined ARCH_MAC const std::string APP_OS = "mac"; #elif defined ARCH_LIN const std::string APP_OS = "lin";