Есть ли способ заставить Premake использовать шаблоны проектов Visual-Studio? - PullRequest
0 голосов
/ 07 августа 2020

Я пытаюсь создать файл premake5. lua для проекта Visual-Studio C# MonoGame. Я хочу иметь возможность использовать предварительную версию с использованием шаблона проекта MonoGame, вместо того, чтобы мне приходилось вручную копаться во всем, что шаблон создает для меня, а затем помещать это в предварительную версию. В настоящее время у меня есть следующий файл premake5. lua, который создает проект, который компилируется, но имеет исключения при его запуске ...


workspace "TilemapEditor"
    architecture "x86"
    startproject "TilemapEditor"

    configurations
    {
        "Debug",
        "Release",
        "Distribution"
    }

outputdir = "%{cfg.buildcfg}-%{cfg.system}-%{cfg.architecture}"

project "TilemapEditor"
    location "TilemapEditor"
    kind "WindowedApp"
    language "C#"
    links {"MonoGame.Framework", "System", "System.Windows.Forms", "System.Xml"}

    targetdir ("bin/" .. outputdir .. "/%{prj.name}")
    objdir ("bin-int/" .. outputdir .. "/%{prj.name}")

    files { "%{prj.name}/src/**.cs", "Properties/AssemblyInfo.cs" }

    defines { "WINDOWS" }
    dotnetframework ("4.5")

    filter "configurations:Debug"
        symbols "On"

    filter "configurations:Release"
        symbols "Off"

Я не нашел никакой функции в вики для предварительного создания, которая могла бы это.

1 Ответ

1 голос
/ 11 августа 2020

Нет, не совсем. Premake пишет полный проект с нуля, а не «заполняет пробелы» в существующем проекте. Лучше всего будет различать проекты, созданные из Premake и шаблона MonoGame, и настраивать параметры в сценарии Premake для соответствия. После того, как вы это сделаете, довольно легко создать функцию, которую вы можете повторно использовать, чтобы применять одни и те же настройки к разным проектам. Может быть что-то вроде:

function monoGameSettings()
   -- put your MonoGame baseline settings here
   filter {}  -- finish with this to close any opened filter blocks
end

-- use it like...
project 'MyProject'
    monoGameSettings()
...