winamp/Src/external_dependencies/openmpt-trunk/include/premake/website/docs/kind.md

63 lines
2.2 KiB
Markdown
Raw Permalink Normal View History

2024-09-24 12:54:57 +00:00
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.
```lua
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](Makefile-Projects.md) 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`._ |
### Applies To ###
Project configurations.
### Availability ###
The **Makefile**, and **None** kinds are only available in Premake 5.0 and later, and are currently only supported for Visual Studio.
The **Utility** kind is only available for Visual Studio and gmake2, as well as very limited support in gmake.
### Examples ###
Set the project to build a command-line executable.
```lua
kind "ConsoleApp"
```
Set the project to build a shared library (DLL).
```lua
kind "SharedLib"
```
Build either a static or a shared library, depending on the selected build configuration.
```lua
workspace "MyWorkspace"
configurations { "DebugLib", "DebugDLL", "ReleaseLib", "ReleaseDLL" }
project "MyProject"
filter "*Lib"
kind "StaticLib"
filter "*DLL"
kind "SharedLib"
```
### See Also ###
* [Makefile Projects](Makefile-Projects.md)