prefabricado | |
---|---|
Tipo de | Automatización de montaje |
Escrito en | Lua y C [2] |
versión beta |
|
Licencia | licencia BSD modificada [d] [3] |
Sitio web | premake.github.io |
premake ( IPA : [ p r i ː m e ɪ k ]) es una utilidad de código abierto para automatizar el ensamblaje de programas a partir del código fuente , basada en el lenguaje de programación Lua . Premake no compila directamente, solo genera archivos MAKE de control de compilación a partir de archivos "premake5.lua".
Algunas de las posibilidades [4] :
Por ejemplo, creemos un programa de prueba tradicional " ¡Hola, mundo! » en lenguaje C :
// Archivo: hola.c #incluir <stdio.h> int principal () { puts ( "¡Hola mundo!" ); devolver 0 ; }Para el ensamblaje en sí, deberá crear un script prefabricado creado junto al código fuente de Lua :
-- Archivo: premake5.lua espacio de trabajo "Hola mundo" configuraciones { "Depuración" , "Liberar" } proyecto "HolaMundo" tipo "Aplicación de consola" lenguaje "C" directorio de destino "bin/%{cfg.buildcfg}" archivos { "**.h" , "**.c" } filtrar "configuraciones: Depurar" define { "DEBUG" } símbolos "Encendido" filtrar "configuraciones: Liberar" define { "NDEBUG" } optimizar "Activado"Si su sistema operativo es Microsoft Windows , entonces para construirlo basta con generar archivos de proyecto para su ISR , como ejemplo más común, usamos el comando para Visual Studio (2022):
$ premake5 vs2022 # generando archivos .sln y otros para Visual Studio 2022 Construyendo configuraciones... Ejecutando la acción 'vs2022'... Generando MyWorkspace.sln... Generando MyProject.vcxproj... Generando MyProject.vcxproj.user... Hecho.Si está utilizando un sistema operativo diferente como UNIX , entonces puede generar archivos make ordinarios y compilar el proyecto usando make mismo:
$ premake5 gmake # generar makefiles de compilación $ make # compilar la configuración predeterminada (depuración) $ make config = release # compilar en el modo de configuración Release $ make help # mostrar las configuraciones de proyecto disponiblesSistemas de automatización de montaje | |
---|---|