diff --git a/extras/Projucer/Source/Project Saving/jucer_ProjectExport_XCode.h b/extras/Projucer/Source/Project Saving/jucer_ProjectExport_XCode.h index 4f17d1bda3..a3438d7311 100644 --- a/extras/Projucer/Source/Project Saving/jucer_ProjectExport_XCode.h +++ b/extras/Projucer/Source/Project Saving/jucer_ProjectExport_XCode.h @@ -1206,6 +1206,12 @@ public: StringArray paths (owner.extraSearchPaths); paths.addArray (config.getHeaderSearchPaths()); paths.addArray (getTargetExtraHeaderSearchPaths()); + + // Always needed to compile .r files + paths.add (owner.getModuleFolderRelativeToProject ("juce_audio_plugin_client") + .rebased (owner.projectFolder, owner.getTargetFolder(), RelativePath::buildTargetFolder) + .toUnixStyle()); + paths.add ("$(inherited)"); paths = getCleanedStringArray (paths); diff --git a/extras/Projucer/Source/Project Saving/jucer_ProjectSaver.h b/extras/Projucer/Source/Project Saving/jucer_ProjectSaver.h index efab3a949b..aadfd29ea5 100644 --- a/extras/Projucer/Source/Project Saving/jucer_ProjectSaver.h +++ b/extras/Projucer/Source/Project Saving/jucer_ProjectSaver.h @@ -527,9 +527,19 @@ private: mem << "*/" << newLine << newLine << "#include " << project.getAppConfigFilename().quoted() << newLine - << "#include <" << module.getID() << "/" << cu.file.getFileName() << ">" << newLine; + << "#include <"; - replaceFileIfDifferent (generatedCodeFolder.getChildFile (cu.file.getFileName()), mem); + auto moduleWrapperFilename = cu.file.getFileName(); + + // .r files require a different include scheme, with a different file name + if (cu.file.getFileExtension() == ".r") + moduleWrapperFilename = cu.file.getFileNameWithoutExtension() + "_r.r"; + else + mem << module.getID() << "/"; + + mem << cu.file.getFileName() << ">" << newLine; + + replaceFileIfDifferent (generatedCodeFolder.getChildFile (moduleWrapperFilename), mem); } } } diff --git a/extras/Projucer/Source/Project/jucer_Module.cpp b/extras/Projucer/Source/Project/jucer_Module.cpp index f24ddeb6c0..2c90cea1c3 100644 --- a/extras/Projucer/Source/Project/jucer_Module.cpp +++ b/extras/Projucer/Source/Project/jucer_Module.cpp @@ -506,7 +506,12 @@ void LibraryModule::findAndAddCompiledUnits (ProjectExporter& exporter, if (cu.isNeededForExporter (exporter)) { - File localFile = exporter.getProject().getGeneratedCodeFolder().getChildFile (cu.file.getFileName()); + // .r files require a different include scheme, with a different file name + auto filename = cu.file.getFileName(); + if (cu.file.getFileExtension() == ".r") + filename = cu.file.getFileNameWithoutExtension() + "_r.r"; + + File localFile = exporter.getProject().getGeneratedCodeFolder().getChildFile (filename); result.add (localFile); if (projectSaver != nullptr) diff --git a/extras/Projucer/Source/Utility/jucer_FileHelpers.h b/extras/Projucer/Source/Utility/jucer_FileHelpers.h index 2b4c1c0ec0..060e344322 100644 --- a/extras/Projucer/Source/Utility/jucer_FileHelpers.h +++ b/extras/Projucer/Source/Utility/jucer_FileHelpers.h @@ -53,14 +53,14 @@ namespace FileHelpers } //============================================================================== -const char* const sourceFileExtensions = "cpp;mm;m;c;cc;cxx;swift;s;asm"; +const char* const sourceFileExtensions = "cpp;mm;m;c;cc;cxx;swift;s;asm;r"; const char* const headerFileExtensions = "h;hpp;hxx;hh;inl"; const char* const cOrCppFileExtensions = "cpp;cc;cxx;c"; const char* const cppFileExtensions = "cpp;cc;cxx"; const char* const objCFileExtensions = "mm;m"; const char* const asmFileExtensions = "s;S;asm"; const char* const sourceOrHeaderFileExtensions = "cpp;mm;m;c;cc;cxx;swift;s;S;asm;h;hpp;hxx;hh;inl"; -const char* const browseableFileExtensions = "cpp;mm;m;c;cc;cxx;swift;s;S;asm;r;h;hpp;hxx;hh;inl;txt;md;rtf"; +const char* const browseableFileExtensions = "cpp;mm;m;c;cc;cxx;swift;s;S;asm;h;hpp;hxx;hh;inl;txt;md;rtf"; const char* const fileTypesToCompileByDefault = "cpp;mm;c;m;cc;cxx;swift;s;S;asm;r"; //==============================================================================