diff --git a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_CLion.h b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_CLion.h index 9dfc51ac36..a5aeab308c 100644 --- a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_CLion.h +++ b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_CLion.h @@ -185,6 +185,11 @@ public: // We'll append to this later. overwriteFileIfDifferentOrThrow (getTargetFolder().getChildFile ("CMakeLists.txt"), out); + + // CMake has stopped adding PkgInfo files to bundles, so we need to do it manually + MemoryOutputStream pkgInfoOut; + pkgInfoOut << "BNDL????"; + overwriteFileIfDifferentOrThrow (getTargetFolder().getChildFile ("PkgInfo"), out); } void writeCMakeListsExporterSection (ProjectExporter* exporter) const @@ -364,8 +369,17 @@ private: for (auto& fileInfo : fileInfoList) out << " " << fileInfo.first.quoted() << newLine; + auto isCMakeBundle = exporter.isXcode() && target->getTargetFileType() == ProjectType::Target::TargetFileType::pluginBundle; + String pkgInfoPath = File (getTargetFolder().getChildFile ("pkgInfo")).getFullPathName().quoted(); + + if (isCMakeBundle) + out << " " << pkgInfoPath << newLine; + out << ")" << newLine << newLine; + if (isCMakeBundle) + out << "set_source_files_properties (" << pkgInfoPath << " PROPERTIES MACOSX_PACKAGE_LOCATION .)" << newLine; + for (auto& fileInfo : fileInfoList) if (! fileInfo.second) out << "set_source_files_properties (" << fileInfo.first.quoted() << " PROPERTIES HEADER_FILE_ONLY TRUE)" << newLine;