AronaSlate/Source/AronaCore/AronaCore.Build.cs
2024-01-25 11:21:15 +08:00

130 lines
2.4 KiB
C#

// Copyright Epic Games, Inc. All Rights Reserved.
using System.IO;
using UnrealBuildTool;
public class AronaCore : ModuleRules
{
public AronaCore(ReadOnlyTargetRules Target) : base(Target)
{
PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;
PublicIncludePaths.AddRange(
new string[] {
ModuleDirectory
}
);
PublicDependencyModuleNames.AddRange(
new string[]
{
"Core",
"PortAudio",
"VST",
"Sndfile",
"SignalProcessing",
"UELibSampleRate"
// ... add other public dependencies that you statically link with here ...
}
);
JuceSetup(Target);
}
void JuceSetup(ReadOnlyTargetRules Target)
{
PublicDefinitions.AddRange(new []
{
"DOXYGEN=0",
"JUCE_EXCEPTIONS_DISABLED=0",
});
// setup big le endian
if (Target.Platform == UnrealTargetPlatform.Mac)
{
PublicDefinitions.AddRange(new []
{
"JUCE_BIG_ENDIAN=1",
"JUCE_LITTLE_ENDIAN=0",
});
}
else
{
PublicDefinitions.AddRange(new []
{
"JUCE_BIG_ENDIAN=0",
"JUCE_LITTLE_ENDIAN=1",
});
}
// setup platform
if (Target.Platform == UnrealTargetPlatform.Win64)
{
PublicDefinitions.AddRange(new []
{
"JUCE_MAC=0",
"TARGET_API_MAC_CARBON=0",
"JUCE_IOS=0",
"JUCE_ANDROID=0",
});
}
else if (Target.Platform == UnrealTargetPlatform.Mac)
{
PublicDefinitions.AddRange(new []
{
"JUCE_MAC=1",
"JUCE_IOS=0",
"JUCE_ANDROID=0",
});
}
else if (Target.Platform == UnrealTargetPlatform.IOS)
{
PublicDefinitions.AddRange(new []
{
"JUCE_MAC=0",
"JUCE_IOS=1",
"JUCE_ANDROID=0",
});
}
else if (Target.Platform == UnrealTargetPlatform.Android)
{
PublicDefinitions.AddRange(new []
{
"JUCE_MAC=0",
"JUCE_IOS=0",
"JUCE_ANDROID=1",
});
}
// setup compiler
if (Target.WindowsPlatform.Compiler == WindowsCompiler.VisualStudio2022 ||
Target.WindowsPlatform.Compiler == WindowsCompiler.VisualStudio2019)
{
PublicDefinitions.AddRange(new[]
{
"JUCE_MSVC=1",
"JUCE_CLANG=0",
"JUCE_GCC=0",
});
}
else if (Target.WindowsPlatform.Compiler == WindowsCompiler.Clang || Target.WindowsPlatform.Compiler == WindowsCompiler.ClangRTFM)
{
PublicDefinitions.AddRange(new[]
{
"JUCE_MSVC=0",
"JUCE_CLANG=1",
"JUCE_GCC=0",
});
}
else
{
PublicDefinitions.AddRange(new[]
{
"JUCE_MSVC=0",
"JUCE_CLANG=0",
"JUCE_GCC=0",
});
}
}
}