我是Autotools的新手,我正在尝试将gtest单元测试添加到使用Autotools的项目中。
我有一个简单的目录结构:
.
- 主要
./src
- 来源
./tests
- 测试
./paths
- 带路径的git子模块
在tests
目录中,每个测试类都有一个cpp文件,我的Makefile.am
看起来像这样:
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
我想自动生成:
test_networkconfig_SOURCES = test_networkconfig.cpp
test_dummy_SOURCES = test_dummy.cpp
有没有办法为<some_name>_SOURCES = <some_name>.cpp
变量保存的每个值创建变量TESTS
?
答案 0 :(得分:1)
在Automake中,您只能以有限的方式执行此操作。特别是,对于程序ogrinfo -ro -al communes-20150101-100m.shp -geom=NO | grep insee > list_code_insee.txt
,如果未定义P
,则Automake将使用程序名称和P_SOURCES
的值计算默认值(默认为AM_DEFAULT_SOURCE_EXT
)
所以在你的情况下:
.c
应该这样做。