using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEditor;
namespace HeurekaGames.Utils
{
public static class Heureka_AddDefineSymbols
{
///
/// Add define symbols as soon as Unity gets done compiling.
///
public static void AddDefineSymbols(string[] Symbols)
{
#if UNITY_2023_1_OR_NEWER
string definesString = PlayerSettings.GetScriptingDefineSymbols(UnityEditor.Build.NamedBuildTarget.FromBuildTargetGroup(EditorUserBuildSettings.selectedBuildTargetGroup));
#else
string definesString = PlayerSettings.GetScriptingDefineSymbolsForGroup(EditorUserBuildSettings.selectedBuildTargetGroup);
#endif
List allDefines = definesString.Split(';').ToList();
var newDefines = Symbols.Except(allDefines);
if (newDefines.Count() > 0)
{
Debug.Log($"Adding Compile Symbols {string.Join("; ", newDefines.ToArray())}");
allDefines.AddRange(newDefines);
#if UNITY_2023_1_OR_NEWER
PlayerSettings.SetScriptingDefineSymbols(
UnityEditor.Build.NamedBuildTarget.FromBuildTargetGroup(EditorUserBuildSettings.selectedBuildTargetGroup),
string.Join(";", allDefines.ToArray()));
#else
{
PlayerSettings.SetScriptingDefineSymbolsForGroup(
EditorUserBuildSettings.selectedBuildTargetGroup,
string.Join(";", allDefines.ToArray()));
}
#endif
}
}
}
}