Skip to content

Linking errors with new usage API and gmake #2643

@StefanoLanza

Description

@StefanoLanza

The following is a simplified configuration for my own project. I have migrated it to the new usage/uses API. On Windows, Example1 builds correctly. On Linux/gmake, the same project builds with linking errors such as missing TinyXML symbols. As a workaround, I have to explicitly link all dependent libraries (see the gmake filter in project("Reflection")). Is this a known bug or am I misusing the API ?

I am using Premake 5.0.0-beta8

Thank you!

project("Core")
	local path = "."
	kind "StaticLib"
	includedirs { path .. "/include", path .. "/include/core", }
	usage "INTERFACE"
		includedirs { path .. "/include", }
		links { "Core" }

project("TinyXML")
	kind "StaticLib"
	usage "INTERFACE"
		includedirs { "external", }
		links { "TinyXML" }

project("Reflection")
	kind "StaticLib"
	files "include/**.h"
	includedirs { "include/reflection" }
	uses { "Core", "TinyXML", }
	usage "INTERFACE"
		uses { "Core" }
		includedirs { "include", }
		links { "Reflection" }
		filter { "action:gmake*" } -- Bug in gmake generation ?
			links({"Core", "TinyXML"})
		filter {}

project("Example1")
		kind "ConsoleApp"
		files { "examples/example1.cpp", "examples/utils.*", }
		uses { "Reflection" }

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions