| @@ -80,8 +80,6 @@ public: | |||||
| } | } | ||||
| //============================================================================== | //============================================================================== | ||||
| bool canLaunchProject() override { return false; } | |||||
| bool launchProject() override { return false; } | |||||
| bool usesMMFiles() const override { return false; } | bool usesMMFiles() const override { return false; } | ||||
| bool canCopeWithDuplicateFiles() override { return false; } | bool canCopeWithDuplicateFiles() override { return false; } | ||||
| bool supportsUserDefinedConfigurations() const override { return false; } | bool supportsUserDefinedConfigurations() const override { return false; } | ||||
| @@ -104,6 +102,28 @@ public: | |||||
| void addPlatformSpecificSettingsForProjectType (const ProjectType&) override {} | void addPlatformSpecificSettingsForProjectType (const ProjectType&) override {} | ||||
| void initialiseDependencyPathValues() override {} | void initialiseDependencyPathValues() override {} | ||||
| //============================================================================== | |||||
| bool canLaunchProject() override | |||||
| { | |||||
| #if JUCE_MAC | |||||
| static Identifier exporterName ("XCODE_MAC"); | |||||
| #elif JUCE_WINDOWS | |||||
| static Identifier exporterName ("CODEBLOCKS_WINDOWS"); | |||||
| #else | |||||
| static Identifier exporterName; | |||||
| #endif | |||||
| if (getProject().getExporters().getChildWithName (exporterName).isValid()) | |||||
| return getCLionExecutable().existsAsFile(); | |||||
| return false; | |||||
| } | |||||
| bool launchProject() override | |||||
| { | |||||
| return getCLionExecutable().startAsProcess (getTargetFolder().getFullPathName()); | |||||
| } | |||||
| String getDescription() override | String getDescription() override | ||||
| { | { | ||||
| String description; | String description; | ||||
| @@ -202,6 +222,22 @@ public: | |||||
| } | } | ||||
| private: | private: | ||||
| //============================================================================== | |||||
| static File getCLionExecutable() | |||||
| { | |||||
| #if JUCE_MAC | |||||
| return { "/Applications/CLion.app/Contents/MacOS/clion" }; | |||||
| #elif JUCE_WINDOWS | |||||
| auto regValue = WindowsRegistry::getValue ("HKEY_LOCAL_MACHINE\\SOFTWARE\\Classes\\Applications\\clion64.exe\\shell\\open\\command\\", {}, {}); | |||||
| auto openCmd = StringArray::fromTokens (regValue, true); | |||||
| if (! openCmd.isEmpty()) | |||||
| return { openCmd[0].unquoted() }; | |||||
| #endif | |||||
| return {}; | |||||
| } | |||||
| //============================================================================== | //============================================================================== | ||||
| Identifier getExporterEnabledId (const ProjectExporter& exporter) const | Identifier getExporterEnabledId (const ProjectExporter& exporter) const | ||||
| { | { | ||||