Articulo de referencia

Consecuencias

SCons es una herramienta de desarrollo de software que analiza las dependencias del código fuente y los requisitos de adaptación del sistema operativo a partir de la descripción...

SCons es una herramienta de desarrollo de software que analiza las dependencias del código fuente y los requisitos de adaptación del sistema operativo a partir de la descripción de un proyecto de software y genera ejecutables binarios finales para su instalación en la plataforma del sistema operativo de destino. Su función es similar a la del sistema de compilación GNU más popular .

La herramienta genera scripts de Python para la configuración del proyecto y la lógica de compilación.

Historia

La utilidad de construcción de software Cons , escrita en Perl , fue creada por Bob Sidebotham en 1999. [3] Sirvió como base para la herramienta de construcción ScCons , un diseño que ganó la competencia SC Build del proyecto Software Carpentry en agosto de 2000. [4] ScCons fue la base de SCons.

SCons inspiró la creación de Waf , anteriormente conocido como SCons/BKsys , que surgió en la comunidad de KDE . Durante algún tiempo, hubo planes para usarlo como herramienta de compilación para KDE 4 y posteriores, pero ese esfuerzo se abandonó en favor de CMake . [5]

Entre los proyectos notables que utilizan SCons (o lo utilizaron en algún momento) se incluyen: The Battle for Wesnoth , [6] Battlefield 1942 , [ cita requerida ] Doom 3 , [7] FCEUX , [8] gem5, [9] gpsd , [10] GtkRadiant , [11] Madagascar , [12] Mixxx , [13] MongoDB , [14] Nullsoft Scriptable Install System , [15] OpenNebula , [16] VMware , [ cita requerida ] , Wolfenstein: Enemy Territory , [17] XORP y MCA2, [18] openpilot [19] y Godot . [20]

.csig es el formato de archivo de firma de contenido de SCons.

Características

Las características principales incluyen:

  • Los archivos de configuración son Python; las compilaciones escritas por el usuario pueden aprovechar un lenguaje de programación multiplataforma de propósito general.
  • Análisis de dependencia para C , C++ y Fortran
  • El análisis de dependencias se puede ampliar a través de escáneres definidos por el usuario para otros idiomas o tipos de archivos; a diferencia del análisis de dependencias de GNU Compiler Collection (GCC), SCons utiliza un escaneo de expresiones regulares para los archivos fuente incluidos.
  • Soporte integrado para C, C++, D , Java , Fortran , Objective-C , Yacc , Lex , Qt y SWIG , así como documentos TeX y LaTeX
  • Compatibilidad con otros idiomas mediante constructores personalizados
  • Creación a partir de repositorios centrales de código fuente y objetivos prediseñados
  • Capacidad para utilizar Visual Studio , incluida la generación de archivos .dsp, .dsw, .sln y .vcproj
  • Detección de cambios en el contenido de archivos mediante firmas MD5 ; capacidad opcional y configurable para utilizar marcas de tiempo tradicionales
  • Capacidad de realizar compilaciones paralelas, manteniendo una cantidad específica de trabajos ejecutándose simultáneamente independientemente de la jerarquía del directorio
  • Soporte similar a Autoconf para buscar archivos #include, bibliotecas, funciones y definiciones de tipos
  • Vista global de las dependencias, por lo que no se requieren múltiples pases de compilación ni reordenamiento de objetivos.
  • Capacidad de compartir archivos compilados en un caché para acelerar múltiples compilaciones, como ccache pero para cualquier tipo de archivo de destino, no solo la compilación de C/C++
  • Diseñado desde cero para compilaciones multiplataforma; se sabe que funciona en sistemas POSIX (incluidos Linux , AIX y OS/2 , *BSD Unices , HP-UX , SGI IRIX , Solaris , illumos ), Windows NT , OS X.

Ejemplos

El siguiente es un archivo SConstruct que crea un programa C de hola mundo utilizando el compilador de plataforma predeterminado:

Programa ( "hola-mundo.c" )

El siguiente es un archivo SConstruct para un proyecto que incluye dos archivos fuente y especifica opciones de la herramienta de compilación:

env  =  Environment () 
env.Append ( CPPFLAGS = [ " -Wall" , " -g" ]) env.Program ( " hola" , [ "hola.c" , " main.c" ]) 

             

Véase también

  • Buildout  : herramienta de programación destinada a ayudar con la implementación de softwarePáginas que muestran descripciones de wikidata como alternativa
  • qmake  – herramienta de creación de software que genera MakefilesPáginas que muestran descripciones de wikidata como alternativa
  • Qbs (build tool)  : software libre y de código abierto multiplataforma para gestionar el proceso de compilación de softwarePáginas que muestran descripciones de wikidata como alternativa
  • Premake  : herramienta de compilación multiplataforma para configurar compilaciones específicas de la plataforma
  • Lista de software de automatización de compilaciones

Referencias

  1. ^ Knight, Steven (febrero de 2002). «Diseño e implementación de SCons». Archivado desde el original el 21 de marzo de 2018. Consultado el 23 de marzo de 2024 .
  2. ^ "Archivos - SCons".
  3. ^ Cons (sitio web), DSMit, archivado desde el original el 15 de agosto de 2000.
  4. ^ Samuel, Alex (4 de agosto de 2000). "Resultados de la segunda ronda del concurso de diseño de Software Carpentry, categorías Configuración, Construcción y Seguimiento" . Consultado el 29 de octubre de 2012 .
  5. ^ Neundorf, Alexander (21 de junio de 2006). "Por qué el proyecto KDE cambió a CMake y cómo (continuación)". LWN . Consultado el 21 de julio de 2009 .
  6. ^ "Compilando Wesnoth". Wiki . Wesnoth . Consultado el 11 de abril de 2011 .
  7. ^ "README.txt". id Software . Consultado el 13 de mayo de 2015 .
  8. ^ "Descargas". FCEUX . Consultado el 25 de abril de 2017 .
  9. ^ Gema5.
  10. ^ "SCons está lleno de victorias hoy". ESR . iBiblio. 2011-04-05 . Consultado el 2011-04-11 .
  11. ^ "Documentación para desarrolladores de GtkRadiant 1.6.0 (Zeroradiant)" (Trac) . QE radiant. 2008-06-30 . Consultado el 2009-12-28 .
  12. ^ "Instalación". Wiki . Ahay. 2011-02-26 . Consultado el 2011-04-11 .
  13. ^ "Mixxx/Compilación". GitHub . 26 de agosto de 2014.
  14. ^ "Building for Linux". MongoDB . 10gen. 30 de enero de 2009. Archivado desde el original el 21 de febrero de 2009 . Consultado el 8 de febrero de 2011 .
  15. ^ "INSTALACIÓN". NSIS (código fuente). Source forge. 2011-05-28. Archivado desde el original el 2012-07-11 . Consultado el 2011-04-11 .
  16. ^ "/SConstruct - OpenNebula - Páginas de desarrollo de OpenNebula". Proyecto OpenNebula . Consultado el 9 de enero de 2016 .
  17. ^ "README.txt". id Software . Consultado el 25 de abril de 2017 .
  18. ^ "Arquitectura de controlador modular". Centro de investigación de tecnología de la información (FZI), Instituto Tecnológico de Karlsruhe (KIT).
  19. ^ "Repositorio de Github de OpenPilot". comma.ai/ . Consultado el 10 de mayo de 2021 .
  20. ^ "Introducción al sistema de compilación: documentación más reciente de Godot Engine". docs.godotengine.org . Consultado el 19 de agosto de 2019 .
  • Sitio web oficial
Obtenido de "https://es.wikipedia.org/w/index.php?title=SCons&oldid=1263427787"