Сборка проекта с помощью Premake5 не создает исполняемые или промежуточные файлы

Недавно я посмотрел это видео и решил включить этап предварительной сборки в мой проект. Тем не менее, после идентичной реализации кода в моем файле .lua (кроме имен) premake не создает каталоги bin и bin-int. Странно то, что все файлы .sln, .vcxproj и .vcxproj.filters генерируются.

мой файл premake5.lua:

workspace "OpenGE"
    architecture "x64"
    startproject "Sandbox"

    configurations
    {
        "Debug",
        "Release",
        "Dist"
    }

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

project "OpenGE"
    location "OpenGE"

    kind "SharedLib"
    language "C++"

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

    files
    {
        "%{prj.name}/src/**.h",
        "%{prj.name}/src/**.cpp"
    }

    filter "system:windows"
        cppdialect "C++17"
        staticruntime "On"
        systemversion "latest"

        defines
        {
            "GE_DLL_BUILD"
        }

        postbuildcommands
        {
            "{COPY} %{cfg.buildtarget.relpath} ../bin/" .. outputdir .. "/Sandbox"
        }

    filter "configurations:Debug"
        defines "GE_DEBUG"
        runtime "Debug"
        symbols "On"

    filter "configurations:Release"
        defines "GE_RELEASE"
        runtime "Release"
        optimize "On"

    filter "configurations:Dist"
        defines "GE_DIST"
        runtime "Release"
        optimize "On"

project "Sandbox"
    location "Sandbox"

    kind "ConsoleApp"
    language "C++"

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

    files
    {
        "%{prj.name}/src/**.h",
        "%{prj.name}/src/**.cpp"
    }

    includedirs
    {
        "OpenGE/src"
    }

    links
    {
        "OpenGE"
    }

    filter "system:windows"
        cppdialect "C++17"
        staticruntime "On"
        systemversion "latest"

    filter "configurations:Debug"
        defines "GE_DEBUG"
        runtime "Debug"
        symbols "On"

    filter "configurations:Release"
        defines "GE_RELEASE"
        runtime "Release"
        optimize "On"

    filter "configurations:Dist"
        defines "GE_DIST"
        runtime "Release"
        optimize "On"

Вывод в командной строке при запуске premake выглядит нормально:

C:\Users\bonnl\source\repos\OpenGE>call dependencies\premake\premake5 vs2019
Building configurations...
Running action 'vs2019'...
Done (92ms).

C:\Users\bonnl\source\repos\OpenGE>PAUSE
Press any key to continue . . .

Если потребуется какой-либо дополнительный код или информация, я буду рад добавить ее.


person J. Lengel    schedule 22.12.2019    source источник
comment
premake не создает каталоги bin и bin-int. Указывают ли obj dir и target dir в решении на эти каталоги? Было бы визуально создать каталог во время сборки.   -  person Jarod42    schedule 22.12.2019
comment
В остальном premake не создает решение.   -  person Jarod42    schedule 22.12.2019
comment
Действительно? Думаю, я предположил это, потому что это называется инструментом сборки :)   -  person J. Lengel    schedule 22.12.2019
comment
Он создает автономный (в отличие от CMake) make-файл/решение, которое вы обычно используете впоследствии.   -  person Jarod42    schedule 22.12.2019
comment
Да, я понял это задним числом. Спасибо   -  person J. Lengel    schedule 22.12.2019


Ответы (1)


Оказывается, я думал, что premake создаст мой проект, а также сгенерирует решение и файлы проекта. С тех пор я построил проект, и он работает как шарм

person J. Lengel    schedule 22.12.2019