Pregunta

¿Hay alguna forma de establecer indicadores en función de cada archivo con automake?
En particular, si tengo un proyecto de c ++ y quiero compilar con -WILL todos los archivos, excepto uno para el que quiero desactivar una advertencia en particular, ¿qué podría hacer?

Probé algo como:

CXXFLAGS = -WAll ...
bin_PROGRAMS = test
test_SOURCES = main.cpp utility.cpp
utility_o_CXXFLAGS = $(CXXFLAGS) -Wno-unused-value

pero no funcionó.

EDITADO: se eliminó la referencia al manual de automake, que en realidad fue engañoso (gracias a Douglas Leeder).

¿Fue útil?

Solución

Automake solo admite indicadores por objetivo, mientras que usted desea indicadores por objeto. Una forma de evitarlo es crear una pequeña biblioteca que contenga su objeto:

CXXFLAGS = -Wall ...
bin_PROGRAMS = test
test_SOURCES = main.cpp
test_LDADD = libutility.a
noinst_LIBRARIES = libutility.a
libutility_a_SOURCES = utility.cpp
libutility_a_CXXFLAGS = $(CXXFLAGS) -Wno-unused-value

Otros consejos

No puede hacer esto con automake ... pero puede hacer con make =) Agregue la siguiente línea a su Makefile.am :

utility.$(OBJEXT) : CXXFLAGS += -Wno-unused-value

Consulte GNU Make document: Targetble Valve Values ?? para más detalles.

Te has confundido, esa sección se refiere a las opciones para hacer el automake.

Es una forma de configurar las opciones de línea de comandos de automake:

  

-W CATEGORIA   --warnings = categoría       Advertencias de salida que caen en la categoría. La categoría puede ser una de:

gnu
    warnings related to the GNU Coding Standards (see Top).
obsolete
    obsolete features or constructions
override
    user redefinitions of Automake rules or variables
portability
    portability issues (e.g., use of make features that are known to be not portable)
syntax
    weird syntax, unused variables, typos
unsupported
    unsupported or incomplete features
all
    all the warnings
none
    turn off all the warnings
error
    treat warnings as errors 
     

Una categoría se puede desactivar prefijando su nombre con "no-".   Por ejemplo, -Wno-sintaxis ocultará la   advertencias sobre variables no utilizadas.

     

Las categorías de salida por defecto son "sintaxis" y "no admitidas".   Además, ‘gnu’ y ‘portabilidad’   están habilitados en --gnu y --gnits   rigidez.

     

La variable de entorno WARNINGS puede contener una lista separada por comas de   Categorías para habilitar. Será tomado   en cuenta antes de la linea de comando   Conmutadores, de esta manera -Wnone también lo hará.   ignorar cualquier categoría de advertencia habilitada por   ADVERTENCIAS. Esta variable también se usa.   por otras herramientas como autoconf; desconocido   las categorías son ignoradas para esto   razón.

El archivo por archivo que se enumera en la sección 17 se refiere a archivo Make-File no fuente.

No tengo conocimiento de ninguna configuración de marca de archivo por origen, pero puede establecer la opción para cada binario de resultado con:

binaryname_CXXFLAGS
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top