build process - Generadores de Makefile: premake vs bakefile?
build-process (3)
Para mi proceso de compilación en C ++, estoy usando Bakefile , un pequeño generador de Makefile, que te permite especificar tus objetivos de compilación en XML, y puede generar varios Makefiles o archivos de proyecto a partir de él. Funciona bien y lo uso para generar los scripts de autotools de GNU.
Ahora escuché de Premake , que parece tener una funcionalidad similar. Usted especifica sus objetivos en Lua , y genera Makefiles en consecuencia.
¿Alguien sabe las diferencias entre Bakefile y Premake? ¿Alguien tiene experiencia con ambos? Premake parece más reciente y con un desarrollo más activo?
El analizador XML ticpp usa Premake, pero requiere que descargue premake antes de compilar ticpp. ¿No pueden pregenerar Makefiles para varios sistemas para que no tengas que descargar e instalar premake primero?
Nota: Sé que hay varios hilos SO sobre cuál es la mejor herramienta de compilación, y generalmente la respuesta es CMake , SCons o Jam . Sin embargo, estoy interesado en algo que mis usuarios no tendrán que descargar antes de construir mi proyecto.
Sí, Premake le permite generar un Makefile (o solución de Visual Studio, o ...) que luego puede distribuir, si lo desea. Premake en sí mismo incluye makefiles pregenerados en sus paquetes fuente.
La descarga y ejecución de Premake en la máquina de destino permite que el archivo MAKE se personalice, ya sea mediante un análisis automatizado del sistema, o manualmente mediante indicadores de línea de comando. Para algunos proyectos, es una valiosa compensación, pero no es obligatorio.
No es exactamente una respuesta, pero recomiendo sinceramente premake4 , es fantástico.
Después de usar tanto Premake 4 como la nueva versión de Bakefile , parece que se dirigen a diferentes casos de uso.
- Bakefile está orientado a lo que desea: genere los archivos de compilación localmente y luego distribuya su proyecto con ellos. He tenido una gran experiencia con esta herramienta.
- Premake es más parecido a CMake: generación de archivo local. A veces, tiene muchas configuraciones sofisticadas que deben ejecutarse en la máquina de destino. Bakefile te permite lograr esto usando complementos, pero puede ser desordenado rápidamente. Sin embargo, puede pregenerar archivos.
Para su uso, recomendaría Bakefile. Parece que no necesitas nada lujoso.