2025-05-17 15:26:08 +02:00

2.6 KiB

Sets the kind of binary object being created by the project or configuration, such as a console or windowed application, or a shared or static library.

kind ("kind")

Parameters

kind is one of the following string identifiers:

Value Description
ConsoleApp A console or command-line application.
WindowedApp An application which runs in a desktop window. This distinction does not apply on Linux, but is important on Windows and Mac OS X.
SharedLib A shared library or DLL.
StaticLib A static library.
Makefile A special configuration type which calls out to one or more external commands. The actual type of binary created is unspecified. See Makefile Projects for more information.
Utility A configuration which contains only custom build rules.
None A configuration which is not included in the build. Useful for projects containing only web pages, header files, or support documentation.
Packaging A configuration type to create .androidproj files, which build the apk in an Android application under Visual Studio. Note, this was previously AndroidProj.
SharedItems A special configuration type which doesn't contain any build settings of its own, instead using the build settings of any projects that link it.

Applies To

Project configurations.

Availability

The Makefile kind is available in Premake 5.0 and later, and are supported for Visual Studio and Codelite. The None kind is available in Premake 5.0 and later, and are supported for gmakelegacy, gmake, Codelite and Visual Studio. The Utility kind is only available for Visual Studio, Codelite and gmake, as well as very limited support in gmakelegacy. The SharedItems kind is only available for Visual Studio 2013 and later.

Examples

Set the project to build a command-line executable.

kind "ConsoleApp"

Set the project to build a shared library (DLL).

kind "SharedLib"

Build either a static or a shared library, depending on the selected build configuration.

workspace "MyWorkspace"
   configurations { "DebugLib", "DebugDLL", "ReleaseLib", "ReleaseDLL" }

project "MyProject"

   filter "*Lib"
      kind "StaticLib"

   filter "*DLL"
      kind "SharedLib"

See Also