Files
FlaxEngine/Source/Engine/Tools/ModelTool/ModelTool.Build.cs
2021-01-02 14:28:49 +01:00

65 lines
2.1 KiB
C#

// Copyright (c) 2012-2021 Wojciech Figat. All rights reserved.
using System.Collections.Generic;
using System.IO;
using Flax.Build;
using Flax.Build.NativeCpp;
/// <summary>
/// Model data utilities module.
/// </summary>
public class ModelTool : EngineModule
{
/// <inheritdoc />
public override void Setup(BuildOptions options)
{
base.Setup(options);
bool useAssimp = true;
bool useAutodeskFbxSdk = false;
bool useOpenFBX = true;
if (useAssimp)
{
options.PrivateDependencies.Add("assimp");
options.PrivateDefinitions.Add("USE_ASSIMP");
}
if (useAutodeskFbxSdk)
{
options.PrivateDefinitions.Add("USE_AUTODESK_FBX_SDK");
// FBX SDK 2020.0.1 VS2015
// TODO: convert this into AutodeskFbxSdk and implement proper SDK lookup with multiple versions support
// TODO: link against dll with delay loading
var sdkRoot = @"C:\Program Files\Autodesk\FBX\FBX SDK\2020.0.1";
var libSubDir = "lib\\vs2015\\x64\\release";
options.PrivateIncludePaths.Add(Path.Combine(sdkRoot, "include"));
options.OutputFiles.Add(Path.Combine(sdkRoot, libSubDir, "libfbxsdk-md.lib"));
options.OutputFiles.Add(Path.Combine(sdkRoot, libSubDir, "zlib-md.lib"));
options.OutputFiles.Add(Path.Combine(sdkRoot, libSubDir, "libxml2-md.lib"));
}
if (useOpenFBX)
{
options.PrivateDependencies.Add("OpenFBX");
options.PrivateDefinitions.Add("USE_OPEN_FBX");
}
options.PrivateDependencies.Add("TextureTool");
options.PrivateDefinitions.Add("COMPILE_WITH_ASSETS_IMPORTER");
options.PrivateDependencies.Add("DirectXMesh");
options.PrivateDependencies.Add("UVAtlas");
options.PrivateDependencies.Add("meshoptimizer");
options.PublicDefinitions.Add("COMPILE_WITH_MODEL_TOOL");
}
/// <inheritdoc />
public override void GetFilesToDeploy(List<string> files)
{
files.Add(Path.Combine(FolderPath, "ModelTool.h"));
}
}