From 5aa48fc52202fd95210d8860b66769550732a5d9 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Tue, 17 Jul 2012 15:16:34 +0200 Subject: Add support for tests with multiple ODB headers --- build/bootstrap.make | 4 ++++ common/circular/multiple/makefile | 7 ++++--- common/circular/single/makefile | 6 +++--- common/template/Makefile.am | 23 ++++++++++++--------- common/template/template-vc10.vcxproj | 29 ++++++++++++++++----------- common/template/template-vc10.vcxproj.filters | 20 ++++++++++-------- common/template/template-vc9.vcproj | 21 ++++++++++--------- 7 files changed, 66 insertions(+), 44 deletions(-) diff --git a/build/bootstrap.make b/build/bootstrap.make index d4e5049..507ce08 100644 --- a/build/bootstrap.make +++ b/build/bootstrap.make @@ -44,6 +44,10 @@ clean: $(out_base)/.clean endif +# By default the ODB header is called test.hxx. +# +$(out_base)/.dist: export odb_header_stem := test + # Database schema creation. # ifeq ($(filter $(db_id),sqlite),) diff --git a/common/circular/multiple/makefile b/common/circular/multiple/makefile index 82a0bae..abd72e7 100644 --- a/common/circular/multiple/makefile +++ b/common/circular/multiple/makefile @@ -58,13 +58,14 @@ $(dist): sources := $(cxx_tun) $(dist): headers := $(odb_hdr) $(dist): data_dist := test.std $(dist): export name := $(name) +$(dist): export odb_header_stem := $(basename $(odb_hdr)) $(dist): export extra_dist := $(data_dist) $(call vc9projs,$(name)) \ $(call vc10projs,$(name)) $(dist): $(call dist-data,$(sources) $(headers) $(data_dist)) - $(call meta-automake,../template/Makefile.am) - $(call meta-vc9projs,../template/template,$(name)) - $(call meta-vc10projs,../template/template,$(name)) + $(call meta-automake,../../template/Makefile.am) + $(call meta-vc9projs,../../template/template,$(name)) + $(call meta-vc10projs,../../template/template,$(name)) # Test. # diff --git a/common/circular/single/makefile b/common/circular/single/makefile index e1677d4..1fcfdb0 100644 --- a/common/circular/single/makefile +++ b/common/circular/single/makefile @@ -58,9 +58,9 @@ $(dist): export extra_dist := $(data_dist) $(call vc9projs,$(name)) \ $(call vc10projs,$(name)) $(dist): $(call dist-data,$(sources) $(headers) $(data_dist)) - $(call meta-automake,../template/Makefile.am) - $(call meta-vc9projs,../template/template,$(name)) - $(call meta-vc10projs,../template/template,$(name)) + $(call meta-automake,../../template/Makefile.am) + $(call meta-vc9projs,../../template/template,$(name)) + $(call meta-vc10projs,../../template/template,$(name)) # Test. # diff --git a/common/template/Makefile.am b/common/template/Makefile.am index 4478502..0aa8f83 100644 --- a/common/template/Makefile.am +++ b/common/template/Makefile.am @@ -13,15 +13,9 @@ AM_CPPFLAGS += -I'$(builddir)' -I'$(srcdir)' TESTS=$(top_builddir)/tester TESTS_ENVIRONMENT=top_builddir=$(top_builddir); export top_builddir; -m4_ifelse(__value__(odb_options),,, - +__ifelse__(__value__(odb_options),,, # ODB compilation. # -driver_SOURCES += test.hxx -nodist_driver_SOURCES = test-odb.cxx -BUILT_SOURCES = test-odb.hxx -CLEANFILES = test-odb.hxx test-odb.ixx test-odb.cxx - ODB = @ODB@ ODBFLAGS = @ODBFLAGS@ ODBCPPFLAGS = @ODBCPPFLAGS@ @@ -30,6 +24,17 @@ if HAVE_CXX11 ODBFLAGS += --std c++11 endif -test-odb.hxx: test.hxx +nodist_driver_SOURCES = +BUILT_SOURCES = +CLEANFILES = + +__foreach_w__(__f,__path__(odb_header_stem), +driver_SOURCES += __f.hxx +nodist_driver_SOURCES += __f-odb.cxx +BUILT_SOURCES += __f-odb.hxx +CLEANFILES += __f-odb.hxx __f-odb.ixx __f-odb.cxx + +__f-odb.hxx: __f.hxx $(ODB) $(AM_CPPFLAGS) $(ODBCPPFLAGS) $(CPPFLAGS) $(ODBFLAGS) __value__(odb_options) $< -) + +)) diff --git a/common/template/template-vc10.vcxproj b/common/template/template-vc10.vcxproj index 5666584..c1229ea 100644 --- a/common/template/template-vc10.vcxproj +++ b/common/template/template-vc10.vcxproj @@ -154,25 +154,30 @@ true -m4_ifelse(__value__(odb_options),,, +__ifelse__(__value__(odb_options),,, m4_dnl -__custom_build_entry__( -test.hxx, -odb test.hxx, -odb.exe --std c++11 __xml__(__shell_quotes__(m4_patsubst(__value__(odb_options), @database@, __value__(database)) -DHAVE_CONFIG_VC_H -DODB_MSC_VER=1600 -I$(SolutionDir)\..\libcommon)) test.hxx, -test-odb.hxx;test-odb.ixx;test-odb.cxx) + __foreach_w__(__f,__path__(odb_header_stem), + __custom_build_entry__( +__f.hxx, +odb __f.hxx, +odb.exe --std c++11 __xml__(__shell_quotes__(m4_patsubst(__value__(odb_options), @database@, __value__(database)) -DHAVE_CONFIG_VC_H -DODB_MSC_VER=1600 -I$(SolutionDir)\..\libcommon)) __f.hxx, +__f-odb.hxx;__f-odb.ixx;__f-odb.cxx) +) ) -m4_ifelse(__value__(odb_options),,, -__header_entry__(test-odb.hxx) -__header_entry__(test-odb.ixx)) -__header_entries__(extra_headers) +__ifelse__(__value__(odb_options),,, + __foreach_w__(__f,__path__(odb_header_stem), +__header_entry__(__f-odb.hxx) +__header_entry__(__f-odb.ixx) +))__header_entries__(extra_headers) __source_entry__(driver.cxx) -m4_ifelse(__value__(odb_options),,,__source_entry__(test-odb.cxx)) -__source_entries__(extra_sources) +__ifelse__(__value__(odb_options),,, + __foreach_w__(__f,__path__(odb_header_stem), +__source_entry__(__f-odb.cxx) +))__source_entries__(extra_sources) diff --git a/common/template/template-vc10.vcxproj.filters b/common/template/template-vc10.vcxproj.filters index f3ee658..3460ffd 100644 --- a/common/template/template-vc10.vcxproj.filters +++ b/common/template/template-vc10.vcxproj.filters @@ -1,4 +1,4 @@ - + @@ -11,14 +11,18 @@ -__header_filter_entry__(test.hxx) -__header_filter_entry__(test-odb.hxx) -__header_filter_entry__(test-odb.ixx) -__header_filter_entries__(extra_headers) +__ifelse__(__value__(odb_options),,, + __foreach_w__(__f,__path__(odb_header_stem), +__header_filter_entry__(__f.hxx) +__header_filter_entry__(__f-odb.hxx) +__header_filter_entry__(__f-odb.ixx) +))__header_filter_entries__(extra_headers) __source_filter_entry__(driver.cxx) -__source_filter_entry__(test-odb.cxx) -__source_filter_entries__(extra_sources) +__ifelse__(__value__(odb_options),,, + __foreach_w__(__f,__path__(odb_header_stem), +__source_filter_entry__(__f-odb.cxx) +))__source_filter_entries__(extra_sources) - \ No newline at end of file + diff --git a/common/template/template-vc9.vcproj b/common/template/template-vc9.vcproj index caf7201..a09174c 100644 --- a/common/template/template-vc9.vcproj +++ b/common/template/template-vc9.vcproj @@ -337,7 +337,9 @@ UniqueIdentifier="{__uuid__()}" > __source_entry__(driver.cxx) -m4_ifelse(__value__(odb_options),,,__source_entry__(test-odb.cxx)) +__ifelse__(__value__(odb_options),,, + __foreach_w__(__f,__path__(odb_header_stem), + __source_entry__(__f-odb.cxx))) __source_entries__(extra_sources) -m4_ifelse(__value__(odb_options),,, -__file_entry_custom_build__( -test.hxx, -odb test.hxx, -odb.exe __xml__(__shell_quotes__(m4_patsubst(__value__(odb_options), @database@, __value__(database)) -DHAVE_CONFIG_VC_H -DODB_MSC_VER=1500 -I$(SolutionDir)\..\libcommon)) test.hxx, -test-odb.hxx;test-odb.ixx;test-odb.cxx) -__file_entry__(test-odb.hxx) -__file_entry__(test-odb.ixx)) +__ifelse__(__value__(odb_options),,, + __foreach_w__(__f,__path__(odb_header_stem), + __file_entry_custom_build__( +__f.hxx, +odb __f.hxx, +odb.exe __xml__(__shell_quotes__(m4_patsubst(__value__(odb_options), @database@, __value__(database)) -DHAVE_CONFIG_VC_H -DODB_MSC_VER=1500 -I$(SolutionDir)\..\libcommon)) __f.hxx, +__f-odb.hxx;__f-odb.ixx;__f-odb.cxx) +__file_entry__(__f-odb.hxx) +__file_entry__(__f-odb.ixx))) __file_entries__(extra_headers) -- cgit v1.1