Skip to main content


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")


kind is one of the following string identifiers:

ConsoleAppA console or command-line application.
WindowedAppAn application which runs in a desktop window. This distinction does not apply on Linux, but is important on Windows and Mac OS X.
SharedLibA shared library or DLL.
StaticLibA static library.
MakefileA 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.
UtilityA configuration which contains only custom build rules.
NoneA configuration which is not included in the build. Useful for projects containing only web pages, header files, or support documentation.
PackagingA configuration type to create .androidproj files, which build the apk in an Android application under Visual Studio. Note, this was previously AndroidProj.
SharedItemsA 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.


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 gmake, gmake2, Codelite and Visual Studio. The Utility kind is only available for Visual Studio, Codelite and gmake2, as well as very limited support in gmake. The SharedItems kind is only available for Visual Studio 2013 and later.


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