2016-04-13 8 views
0

Ich bin neu in Autotools und ich versuche, gtest Unit Tests zu einem Projekt hinzuzufügen, das Autotools verwendet.Generische SOURCES-Definition in Automake abhängig von anderen Variablen

Ich habe eine einfache Verzeichnisstruktur:
. - Haupt
./src - Quellen
./tests - testet
./paths - git Submodul mit Pfaden

In tests Verzeichnis Ich habe eine CPP-Datei pro getestetem Klasse und mein Makefile.am sieht so aus:

AUTOMAKE_OPTIONS = serial-tests 

AM_CXXFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/paths -DUNIT_TEST 
AM_LDFLAGS = -pthread 
LDADD = -lgtest -lgtest_main 

TESTS = test_networkconfig test_dummy ### depending on content of this variable 
check_PROGRAMS = $(TESTS) 

test_networkconfig_SOURCES = test_networkconfig.cpp    ### generate this 
test_networkconfig_LDADD = $(top_srcdir)/src/networkconfig.o \ 
          -lgtest \ 
          -lgtest_main 

test_networkconfig_CPPFLAGS = $(somelibrary_CFLAGS) 

test_dummy_SOURCES = test_dummy.cpp       ### and this variable 

Ich möchte automatisch generieren:

test_networkconfig_SOURCES = test_networkconfig.cpp 
test_dummy_SOURCES = test_dummy.cpp 

Gibt es eine Möglichkeit, eine Variable <some_name>_SOURCES = <some_name>.cpp für jeden Wert zu schaffen, die durch TESTS Variable gehalten wird?

Antwort

1

In Automake können Sie dies nur in begrenztem Umfang tun. Insbesondere wird für ein Programm P, falls P_SOURCES nicht definiert ist, Automake einen Standardwert mit dem Programmnamen und dem Wert AM_DEFAULT_SOURCE_EXT (standardmäßig .c) berechnen.

So in Ihrem Fall:

AM_DEFAULT_SOURCE_EXT = .cpp 

sollte es tun.

Verwandte Themen