diff --git a/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_MSVC.h b/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_MSVC.h index 80d539bd2a..26c4ba8e16 100644 --- a/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_MSVC.h +++ b/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_MSVC.h @@ -171,7 +171,7 @@ protected: //============================================================================== String getIntermediatesPath (const BuildConfiguration& config) const { - return ".\\" + File::createLegalFileName (config.getName().trim()); + return prependDot (File::createLegalFileName (config.getName().trim())); } String getConfigTargetPath (const BuildConfiguration& config) const @@ -185,8 +185,8 @@ protected: if (binaryRelPath.isAbsolute()) return binaryRelPath.toWindowsStyle(); - return ".\\" + binaryRelPath.rebased (projectFolder, getTargetFolder(), RelativePath::buildTargetFolder) - .toWindowsStyle(); + return prependDot (binaryRelPath.rebased (projectFolder, getTargetFolder(), RelativePath::buildTargetFolder) + .toWindowsStyle()); } String getPreprocessorDefs (const BuildConfiguration& config, const String& joinString) const @@ -477,6 +477,12 @@ protected: return versionParts.joinIntoString (","); } + static String prependDot (const String& filename) + { + return FileHelpers::isAbsolutePath (filename) ? filename + : (".\\" + filename); + } + JUCE_DECLARE_NON_COPYABLE (MSVCProjectExporterBase); }; @@ -1221,14 +1227,14 @@ protected: { XmlElement* iconGroup = projectXml.createNewChildElement ("ItemGroup"); XmlElement* e = iconGroup->createNewChildElement ("None"); - e->setAttribute ("Include", ".\\" + iconFile.getFileName()); + e->setAttribute ("Include", prependDot (iconFile.getFileName())); } if (hasResourceFile()) { XmlElement* rcGroup = projectXml.createNewChildElement ("ItemGroup"); XmlElement* e = rcGroup->createNewChildElement ("ResourceCompile"); - e->setAttribute ("Include", ".\\" + rcFile.getFileName()); + e->setAttribute ("Include", prependDot (rcFile.getFileName())); } { @@ -1364,7 +1370,7 @@ protected: { XmlElement* iconGroup = filterXml.createNewChildElement ("ItemGroup"); XmlElement* e = iconGroup->createNewChildElement ("None"); - e->setAttribute ("Include", ".\\" + iconFile.getFileName()); + e->setAttribute ("Include", prependDot (iconFile.getFileName())); e->createNewChildElement ("Filter")->addTextElement (ProjectSaver::getJuceCodeGroupName()); } @@ -1372,7 +1378,7 @@ protected: { XmlElement* rcGroup = filterXml.createNewChildElement ("ItemGroup"); XmlElement* e = rcGroup->createNewChildElement ("ResourceCompile"); - e->setAttribute ("Include", ".\\" + rcFile.getFileName()); + e->setAttribute ("Include", prependDot (rcFile.getFileName())); e->createNewChildElement ("Filter")->addTextElement (ProjectSaver::getJuceCodeGroupName()); } } diff --git a/extras/Introjucer/Source/Project Saving/jucer_ProjectExporter.cpp b/extras/Introjucer/Source/Project Saving/jucer_ProjectExporter.cpp index dfc129d120..f398846959 100644 --- a/extras/Introjucer/Source/Project Saving/jucer_ProjectExporter.cpp +++ b/extras/Introjucer/Source/Project Saving/jucer_ProjectExporter.cpp @@ -79,7 +79,7 @@ ProjectExporter* ProjectExporter::createNewExporter (Project& project, const int File target (exp->getTargetFolder()); if (FileHelpers::shouldPathsBeRelative (juceFolder.getFullPathName(), project.getFile().getFullPathName())) - exp->getJuceFolderValue() = juceFolder.getRelativePathFrom (project.getFile().getParentDirectory()); + exp->getJuceFolderValue() = FileHelpers::getRelativePathFrom (juceFolder, project.getFile().getParentDirectory()); else exp->getJuceFolderValue() = juceFolder.getFullPathName(); diff --git a/extras/Introjucer/Source/Project/jucer_Module.cpp b/extras/Introjucer/Source/Project/jucer_Module.cpp index 09003e1346..dbebdcb41c 100644 --- a/extras/Introjucer/Source/Project/jucer_Module.cpp +++ b/extras/Introjucer/Source/Project/jucer_Module.cpp @@ -679,7 +679,7 @@ void LibraryModule::addBrowsableCode (ProjectExporter& exporter, const Array