1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

Projucer: Add embedded Linux subprocess for WebView support

This commit is contained in:
attila 2023-02-10 19:05:11 +01:00 committed by Attila Szarvas
parent f9ff497978
commit 31f94c2e28
7 changed files with 878 additions and 23 deletions

View file

@ -32,6 +32,37 @@
class ProjectSaver;
class LinuxSubprocessHelperProperties
{
public:
explicit LinuxSubprocessHelperProperties (ProjectExporter& projectExporter);
bool shouldUseLinuxSubprocessHelper() const;
void deployLinuxSubprocessHelperSourceFilesIfNecessary() const;
build_tools::RelativePath getLinuxSubprocessHelperSource() const;
void setCompileDefinitionIfNecessary (StringPairArray& defs) const;
build_tools::RelativePath getSimpleBinaryBuilderSource() const;
build_tools::RelativePath getLinuxSubprocessHelperBinaryDataSource() const;
void addToExtraSearchPathsIfNecessary() const;
static std::optional<String> getParentDirectoryRelativeToBuildTargetFolder (build_tools::RelativePath rp);
static String makeSnakeCase (const String& s);
static String getBinaryNameFromSource (const build_tools::RelativePath& rp);
static constexpr const char* useLinuxSubprocessHelperCompileDefinition = "JUCE_USE_EXTERNAL_TEMPORARY_SUBPROCESS";
private:
ProjectExporter& owner;
};
//==============================================================================
class ProjectExporter : private Value::Listener
{
@ -164,6 +195,8 @@ public:
void updateOldModulePaths();
build_tools::RelativePath rebaseFromProjectFolderToBuildTarget (const build_tools::RelativePath& path) const;
build_tools::RelativePath rebaseFromBuildTargetToProjectFolder (const build_tools::RelativePath& path) const;
File resolveRelativePath (const build_tools::RelativePath&) const;
void addToExtraSearchPaths (const build_tools::RelativePath& pathFromProjectFolder, int index = -1);
void addToModuleLibPaths (const build_tools::RelativePath& pathFromProjectFolder);
@ -219,6 +252,9 @@ public:
StringArray extraSearchPaths;
StringArray moduleLibSearchPaths;
//==============================================================================
const LinuxSubprocessHelperProperties linuxSubprocessHelperProperties { *this };
//==============================================================================
class BuildConfiguration : public ReferenceCountedObject
{