public static void CreateBuildPreferences()
    {
        BuildPreferences asset = ScriptableObject.CreateInstance <BuildPreferences>();

        if (Resources.Load <BuildPreferences>("Preferences/BuildPrefs"))
        {
            Debug.Log("BuildPrefs already exists in Resources folder!");
            return;
        }

        if (!AssetDatabase.IsValidFolder("Assets/unity-builder"))
        {
            AssetDatabase.CreateFolder("Assets", "unity-builder");
        }
        if (!AssetDatabase.IsValidFolder("Assets/unity-builder/Resources"))
        {
            AssetDatabase.CreateFolder("Assets/unity-builder", "Resources");
        }
        if (!AssetDatabase.IsValidFolder("Assets/unity-builder/Resources/Preferences"))
        {
            AssetDatabase.CreateFolder("Assets/unity-builder/Resources", "Preferences");
        }

        AssetDatabase.CreateAsset(asset, "Assets/unity-builder/Resources/Preferences/BuildPrefs.asset");
        AssetDatabase.SaveAssets();

        EditorUtility.FocusProjectWindow();

        Selection.activeObject = asset;
    }
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();

        BuildPreferences bp = (BuildPreferences)target;

        EditorGUILayout.LabelField("");
        EditorGUILayout.LabelField("Build Controls", EditorStyles.boldLabel);
        if (bp.Targets != null && bp.Targets.Length > 0)
        {
            EditorGUILayout.BeginVertical(GUI.skin.box);
            foreach (BuildTarget buildTarget in bp.Targets)
            {
                if (GUILayout.Button("Build " + buildTarget.ToString()))
                {
                    BuilderEditorTools.BuildAny(buildTarget);
                }
            }

            EditorGUILayout.LabelField("");

            if (GUILayout.Button("Build All"))
            {
                BuilderEditorTools.BuildAllProjectTargets();
            }


            EditorGUILayout.EndVertical();
        }

        if (GUI.changed)
        {
            EditorUtility.SetDirty(target);
        }
    }
    public static void BuildAllProjectTargets()
    {
        BuildPreferences prefs = Resources.Load <BuildPreferences>("Preferences/BuildPrefs");

        foreach (BuildTarget target in prefs.Targets)
        {
            BuildAny(target);
        }
    }
Example #4
0
    private static void PerformServerBuild()
    {
        BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions();

        buildPlayerOptions.scenes           = new[] { "Assets/scenes/Lobby.unity", "Assets/scenes/OutpostStation.unity" };
        buildPlayerOptions.locationPathName = "../Tools/ContentBuilder/content/Server/Unitystation-Server";
        buildPlayerOptions.target           = BuildTarget.StandaloneLinux64;
        buildPlayerOptions.options          = BuildOptions.None;
        BuildPreferences.SetRelease(true);
        BuildPipeline.BuildPlayer(buildPlayerOptions);
    }
Example #5
0
    private static void PerformLinuxBuild()
    {
        BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions();

        buildPlayerOptions.scenes           = new[] { "Assets/scenes/Lobby.unity", "Assets/scenes/OutpostStation.unity" };
        buildPlayerOptions.locationPathName = "../Tools/ContentBuilder/content/Linux/Unitystation";
        buildPlayerOptions.target           = BuildTarget.StandaloneLinux64;
        buildPlayerOptions.options          = BuildOptions.Development | BuildOptions.AllowDebugging | BuildOptions.CompressWithLz4HC;
        BuildPreferences.SetRelease(true);
        BuildPipeline.BuildPlayer(buildPlayerOptions);
    }
Example #6
0
    private static void PerformOSXBuild()
    {
        BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions();

        buildPlayerOptions.scenes           = new[] { "Assets/scenes/Lobby.unity", "Assets/scenes/OutpostStation.unity" };
        buildPlayerOptions.locationPathName = "../Tools/ContentBuilder/content/OSX/Unitystation.app";
        buildPlayerOptions.target           = BuildTarget.StandaloneOSX;
        buildPlayerOptions.options          = BuildOptions.CompressWithLz4HC;
        BuildPreferences.SetRelease(true);
        BuildPipeline.BuildPlayer(buildPlayerOptions);
    }
Example #7
0
    private static void PerformWindowsBuild()
    {
        BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions();

        buildPlayerOptions.scenes           = new[] { "Assets/scenes/Lobby.unity", "Assets/scenes/OutpostDeathmatch.unity" };
        buildPlayerOptions.locationPathName = "../Tools/ContentBuilder/content/Windows/Unitystation.exe";
        buildPlayerOptions.target           = BuildTarget.StandaloneWindows64;
        buildPlayerOptions.options          = BuildOptions.Development;
        buildPlayerOptions.options          = BuildOptions.CompressWithLz4HC;
        BuildPreferences.SetRelease(true);
        BuildPipeline.BuildPlayer(buildPlayerOptions);
    }
Example #8
0
    private static void PerformServerBuild()
    {
        BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions();

        buildPlayerOptions.scenes           = new[] { "Assets/scenes/Lobby.unity", "Assets/scenes/OutpostDeathmatch.unity", "Assets/scenes/Flashlight Deathmatch.unity" };
        buildPlayerOptions.locationPathName = "../Tools/ContentBuilder/content/Server/Unitystation-Server";
        buildPlayerOptions.target           = BuildTarget.StandaloneLinux64;
        buildPlayerOptions.options          = BuildOptions.EnableHeadlessMode;
        buildPlayerOptions.options          = BuildOptions.CompressWithLz4HC;
        BuildPreferences.SetRelease(true);
        BuildPipeline.BuildPlayer(buildPlayerOptions);
    }
Example #9
0
        public override void OnInspectorGUI()
        {
            _target = (BuildPreferences)target;

            DrawUnityPro();
            DrawCompany();
            DrawIcon();
            DrawOrientations();
            DrawSplash();
            DrawAndroidPreferences();
            DrawIOSPreferences();
            DrawSDKs();

            EditorUtility.SetDirty(_target);
        }
    public static void BuildAny(BuildTarget a_platform)
    {
        string platformName = a_platform.ToString();

        Debug.LogFormat("Building for {0}", platformName);

        // Build the player
        BuildPreferences prefs = Resources.Load <BuildPreferences>("Preferences/BuildPrefs");

        BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions();

        //Get scenes from build settings
        buildPlayerOptions.scenes = new string[EditorBuildSettings.scenes.Length];
        for (int i = 0; i < EditorBuildSettings.scenes.Length; i++)
        {
            buildPlayerOptions.scenes[i] = EditorBuildSettings.scenes[i].path;
        }

        Debug.Log(buildPlayerOptions.scenes);

        buildPlayerOptions.locationPathName = string.Format("{0}\\{3}\\{2}\\{3}_{2}_{1}{4}",
                                                            Path.GetFullPath(Application.dataPath + "/../" + prefs.BuildFolder),
                                                            prefs.ProjectName,
                                                            prefs.ProjectVersion,
                                                            platformName,
                                                            ResolveExtension(a_platform)
                                                            );

        Debug.Log(buildPlayerOptions.locationPathName);
        //{1}_{2}_Android.apk
        Debug.Log(buildPlayerOptions.locationPathName);
        buildPlayerOptions.target = a_platform;

        BuildOptions bo = new BuildOptions();

        for (int i = 0; i < prefs.Options.Length; i++)
        {
            bo |= prefs.Options [i];
        }

        buildPlayerOptions.options = bo;

        BuildPipeline.BuildPlayer(buildPlayerOptions);
    }
Example #11
0
        public void SetPreferences(BuildPreferencesType type, BuildPreferences value)
        {
            switch (type)
            {
            case BuildPreferencesType.Internal:
                internalPreferences = value;
                break;

            case BuildPreferencesType.Test:
                testPreferences = value;
                break;

            case BuildPreferencesType.Release:
                releasePreferences = value;
                break;
            }

            return;
        }
Example #12
0
        public BuildPreferences GetPreferences(BuildPreferencesType type)
        {
            BuildPreferences preferences = null;

            switch (type)
            {
            case BuildPreferencesType.Internal:
                preferences = internalPreferences;
                break;

            case BuildPreferencesType.Test:
                preferences = testPreferences;
                break;

            case BuildPreferencesType.Release:
                preferences = releasePreferences;
                break;
            }

            return(preferences);
        }
Example #13
0
    //IMPORTANT: ALWAYS DO WINDOWS BUILD FIRST IN YOUR BUILD CYCLE:
    private static void PerformWindowsBuild()
    {
        //Always build windows client first so that build info can increment the build number
        int       buildNum        = 0;
        var       buildInfo       = JsonUtility.FromJson <BuildInfo>(File.ReadAllText(Path.Combine(Application.streamingAssetsPath, "buildinfo.json")));
        BuildInfo buildInfoUpdate = new BuildInfo();

        if (File.Exists(Path.Combine(Application.streamingAssetsPath, "buildinfoupdate.json")))
        {
            buildInfoUpdate = JsonUtility.FromJson <BuildInfo>(File.ReadAllText(Path.Combine(Application.streamingAssetsPath, "buildinfoupdate.json")));

            //Allows build number ranges to be forced by committing a change to buildinfo.json
            //buildinfoupdate is gitignored so it can be stored on the build server
            if (buildInfoUpdate.BuildNumber < buildInfo.BuildNumber)
            {
                buildInfoUpdate.BuildNumber = buildInfo.BuildNumber;
            }
        }
        else
        {
            buildInfoUpdate.BuildNumber = buildInfo.BuildNumber;
        }

        buildInfoUpdate.BuildNumber++;
        buildInfo.BuildNumber = buildInfoUpdate.BuildNumber;
        File.WriteAllText(Path.Combine(Application.streamingAssetsPath, "buildinfo.json"), JsonUtility.ToJson(buildInfo));
        File.WriteAllText(Path.Combine(Application.streamingAssetsPath, "buildinfoupdate.json"), JsonUtility.ToJson(buildInfoUpdate));

        BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions();

        buildPlayerOptions.scenes = new[] { "Assets/scenes/StartUp.unity", "Assets/scenes/Lobby.unity",
                                            "Assets/scenes/BoxStationV1.unity", "Assets/scenes/OutpostStation.unity",
                                            "Assets/scenes/PogStation.unity", "Assets/scenes/AsteroidStation.unity" };
        buildPlayerOptions.locationPathName = "../Tools/ContentBuilder/content/Windows/Unitystation.exe";
        buildPlayerOptions.target           = BuildTarget.StandaloneWindows64;
        buildPlayerOptions.options          = BuildOptions.CompressWithLz4HC;
        BuildPreferences.SetRelease(true);
        BuildPipeline.BuildPlayer(buildPlayerOptions);
    }
    public static void OpenBuildFolder()
    {
        BuildPreferences prefs = Resources.Load <BuildPreferences>("Preferences/BuildPrefs");

        System.Diagnostics.Process.Start(@prefs.BuildFolder);
    }