1102 lines
40 KiB
C#
1102 lines
40 KiB
C#
using Sharpmake;
|
|
using System.IO;
|
|
|
|
namespace JustDance.Engine
|
|
{
|
|
#region Engine Extern Base Classes
|
|
|
|
[Generate]
|
|
public abstract class EngineExternProject : BaseCppProject
|
|
{
|
|
public override void ConfigureAll(Configuration conf, BaseCppTarget target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
|
|
conf.Options.Remove(Options.Vc.General.TreatWarningsAsErrors.Enable);
|
|
conf.Options.Add(Options.Vc.General.TreatWarningsAsErrors.Disable);
|
|
|
|
conf.If(Platform.orbis | Platform.nx).AdditionalCompilerOptions.Add(" -w");
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
public class EngineExternSolution : BaseCppSolution
|
|
{
|
|
public EngineExternSolution()
|
|
{
|
|
Name = "Extern";
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, BaseCppTarget target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.RegisterProjectsOfType<EngineExternProject>(target);
|
|
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Script
|
|
|
|
[Generate]
|
|
internal class LuaLib : EngineExternProject
|
|
{
|
|
public LuaLib()
|
|
{
|
|
RootPath = ExternPath + "lua";
|
|
SourceRootPath = RootPath + "/src";
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, BaseCppTarget target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.SolutionFolder = "Extern/Script";
|
|
|
|
conf.SourceFilesBuildExclude.Add("luac.c");
|
|
conf.SourceFilesBuildExclude.Add("lua.c");
|
|
conf.SourceFilesBuildExclude.Add("print.c");
|
|
|
|
conf.IfNot(Platform.win32 | Platform.win64).SourceFilesBuildExclude.Add("loadlib.c");
|
|
|
|
//exclude these files because they are not used and prevent unit tests from compiling
|
|
conf.If(Platform.orbis).SourceFilesBuildExclude.Add("linit.c");
|
|
conf.If(Platform.orbis).SourceFilesBuildExclude.Add("liolib.c");
|
|
conf.If(Platform.orbis).SourceFilesBuildExclude.Add("loslib.c");
|
|
|
|
//We don't want any warnings for this project
|
|
conf.Options.Remove(Options.Vc.General.WarningLevel.Level3);
|
|
conf.Options.Add(Options.Vc.General.WarningLevel.Level0);
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
internal class LuaInterpreter : EngineExternProject
|
|
{
|
|
public LuaInterpreter()
|
|
{
|
|
RootPath = ExternPath + "lua";
|
|
SourceRootPath = RootPath + "/src";
|
|
SourceFilesFiltersRegex.Add("lua.c");
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, BaseCppTarget target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.SolutionFolder = "Extern/Script";
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Serialization
|
|
|
|
[Generate]
|
|
internal class PugiXml : EngineExternProject
|
|
{
|
|
public PugiXml()
|
|
{
|
|
RootPath = ExternPath + "pugixml";
|
|
SourceRootPath = RootPath + "/src";
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, BaseCppTarget target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.SolutionFolder = "Extern/Serialization";
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
internal class TinyXml : EngineExternProject
|
|
{
|
|
public TinyXml()
|
|
{
|
|
RootPath = ExternPath + "tinyxml";
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, BaseCppTarget target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.SolutionFolder = "Extern/Serialization";
|
|
|
|
conf.IncludePaths.Add(SourcePath);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Compression
|
|
|
|
[Generate]
|
|
internal class ZLib : EngineExternProject
|
|
{
|
|
public ZLib()
|
|
{
|
|
RootPath = ExternPath + "ZLib";
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, BaseCppTarget target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.SolutionFolder = "Extern/Compression";
|
|
|
|
conf.SourceFilesBuildExclude.Add("example.c", "minigzip.c");
|
|
|
|
//We don't want any warnings for this project
|
|
conf.Options.Remove(Options.Vc.General.WarningLevel.Level3);
|
|
conf.Options.Add(Options.Vc.General.WarningLevel.Level0);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Image
|
|
|
|
[Generate]
|
|
internal class CaptureJpeg : EngineExternProject
|
|
{
|
|
public CaptureJpeg()
|
|
{
|
|
RootPath = ExternPath + "CaptureJpeg";
|
|
SourceRootPath = RootPath + "/Source";
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, BaseCppTarget target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.SolutionFolder = "Extern/Image";
|
|
|
|
if (conf.Platform.IsIn(Platform.durango | Platform.orbis))
|
|
{
|
|
conf.Defines.Add("NO_GETENV");
|
|
}
|
|
|
|
//We don't want any warnings for this project
|
|
conf.Options.Remove(Options.Vc.General.WarningLevel.Level3);
|
|
conf.Options.Add(Options.Vc.General.WarningLevel.Level0);
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
internal class LibPng : EngineExternProject
|
|
{
|
|
public LibPng()
|
|
{
|
|
RootPath = ExternPath + "libpng";
|
|
SourceRootPath = RootPath + "/custom";
|
|
SourceFilesExcludeRegex.Add(@"contrib\\", @"projects\\", @"scripts\\");
|
|
SourceFilesExclude.Add("example.c", "pngtest.c");
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, BaseCppTarget target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.SolutionFolder = "Extern/Image";
|
|
conf.AddPrivateDependency<ZLib>(target);
|
|
//We need to have this include on first position because of conflict with Zlib from SDK, on these platforms:
|
|
conf.If(Platform.nx).IncludePrivatePaths.Add(ExternPath + "/ZLib");
|
|
|
|
//We don't want any warnings for this project
|
|
conf.Options.Remove(Options.Vc.General.WarningLevel.Level3);
|
|
conf.Options.Add(Options.Vc.General.WarningLevel.Level0);
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
internal class LibTiff : EngineExternProject
|
|
{
|
|
public LibTiff()
|
|
{
|
|
RootPath = ExternPath + "/FreeImage/Source/LibTiff";
|
|
SourceFilesExclude.Add( "tif_acorn.c",
|
|
"tif_apple.c",
|
|
"tif_atari.c",
|
|
"tif_unix.c",
|
|
"tif_vms.c",
|
|
"tif_wince.c",
|
|
"tif_msdos.c",
|
|
"tif_win3.c",
|
|
"tif_win32.c",
|
|
"mkg3states.c",
|
|
"mkspans.c");
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, BaseCppTarget target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.SolutionFolder = "Extern/Image";
|
|
|
|
//We don't want any warnings for this project
|
|
conf.Options.Remove(Options.Vc.General.WarningLevel.Level3);
|
|
conf.Options.Add(Options.Vc.General.WarningLevel.Level0);
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
internal class LibJpeg : EngineExternProject
|
|
{
|
|
public LibJpeg()
|
|
{
|
|
RootPath = ExternPath + "/FreeImage/Source/LibJPEG";
|
|
SourceFilesFiltersRegex.Add( "jaricom.c", "jcapimin.c", "jcapistd.c", "jcarith.c", "jccoefct.c", "jccolor.c", "jcdctmgr.c",
|
|
"jchuff.c", "jcinit.c", "jcmainct.c", "jcmarker.c", "jcmaster.c", "jcomapi.c", "jcparam.c",
|
|
"jcprepct.c", "jcsample.c", "jctrans.c", "jdapimin.c", "jdapistd.c", "jdarith.c", "jdatadst.c",
|
|
"jdatasrc.c", "jdcoefct.c", "jdcolor.c", "jddctmgr.c", "jdhuff.c", "jdinput.c", "jdmainct.c",
|
|
"jdmarker.c", "jdmaster.c", "jdmerge.c", "jdpostct.c", "jdsample.c", "jdtrans.c", "jerror.c",
|
|
"jfdctflt.c", "jfdctfst.c", "jfdctint.c", "jidctflt.c", "jidctfst.c", "jidctint.c", "jmemmgr.c",
|
|
"jmemnobs.c", "jquant1.c", "jquant2.c", "jutils.c", "transupp.c");
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, BaseCppTarget target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.SolutionFolder = "Extern/Image";
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
internal class LibMng : EngineExternProject
|
|
{
|
|
public LibMng()
|
|
{
|
|
RootPath = ExternPath + "/FreeImage/Source/LibMNG";
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, BaseCppTarget target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.SolutionFolder = "Extern/Image";
|
|
conf.Defines.Add("MNG_BUILD_SO");
|
|
conf.AddPrivateDependency<ZLib>(target);
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
internal class OpenJpeg : EngineExternProject
|
|
{
|
|
public OpenJpeg()
|
|
{
|
|
RootPath = ExternPath + "/FreeImage/Source/LibOpenJPEG";
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, BaseCppTarget target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.SolutionFolder = "Extern/Image";
|
|
conf.Defines.Add("OPJ_STATIC");
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
internal class RawLite : EngineExternProject
|
|
{
|
|
public RawLite()
|
|
{
|
|
RootPath = ExternPath + "/FreeImage/Source/LibRawLite";
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, BaseCppTarget target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.SolutionFolder = "Extern/Image";
|
|
conf.Defines.Add("LIBRAW_NODLL", "LIBRAW_LIBRARY_BUILD", "NO_LCMS");
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
internal class OpenExr : EngineExternProject
|
|
{
|
|
public OpenExr()
|
|
{
|
|
RootPath = ExternPath + "/FreeImage/Source/OpenEXR";
|
|
SourceFilesExcludeRegex.Add(@"\\Half\\eLut.cpp",
|
|
@"\\Half\\toFloat.cpp",
|
|
@"\\IlmThread\\IlmThreadMutexPosix.cpp",
|
|
@"\\IlmThread\\IlmThreadMutexWin32.cpp",
|
|
@"\\IlmThread\\IlmThreadSemaphorePosix.cpp",
|
|
@"\\IlmThread\\IlmThreadSemaphoreWin32.cpp",
|
|
@"\\IlmThread\\IlmThreadPosix.cpp",
|
|
@"\\IlmThread\\IlmThreadSemaphorePosixCompat.cpp",
|
|
@"\\IlmThread\\IlmThreadWin32.cpp",
|
|
@"\\IlmThread\\IlmThreadWin32.cpp",
|
|
@"\\IlmImf\\b44ExpLogTable.cpp",
|
|
@"\\Imath\\ImathShear.cpp",
|
|
@"\\Imath\\ImathBox.cpp");
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, BaseCppTarget target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.SolutionFolder = "Extern/Image";
|
|
conf.AddPrivateDependency<ZLib>(target);
|
|
conf.IncludePaths.Add( RootPath + "/IlmImf", RootPath + "/Iex", RootPath + "/Half", RootPath + "/Imath", RootPath + "/IlmThread");
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
internal class FreeImage : EngineExternProject
|
|
{
|
|
public FreeImage()
|
|
{
|
|
RootPath = ExternPath + "freeimage";
|
|
SourceRootPath = RootPath + "/Source";
|
|
|
|
SourceFilesExcludeRegex.Add("FreeImageLib", "LibJPEG", "LibMNG", "LibOpenJPEG", "LibPNG", "LibRawLite", "LibTIFF", "OpenEXR", "ZLib");
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, BaseCppTarget target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.SolutionFolder = "Extern/Image";
|
|
|
|
conf.AddPrivateDependency<ZLib>(target);
|
|
conf.AddPrivateDependency<LibTiff>(target);
|
|
conf.AddPrivateDependency<LibJpeg>(target);
|
|
conf.AddPrivateDependency<LibMng>(target);
|
|
|
|
if (conf.Platform.IsIn(Platform.win32 | Platform.win64 | Platform.durango | Platform.orbis))
|
|
{
|
|
conf.SourceFilesBuildExcludeRegex.Add(
|
|
@"FreeImage\\J2KHelper.cpp",
|
|
@"FreeImage\\PluginRAW.cpp",
|
|
@"FreeImage\\PluginEXR.cpp",
|
|
@"FreeImage\\PluginJ2K.cpp",
|
|
@"FreeImage\\PluginJP2.cpp",
|
|
@"FreeImage\\PluginHDR.cpp",
|
|
@"FreeImage\\PluginKOALA.cpp",
|
|
@"FreeImage\\PluginWBMP.cpp",
|
|
@"FreeImage\\PluginXBM.cpp",
|
|
@"FreeImage\\PluginRAS.cpp",
|
|
@"FreeImage\\PluginPNG.cpp",
|
|
@"FreeImage\\PluginPNM.cpp",
|
|
@"FreeImage\\PluginPSD.cpp",
|
|
@"FreeImage\\PluginSGI.cpp",
|
|
@"FreeImage\\tmoFattal02.cpp",
|
|
@"FreeImage\\PluginXPM.cpp",
|
|
@"FreeImage\\PSDParser.cpp");
|
|
}
|
|
conf.IncludePrivatePaths.Add(
|
|
SourceRootPath + "/DeprecationManager",
|
|
SourceRootPath + "/OpenEXR",
|
|
SourceRootPath + "/ZLib",
|
|
SourceRootPath + "/OpenEXR/IlmImf",
|
|
SourceRootPath + "/OpenEXR/Iex",
|
|
SourceRootPath + "/OpenEXR/Half",
|
|
SourceRootPath + "/OpenEXR/Imath",
|
|
SourceRootPath + "/OpenEXR/IlmThread"
|
|
);
|
|
|
|
conf.Defines.Add("OPJ_STATIC", "FREEIMAGE_LIB", "ITF_FREEIMAGE");
|
|
if (!conf.Platform.IsWindows())
|
|
{
|
|
conf.Defines.Add("NO_GETENV");
|
|
}
|
|
|
|
//We don't want any warnings for this project
|
|
conf.Options.Remove(Options.Vc.General.WarningLevel.Level3);
|
|
conf.Options.Add(Options.Vc.General.WarningLevel.Level0);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Audio
|
|
|
|
[Generate]
|
|
internal class LibOgg : EngineExternProject
|
|
{
|
|
public LibOgg()
|
|
{
|
|
RootPath = ExternPath + "libogg";
|
|
SourceRootPath = RootPath + "/custom";
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, BaseCppTarget target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.SolutionFolder = "Extern/Audio";
|
|
conf.IncludePaths.Add(SourceRootPath + "/include");
|
|
|
|
//We don't want any warnings for this project
|
|
conf.Options.Remove(Options.Vc.General.WarningLevel.Level3);
|
|
conf.Options.Add(Options.Vc.General.WarningLevel.Level0);
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
internal class LibVorbis : EngineExternProject
|
|
{
|
|
public LibVorbis()
|
|
{
|
|
RootPath = ExternPath + "libvorbis";
|
|
SourceRootPath = RootPath + "/custom";
|
|
SourceFilesFiltersRegex.Add(@"custom\\lib");
|
|
SourceFilesFiltersRegex.Add(@"custom\\include");
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, BaseCppTarget target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.SolutionFolder = "Extern/Audio";
|
|
conf.IncludePaths.Add(SourceRootPath + "/include", SourceRootPath + "/lib");
|
|
conf.AddPrivateDependency<LibOgg>(target);
|
|
|
|
conf.SourceFilesBuildExcludeRegex.Add("tone.c", "psytune.c", "vorbisfile.c", "barkmel.c", "sharebook.c");
|
|
|
|
//We don't want any warnings for this project
|
|
conf.Options.Remove(Options.Vc.General.WarningLevel.Level3);
|
|
conf.Options.Add(Options.Vc.General.WarningLevel.Level0);
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
internal class Raki : EngineExternProject
|
|
{
|
|
public Raki()
|
|
{
|
|
RootPath = ExternPath + @"Raki";
|
|
SourceRootPath = ExternPath + @"Raki/Source/RakiEngine";
|
|
//PrecompileHeader = "Precompiled";
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, BaseCppTarget target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.SolutionFolder = "Extern/Audio";
|
|
|
|
if (target.IsPcStandalone())
|
|
{
|
|
conf.IncludePaths.Clear();
|
|
conf.IncludePaths.Add(@"$(DXSDK_DIR)\Include", @"$(DXSDK_DIR)\Extras\DirectShow\Include", @"$(WindowsSdkDir)\common\include", ExternPath + "UplaySDK/include");
|
|
}
|
|
|
|
conf.IncludePaths.Add(ExternPath + @"Raki/Source");
|
|
|
|
if (conf.Platform.IsIn(Platform.orbis | Platform.nx))
|
|
{
|
|
conf.SourceFilesBuildExclude.Add("Engine/_XAudio2/EngineNative_XAudio2.cpp",
|
|
"Routing/_XAudio2/AuxManagerNative_XAudio2.cpp",
|
|
"Routing/_XAudio2/AuxNative_XAudio2.cpp",
|
|
"Routing/_XAudio2/ReverbNative_XAudio2.cpp",
|
|
"Sounds/_XAudio2/BufferSoundNative.cpp",
|
|
"Sounds/_XAudio2/PCMStreamSoundNative.cpp",
|
|
"Sounds/_XAudio2/SoundNative_XAudio2.cpp",
|
|
"Sounds/_XAudio2/StreamSoundNative.cpp");
|
|
}
|
|
conf.If(Optimization.Debug).Defines.Add("RAKI_TARGET_DEBUG");
|
|
conf.If(Optimization.Release).Defines.Add("RAKI_TARGET_RELEASE");
|
|
conf.If(Optimization.Retail).Defines.Add("RAKI_TARGET_FINAL");
|
|
|
|
conf.SourceFilesBuildExcludeRegex.Add("_XB360");
|
|
conf.SourceFilesBuildExcludeRegex.Add("_wii");
|
|
|
|
if (conf.Platform.IsWindows())
|
|
conf.Defines.Add("RAKI_PLATFORM_WIN32");
|
|
if (conf.Platform == Platform.orbis)
|
|
conf.Defines.Add("RAKI_PLATFORM_ORBIS");
|
|
if (conf.Platform == Platform.durango)
|
|
conf.Defines.Add("RAKI_PLATFORM_DURANGO");
|
|
if (conf.Platform == Platform.nx)
|
|
conf.Defines.Add("RAKI_PLATFORM_NX");
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
internal class GoTop : EngineExternProject
|
|
{
|
|
public GoTop()
|
|
{
|
|
RootPath = ExternPath + @"GoTop";
|
|
SourceRootPath = ExternPath + @"GoTop/sources/";
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, BaseCppTarget target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.SolutionFolder = "Extern/Security";
|
|
|
|
conf.IncludePaths.Add(ExternPath + @"GoTop/sources/");
|
|
conf.IfNot(Platform.win32 | Platform.win64).SourceFilesBuildExcludeRegex.Add(".cpp");
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
internal class Soundwich : EngineExternProject
|
|
{
|
|
public Soundwich()
|
|
{
|
|
RootPath = ExternPath + @"Soundwich/Solution/Engine/Src";
|
|
SourceRootPath = ExternPath + @"Soundwich/Solution/Engine/Src";
|
|
AdditionalSourceRootPaths.Add( ExternPath + @"Soundwich/Solution/Engine/Inc" );
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, BaseCppTarget target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.SolutionFolder = "Extern/Audio";
|
|
|
|
conf.IncludePaths.Add(ExternPath + @"Soundwich/Solution/Engine/Src");
|
|
conf.IncludePaths.Add(ExternPath + @"Soundwich/Solution/Engine");
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Video
|
|
|
|
[Generate]
|
|
internal class LibVpx : EngineExternProject
|
|
{
|
|
public LibVpx()
|
|
{
|
|
RootPath = ExternPath + "libvpx";
|
|
SourceRootPath = RootPath + "/custom";
|
|
SourceFilesFiltersRegex.Add(@"build\\generic-gnu", @"\\vpx\\", @"\\vp8\\", @"\\vpx_mem\\", @"\\vpx_ports\\", @"\\vpx_scale\\");
|
|
SourceFilesExcludeRegex.Add( @"\\vp8\\common\\mips",
|
|
@"\\vp8\\common\\wii",
|
|
@"\\vp8\\decoder\\arm",
|
|
@"\\vp8\\decoder\\ps3\\SPU",
|
|
@"\\vp8\\encoder\\arm\\",
|
|
@"\\vp8\\encoder\\ssim.c",
|
|
@"\\vpx_ports\\arm",
|
|
@"\\vpx_scale\\arm\\",
|
|
@"\\vpx_scale\\win32\\",
|
|
@"\\vpx_scale\\generic\\bicubic_scaler.c",
|
|
@"\\ppc\\"
|
|
);
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, BaseCppTarget target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.SolutionFolder = "Extern/Video";
|
|
conf.IncludePaths.Add(SourceRootPath + "/build/generic-gnu");
|
|
if (!conf.Platform.IsWindows() || conf.Platform == Platform.win64)
|
|
{
|
|
conf.SourceFilesBuildExcludeRegex.Add("x86");
|
|
conf.SourceFilesBuildExcludeRegex.Add(@"\.asm$");
|
|
}
|
|
if (conf.Platform != Platform.nx)
|
|
{
|
|
conf.SourceFilesBuildExcludeRegex.Add(@"\\vp8\\common\\arm");
|
|
}
|
|
|
|
conf.If(Platform.win32).Defines.Add("ARCH_X86");
|
|
conf.If(Platform.orbis).Defines.Add("ORBIS");
|
|
conf.If(Platform.durango).Defines.Add("DURANGO");
|
|
// conf.If(Scarlett.SharpmakePlatform).Defines.Add("SCARLETT");
|
|
|
|
if (conf.Platform.IsIn(Platform.orbis | Platform.win64 | Platform.durango))
|
|
{
|
|
conf.SourceFilesBuildExclude.Add(SourceRootPath + "/vpx_ports/x86_cpuid.c");
|
|
}
|
|
if (conf.Platform.IsIn(Platform.durango))
|
|
{
|
|
conf.SourceFilesBuildExcludeRegex.Remove(string.Format(@"\\{0}\\", "WIN32")); // in VPX, the files in the directory "win32" are actually good for all MS platforms
|
|
}
|
|
|
|
//We don't want any warnings for this project
|
|
conf.Options.Remove(Options.Vc.General.WarningLevel.Level3);
|
|
conf.Options.Add(Options.Vc.General.WarningLevel.Level0);
|
|
|
|
if(conf.Platform.IsIn(Platform.orbis | Platform.nx))
|
|
{
|
|
conf.AdditionalCompilerOptions.Add("-Wno-unused-function");
|
|
}
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
internal class LibWebm : EngineExternProject
|
|
{
|
|
public LibWebm()
|
|
{
|
|
RootPath = ExternPath + "libwebm";
|
|
SourceRootPath = RootPath + "/custom";
|
|
SourceFilesExcludeRegex.Add(@"\\sample");
|
|
SourceFilesExcludeRegex.Add(@".cc");
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, BaseCppTarget target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.SolutionFolder = "Extern/Video";
|
|
conf.IncludePaths.Add(ExternPath + "/Profiler");
|
|
|
|
//We don't want any warnings for this project
|
|
conf.Options.Remove(Options.Vc.General.WarningLevel.Level3);
|
|
conf.Options.Add(Options.Vc.General.WarningLevel.Level0);
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
internal class Pleo : EngineExternProject
|
|
{
|
|
public Pleo()
|
|
{
|
|
RootPath = ExternPath + @"Pleo";
|
|
SourceRootPath = ExternPath + "Pleo/Pleo/src";
|
|
PrecompileHeader = "VP_PrecompiledHeader";
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, BaseCppTarget target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.SolutionFolder = "Extern/Video";
|
|
|
|
conf.AddExternDependency<LibVpx>(target);
|
|
conf.AddExternDependency<LibWebm>(target);
|
|
conf.AddExternDependency<LibVorbis>(target);
|
|
conf.AddExternDependency<LibOgg>(target);
|
|
|
|
conf.IncludePaths.Add(ExternPath + "Pleo/Pleo/src",
|
|
ExternPath + "Pleo/Pleo/src/public",
|
|
ExternPath + "Pleo/Pleo/src/private");
|
|
|
|
if (conf.Platform == Platform.orbis)
|
|
{
|
|
conf.Defines.Add("ORBIS");
|
|
conf.IfNot(Optimization.Retail).Defines.Add("PLEO_PROFILER_ON");
|
|
}
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
internal class PleoExt : EngineExternProject
|
|
{
|
|
public PleoExt()
|
|
{
|
|
RootPath = ExternPath + @"Pleo";
|
|
SourceRootPath = ExternPath + "Pleo/PleoEXT/src";
|
|
SourceFilesBuildExcludeRegex.Add("linux");
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, BaseCppTarget target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
|
|
if (!conf.Platform.IsWindows())
|
|
{
|
|
conf.SourceFilesBuildExcludeRegex.Add(".cpp");
|
|
}
|
|
|
|
conf.SolutionFolder = "Extern/Video";
|
|
|
|
conf.AddExternDependency<Pleo>(target);
|
|
conf.AddExternDependency<PugiXml>(target);
|
|
conf.AddExternDependency<LibWebm>(target);
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
internal class PleoNet : EngineExternProject
|
|
{
|
|
public static string DllPath = OutputPath + @"lib\PleoNet.dll";
|
|
|
|
public PleoNet()
|
|
{
|
|
OutputType = Configuration.OutputType.DotNetClassLibrary;
|
|
RootPath = ExternPath + @"Pleo";
|
|
SourceRootPath = ExternPath + "Pleo/Pleo.NET";
|
|
SourceFilesBuildExcludeRegex.Add("linux");
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, BaseCppTarget target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
|
|
if (!conf.Platform.IsWindows())
|
|
{
|
|
conf.SourceFilesBuildExcludeRegex.Add(".cpp");
|
|
}
|
|
|
|
conf.SolutionFolder = "Extern/Video";
|
|
|
|
conf.TargetPath = OutputPath + @"\lib\";
|
|
conf.TargetFileName = "PleoNet" + (target.Platform == Platform.win32 ? "32" : "");
|
|
|
|
conf.AdditionalLinkerOptions.Add("/ignore:4248");
|
|
}
|
|
|
|
protected override void ConfigureLinkerOptions(Configuration conf, BaseCppTarget target)
|
|
{
|
|
base.ConfigureLinkerOptions(conf, target);
|
|
conf.LibraryFiles.Add("winmm.lib");
|
|
conf.ReferencesByName.Add("System", "System.Core", "System.Data", "System.Drawing", "System.Windows.Forms", "WindowsBase");
|
|
conf.Options.Add(Options.Vc.Linker.GenerateMapFile.Disable);
|
|
conf.AdditionalLinkerOptions.Remove("/WX");
|
|
conf.AddExternDependency<Pleo>(target);
|
|
conf.AddExternDependency<PleoExt>(target);
|
|
conf.AddExternDependency<PugiXml>(target);
|
|
conf.AddExternDependency<LibWebm>(target);
|
|
}
|
|
|
|
protected override void ConfigureCompilerOptions(Configuration conf, BaseCppTarget target)
|
|
{
|
|
conf.Options.Add(Options.Vc.General.CommonLanguageRuntimeSupport.ClrSupport);
|
|
conf.Options.Add(Options.Vc.General.CharacterSet.Unicode);
|
|
conf.Options.Add(Options.Vc.Compiler.RTTI.Disable);
|
|
conf.Options.Add(Options.Vc.Compiler.Exceptions.EnableWithSEH);
|
|
conf.Options.Add(Options.Vc.Compiler.RuntimeChecks.Default);
|
|
conf.Options.Add(Options.Vc.Compiler.FloatingPointModel.Precise);
|
|
conf.Options.Add(Options.Vc.Compiler.MinimalRebuild.Disable);
|
|
conf.Options.Add(Options.Vc.General.WarningLevel.Level3);
|
|
conf.Options.Add(Options.Vc.General.TreatWarningsAsErrors.Disable);
|
|
conf.Options.Add(Options.Vc.General.WholeProgramOptimization.Disable);
|
|
|
|
if (target.Optimization == Optimization.Debug)
|
|
conf.Options.Add(Options.Vc.Compiler.Optimization.Disable);
|
|
else if (target.Optimization == Optimization.Release)
|
|
conf.Options.Add(Options.Vc.Compiler.Optimization.MaximizeSpeed);
|
|
conf.Options.Add(Options.Vc.Compiler.Inline.Default);
|
|
conf.Options.Add(Options.Vc.Compiler.Intrinsic.Disable);
|
|
conf.Options.Add(Options.Vc.Compiler.FavorSizeOrSpeed.Neither);
|
|
conf.Options.Add(Options.Vc.Compiler.OmitFramePointers.Disable);
|
|
conf.Options.Add(Options.Vc.Compiler.FiberSafe.Disable);
|
|
|
|
conf.If(Optimization.Debug).Options.Add(Options.Vc.Compiler.RuntimeLibrary.MultiThreadedDebugDLL);
|
|
conf.IfNot(Optimization.Debug).Options.Add(Options.Vc.Compiler.RuntimeLibrary.MultiThreadedDLL);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Network
|
|
|
|
[Generate]
|
|
internal class Mongoose : EngineExternProject
|
|
{
|
|
public Mongoose()
|
|
{
|
|
RootPath = ExternPath + "mongoose";
|
|
SourceRootPath = RootPath + "/custom";
|
|
SourceFilesExcludeRegex.Add(@"examples", @"test");
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, BaseCppTarget target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.SolutionFolder = "Extern/Network";
|
|
conf.IncludePaths.Add(SourceRootPath);
|
|
|
|
if (conf.Platform == Platform.nx)
|
|
{
|
|
// not Using ubiservices openssl anymore, starting from NX SDK 11.2.0
|
|
}
|
|
else if (conf.Platform == Platform.durango)
|
|
{
|
|
conf.IncludePaths.Add(ExternPath + @"/openssl_x1/custom/include");
|
|
}
|
|
else if (conf.Platform == Platform.orbis)
|
|
{
|
|
conf.IncludePaths.Add(ExternPath + @"UbiServices/custom/external/harbourcommon/libraries/openssl_deprecated/include");
|
|
}
|
|
else
|
|
{
|
|
conf.IncludePaths.Add(ExternPath + @"/UbiServices/custom/external/harbourcommon/libraries/openssl/include");
|
|
}
|
|
|
|
conf.Defines.Add("MONGOOSE_NO_FILESYSTEM",
|
|
"MONGOOSE_NO_USER",
|
|
"MONGOOSE_NO_THREADS",
|
|
"MONGOOSE_NO_CGI",
|
|
"MONGOOSE_NO_MMAP",
|
|
"NS_DISABLE_THREADS",
|
|
"NS_ENABLE_SSL");
|
|
|
|
//We don't want any warnings for this project
|
|
conf.Options.Remove(Options.Vc.General.WarningLevel.Level3);
|
|
conf.Options.Add(Options.Vc.General.WarningLevel.Level0);
|
|
|
|
if (target.Platform == Platform.durango || target.Platform == Platform.win32 || target.Platform == Platform.win64)
|
|
{
|
|
conf.AdditionalCompilerOptions.Add("/TC"); // compile as C for MSVC
|
|
}
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Database
|
|
|
|
[Generate]
|
|
internal class Sqlite : EngineExternProject
|
|
{
|
|
public Sqlite()
|
|
{
|
|
RootPath = ExternPath + "sqlite";
|
|
SourceRootPath = RootPath + "/src";
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, BaseCppTarget target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.SolutionFolder = "Extern/Database";
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Misc
|
|
|
|
[Generate]
|
|
internal class Bloomberg : EngineExternProject
|
|
{
|
|
public Bloomberg()
|
|
{
|
|
RootPath = ExternPath + "bloomberg";
|
|
SourceRootPath = RootPath + "/src";
|
|
SourceFilesExcludeRegex.Add(@"\\blob\\");
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, BaseCppTarget target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
|
|
if (target.Platform == Platform.orbis)
|
|
{
|
|
// Bloomberg needs these optimizations disabled irrespective of the config.
|
|
conf.AdditionalCompilerOptions.Add("-fno-omit-frame-pointer",
|
|
"-mno-omit-leaf-frame-pointer");
|
|
}
|
|
else if (target.Platform == Platform.durango)
|
|
{
|
|
conf.Options.Add(Options.Vc.Compiler.CompileAsWinRT.Enable);
|
|
conf.Options.Add(Options.Vc.Linker.UseLibraryDependencyInputs.Enable);
|
|
conf.ConsumeWinRTExtensions.Add("Live");
|
|
}
|
|
|
|
conf.SolutionFolder = "Extern/Misc";
|
|
|
|
conf.IncludePaths.Add(RootPath + "/inc");
|
|
if (!conf.Platform.IsWindows())
|
|
{
|
|
conf.SourceFilesBuildExcludeRegex.Add(@"\\symbol\\ms\\");
|
|
}
|
|
if (!conf.Platform.IsMicrosoft())
|
|
{
|
|
conf.SourceFilesBuildExcludeRegex.Add(@"\\ms\\");
|
|
}
|
|
if (conf.Platform.IsWindows())
|
|
{
|
|
conf.Defines.Add("WIN32_LEAN_AND_MEAN");
|
|
}
|
|
if (conf.Platform.IsIn(Platform.durango | Platform.orbis))
|
|
{
|
|
conf.Defines.Add("NO_GETENV");
|
|
}
|
|
|
|
string vsVersion = target.DevEnv == DevEnv.vs2012 ? "vs11" : "vs14";
|
|
|
|
if (conf.Platform.IsIn(Platform.orbis))
|
|
{
|
|
conf.LibraryPaths.Add(ExternPath + "gear4/libs/gear_core/orbis");
|
|
conf.LibraryPaths.Add(ExternPath + "gear4/libs/simpleEAL/orbis");
|
|
|
|
conf.If(Optimization.Debug).LibraryFiles.Add( "liborbis_" + vsVersion + "_gear_core_d.a", "liborbis_" + vsVersion + "_simpleEAL_d.a");
|
|
conf.If(Optimization.Release).LibraryFiles.Add("liborbis_" + vsVersion + "_gear_core_r.a", "liborbis_" + vsVersion + "_simpleEAL_r.a");
|
|
conf.If(Optimization.Retail).LibraryFiles.Add( "liborbis_" + vsVersion + "_gear_core_f.a", "liborbis_" + vsVersion + "_simpleEAL_f.a");
|
|
|
|
}
|
|
else if (conf.Platform.IsIn(Platform.durango))
|
|
{
|
|
conf.LibraryPaths.Add(ExternPath + "gear4/libs/gear_core/durango");
|
|
conf.LibraryPaths.Add(ExternPath + "gear4/libs/simpleEAL/durango");
|
|
|
|
conf.If(Optimization.Debug).LibraryFiles.Add( "durango_" + vsVersion + "_gear_core_d.lib", "durango_" + vsVersion + "_SimpleEAL_d.lib");
|
|
conf.If(Optimization.Release).LibraryFiles.Add("durango_" + vsVersion + "_gear_core_r.lib", "durango_" + vsVersion + "_SimpleEAL_r.lib");
|
|
conf.If(Optimization.Retail).LibraryFiles.Add( "durango_" + vsVersion + "_gear_core_f.lib", "durango_" + vsVersion + "_SimpleEAL_f.lib");
|
|
}
|
|
else if (conf.Platform.IsIn(Platform.win32 | Platform.win64))
|
|
{
|
|
string arch = conf.Platform == Platform.win64 ? "win64" : "win32";
|
|
|
|
conf.LibraryPaths.Add(ExternPath + "gear4/libs/gear_core/" + arch);
|
|
conf.LibraryPaths.Add(ExternPath + "gear4/libs/simpleEAL/" + arch);
|
|
|
|
conf.If(Optimization.Debug).LibraryFiles.Add(arch + "_" + vsVersion + "_gear_core_d.lib", arch + "_" + vsVersion + "_simpleEAL_d.lib");
|
|
conf.If(Optimization.Release).LibraryFiles.Add(arch + "_" + vsVersion + "_gear_core_r.lib", arch + "_" + vsVersion + "_simpleEAL_r.lib");
|
|
conf.If(Optimization.Retail).LibraryFiles.Add(arch + "_" + vsVersion + "_gear_core_f.lib", arch + "_" + vsVersion + "_simpleEAL_f.lib");
|
|
}
|
|
|
|
conf.IncludePaths.Add(ExternPath + "/gear4");
|
|
conf.IncludePaths.Add(ExternPath + "/gear4/eal/sources");
|
|
|
|
//excude all cpp file of bloomberg for NX since it isn't compatible
|
|
if(conf.Platform.IsIn(Platform.nx))
|
|
{
|
|
conf.SourceFilesBuildExcludeRegex.Add(@".cpp");
|
|
}
|
|
|
|
//We don't want any warnings for this project
|
|
conf.Options.Remove(Options.Vc.General.WarningLevel.Level3);
|
|
conf.Options.Add(Options.Vc.General.WarningLevel.Level0);
|
|
|
|
conf.If(!conf.Platform.IsUsingClang()).Options.Add(Options.Vc.Compiler.DefineCPlusPlus.Default);
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
internal class Pcre : EngineExternProject
|
|
{
|
|
public Pcre()
|
|
{
|
|
RootPath = ExternPath + "pcre";
|
|
SourceFilesFiltersRegex.Add("pcre_chartables.c", "pcre_compile.c", "pcre_config.c", "pcre_dfa_exec.c", "pcre_exec.c",
|
|
"pcre_fullinfo.c", "pcre_get.c", "pcre_globals.c", "pcre_info.c", "pcre_maketables.c",
|
|
"pcre_newline.c", "pcre_ord2utf8.c", "pcre_refcount.c", "pcre_study.c", "pcre_tables.c",
|
|
"pcre_try_flipped.c", "pcre_ucd.c", "pcre_valid_utf8.c", "pcre_version.c", "pcre_xclass.c");
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, BaseCppTarget target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.SolutionFolder = "Extern/Misc";
|
|
conf.Defines.Add("HAVE_CONFIG_H");
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
internal class MoveSpace : EngineExternProject
|
|
{
|
|
public MoveSpace()
|
|
{
|
|
RootPath = ExternPath + "MoveSpace";
|
|
SourceRootPath = RootPath + "/src";
|
|
SourceFilesExcludeRegex.Add(".cs");
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, BaseCppTarget target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.SolutionFolder = "Extern/Misc";
|
|
conf.IncludePaths.Add(RootPath + "/Includes");
|
|
conf.IncludePaths.Add(RootPath);
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
internal class Scry : EngineExternProject
|
|
{
|
|
public Scry()
|
|
{
|
|
RootPath = ExternPath + "Scry";
|
|
SourceRootPath = RootPath + "/Sources";
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, BaseCppTarget target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.SolutionFolder = "Extern/Misc";
|
|
conf.IncludePaths.Add(RootPath);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
#region Test
|
|
|
|
[Generate]
|
|
internal class gmock : EngineExternProject
|
|
{
|
|
public gmock()
|
|
{
|
|
// As gmock has its own blob, only add these blob files in the projet
|
|
RootPath = ExternPath + "gmock";
|
|
ResourceFilesExtensions.Clear();
|
|
SourceFilesExtensions.Clear();
|
|
SourceRootPath = RootPath;
|
|
SourceFiles.Add("googlemock/src/gmock-all.cc");
|
|
SourceFiles.Add("googletest/src/gtest-all.cc");
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, BaseCppTarget target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.SolutionFolder = "Extern/Test";
|
|
conf.IncludePaths.Add(ExternPath + "gmock/googlemock/include");
|
|
conf.IncludePaths.Add(ExternPath + "gmock/googlemock");
|
|
conf.IncludePaths.Add(ExternPath + "gmock/googletest/include");
|
|
conf.IncludePaths.Add(ExternPath + "gmock/googletest");
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Hardware
|
|
|
|
[Generate]
|
|
internal class WiiYourself : EngineExternProject
|
|
{
|
|
public WiiYourself()
|
|
{
|
|
RootPath = ExternPath + "WiiYourself_1.15";
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, BaseCppTarget target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.SolutionFolder = "Extern/Hardware";
|
|
|
|
conf.IncludePaths.Add(RootPath + "/miniDDK");
|
|
foreach (var wiiSuffix in Platform.wii.PathSuffixes(target))
|
|
{
|
|
conf.SourceFilesBuildExcludeRegex.Remove(wiiSuffix);
|
|
}
|
|
|
|
//We don't want any warnings for this project
|
|
conf.Options.Remove(Options.Vc.General.WarningLevel.Level3);
|
|
conf.Options.Add(Options.Vc.General.WarningLevel.Level0);
|
|
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Graphics
|
|
|
|
[Generate]
|
|
internal class Squish : EngineExternProject
|
|
{
|
|
public Squish()
|
|
{
|
|
RootPath = ExternPath + "squish";
|
|
SourceFilesExcludeRegex.Add("extra");
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, BaseCppTarget target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.SolutionFolder = "Extern/Graphics";
|
|
|
|
//We don't want any warnings for this project
|
|
conf.Options.Remove(Options.Vc.General.WarningLevel.Level3);
|
|
conf.Options.Add(Options.Vc.General.WarningLevel.Level0);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Online
|
|
[Generate]
|
|
internal class UmpLoader : EngineExternProject
|
|
{
|
|
public UmpLoader()
|
|
{
|
|
RootPath = ExternPath + "UmpLoader";
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, BaseCppTarget target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.SolutionFolder = "Extern/Online";
|
|
conf.IncludePaths.Add(RootPath + "/include");
|
|
conf.Defines.Add("UMP_X64");
|
|
}
|
|
}
|
|
#endregion
|
|
}
|