premake / premake-core

Premake
https://premake.github.io/
BSD 3-Clause "New" or "Revised" License
3.2k stars 618 forks source link

Premake doesn't add in the LIBS variable the word `vulkan` #2256

Closed davmarc-lab closed 1 week ago

davmarc-lab commented 1 week ago

What are you trying to do? I'm trying to create a Makefile for a simple vulkan application.

What problem are you having? When I add the vulkan library to the links array, in the Makefile it isn't included properly. links({ "glm", "glfw", "vulkan", "dl", "pthread", "X11", "Xxf86vm", "Xrandr", "Xi" }) But the LIBS variable in the final Makefile looks like this: LIBS += -lglm -lglfw -ldl -lpthread -lX11 -lXxf86vm -lXrandr -lXi

What have you tried so far? I've changed the name in vuldan and it is included well. links({ "glm", "glfw", "vuldan", "dl", "pthread", "X11", "Xxf86vm", "Xrandr", "Xi" }) LIBS += -lglm -lglfw -lvuldan -ldl -lpthread -lX11 -lXxf86vm -lXrandr -lXi

What version of Premake are you using? premake5 (Premake Build Script Generator) 5.0.0-beta2

samsinsane commented 1 week ago

I can't reproduce this, check for usages of removelinks or any of the Premake modules you might be using.

davmarc-lab commented 1 week ago

I'm not using any external modules or removelinks entries in my premake5.lua; I'll paste it below if it can help.

workspace("VulkanWay")
architecture("x64")

configurations({
    "Debug",
    "Release",
})

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

project("Vulkan")
    location(".")
    kind("ConsoleApp")
    language("C++")
    cppdialect("C++20")

    links({ "glm", "glfw", "vulkan", "dl", "pthread", "X11", "Xxf86vm", "Xrandr", "Xi" })

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

    files({
        "main.cpp",
    })
samsinsane commented 1 week ago

I'm going to guess the issue is that the project is also called Vulkan. links allows you to specify a Premake project too, I'm not sure if Premake is ignoring it because it's a ConsoleApp or because it would be attempting to link itself. Either way, naming the project the same as a dependency isn't supported.

davmarc-lab commented 1 week ago

I see, I thought it was case sensitive while linking libraries... Anyway I've changed the name of the project from Vulkan in Atlas an now it works fine thank you @samsinsane. I'm closing this issue.