From 871082dc018815261b6ec75a8e4933505389ffae Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Tue, 29 Apr 2014 08:29:49 +0200 Subject: Support for autotools and VC++ 9, 10, 11 build systems --- tests/Makefile.am | 6 + tests/makefile | 18 ++ tests/parser/driver.cxx | 22 +- tests/parser/makefile | 25 +- tests/roundtrip/driver.cxx | 2 +- tests/roundtrip/makefile | 35 ++- tests/serializer/driver.cxx | 8 +- tests/serializer/makefile | 23 +- tests/template/Makefile.am | 15 ++ tests/template/template-vc10.vcxproj | 167 +++++++++++++ tests/template/template-vc10.vcxproj.filters | 20 ++ tests/template/template-vc11.vcxproj | 171 +++++++++++++ tests/template/template-vc11.vcxproj.filters | 20 ++ tests/template/template-vc9.vcproj | 352 +++++++++++++++++++++++++++ tests/test.bat | 74 ++++++ tests/tests-vc10.sln | 15 ++ tests/tests-vc11.sln | 15 ++ tests/tests-vc9.sln | 15 ++ 18 files changed, 980 insertions(+), 23 deletions(-) create mode 100644 tests/Makefile.am create mode 100644 tests/template/Makefile.am create mode 100644 tests/template/template-vc10.vcxproj create mode 100644 tests/template/template-vc10.vcxproj.filters create mode 100644 tests/template/template-vc11.vcxproj create mode 100644 tests/template/template-vc11.vcxproj.filters create mode 100644 tests/template/template-vc9.vcproj create mode 100644 tests/test.bat create mode 100644 tests/tests-vc10.sln create mode 100644 tests/tests-vc11.sln create mode 100644 tests/tests-vc9.sln (limited to 'tests') diff --git a/tests/Makefile.am b/tests/Makefile.am new file mode 100644 index 0000000..b6eaad8 --- /dev/null +++ b/tests/Makefile.am @@ -0,0 +1,6 @@ +# file : tests/Makefile.am +# copyright : Copyright (c) 2009-2013 Code Synthesis Tools CC +# license : MIT; see accompanying LICENSE file + +SUBDIRS = __path__(dirs) +EXTRA_DIST = __file__(extra_dist) diff --git a/tests/makefile b/tests/makefile index 5baca3a..fb0821c 100644 --- a/tests/makefile +++ b/tests/makefile @@ -8,10 +8,28 @@ tests := parser serializer roundtrip default := $(out_base)/ test := $(out_base)/.test +dist := $(out_base)/.dist clean := $(out_base)/.clean $(default): $(addprefix $(out_base)/,$(addsuffix /,$(tests))) $(test): $(addprefix $(out_base)/,$(addsuffix /.test,$(tests))) + +$(dist): export dirs := $(tests) +$(dist): export extra_dist := test.bat tests-vc9.sln tests-vc10.sln \ +tests-vc11.sln +$(dist): $(addprefix $(out_base)/,$(addsuffix /.dist,$(tests))) + $(call meta-automake) + $(call meta-vc9sln,tests-vc9.sln) + $(call meta-vc10sln,tests-vc10.sln) + $(call meta-vc11sln,tests-vc11.sln) + $(call meta-vctest,tests-vc9.sln,test.bat) + $(clean): $(addprefix $(out_base)/,$(addsuffix /.clean,$(tests))) +$(call include,$(bld_root)/meta/vc9sln.make) +$(call include,$(bld_root)/meta/vc10sln.make) +$(call include,$(bld_root)/meta/vc11sln.make) +$(call include,$(bld_root)/meta/vctest.make) +$(call include,$(bld_root)/meta/automake.make) + $(foreach t,$(tests),$(call import,$(src_base)/$t/makefile)) diff --git a/tests/parser/driver.cxx b/tests/parser/driver.cxx index e949ad0..bdad9bf 100644 --- a/tests/parser/driver.cxx +++ b/tests/parser/driver.cxx @@ -2,6 +2,10 @@ // copyright : Copyright (c) 2009-2013 Code Synthesis Tools CC // license : MIT; see accompanying LICENSE file +#ifdef NDEBUG +# error tests require enabled assert(); un-define the NDEBUG macro +#endif + #include #include #include @@ -28,7 +32,7 @@ main () p.next (); assert (false); } - catch (const xml::exception& e) + catch (const xml::exception&) { // cerr << e.what () << endl; } @@ -43,7 +47,7 @@ main () p.next (); assert (false); } - catch (const ios_base::failure& e) + catch (const ios_base::failure&) { } @@ -63,7 +67,7 @@ main () p.next_expect (parser::end_element); assert (false); } - catch (const xml::exception& e) + catch (const xml::exception&) { // cerr << e.what () << endl; } @@ -75,7 +79,7 @@ main () p.next_expect (parser::start_element, "root1"); assert (false); } - catch (const xml::exception& e) + catch (const xml::exception&) { // cerr << e.what () << endl; } @@ -127,7 +131,7 @@ main () p.next_expect (parser::end_element); assert (false); } - catch (const xml::exception& e) + catch (const xml::exception&) { // cerr << e.what () << endl; } @@ -140,7 +144,7 @@ main () p.attribute ("a"); assert (false); } - catch (const xml::exception& e) + catch (const xml::exception&) { // cerr << e.what () << endl; } @@ -220,7 +224,7 @@ main () p.next (); assert (false); } - catch (const xml::exception& e) + catch (const xml::exception&) { // cerr << e.what () << endl; } @@ -249,7 +253,7 @@ main () p.next (); assert (false); } - catch (const xml::exception& e) + catch (const xml::exception&) { // cerr << e.what () << endl; } @@ -302,7 +306,7 @@ main () p.next (); assert (false); } - catch (const xml::exception& e) + catch (const xml::exception&) { // cerr << e.what () << endl; } diff --git a/tests/parser/makefile b/tests/parser/makefile index 965266e..8b97633 100644 --- a/tests/parser/makefile +++ b/tests/parser/makefile @@ -6,8 +6,6 @@ include $(dir $(lastword $(MAKEFILE_LIST)))../../build/bootstrap.make cxx_tun := driver.cxx -# -# cxx_obj := $(addprefix $(out_base)/,$(cxx_tun:.cxx=.o)) cxx_od := $(cxx_obj:.o=.o.d) @@ -16,6 +14,7 @@ studxml.l.cpp-options := $(out_root)/xml/studxml.l.cpp-options driver := $(out_base)/driver test := $(out_base)/.test +dist := $(out_base)/.dist clean := $(out_base)/.clean # Build. @@ -23,14 +22,26 @@ clean := $(out_base)/.clean $(driver): $(cxx_obj) $(studxml.l) $(cxx_obj) $(cxx_od): $(studxml.l.cpp-options) - $(call include-dep,$(cxx_od)) - # Alias for default target. # $(out_base)/: $(driver) +# Dist +# +$(dist): name := $(subst $(src_root)/tests/,,$(src_base)) +$(dist): sources := $(cxx_tun) +$(dist): export extra_dist := $(name)-vc9.vcproj \ +$(name)-vc10.vcxproj $(name)-vc10.vcxproj.filters \ +$(name)-vc11.vcxproj $(name)-vc11.vcxproj.filters +$(dist): + $(call dist-data,$(sources)) + $(call meta-automake,../template/Makefile.am) + $(call meta-vc9proj,../template/template-vc9.vcproj,$(name)-vc9.vcproj) + $(call meta-vc10proj,../template/template-vc10.vcxproj,$(name)-vc10.vcxproj) + $(call meta-vc11proj,../template/template-vc11.vcxproj,$(name)-vc11.vcxproj) + # Test. # @@ -60,6 +71,12 @@ endif # How to. # +$(call include,$(bld_root)/dist.make) +$(call include,$(bld_root)/meta/vc9proj.make) +$(call include,$(bld_root)/meta/vc10proj.make) +$(call include,$(bld_root)/meta/vc11proj.make) +$(call include,$(bld_root)/meta/automake.make) + $(call include,$(bld_root)/cxx/o-e.make) $(call include,$(bld_root)/cxx/cxx-o.make) $(call include,$(bld_root)/cxx/cxx-d.make) diff --git a/tests/roundtrip/driver.cxx b/tests/roundtrip/driver.cxx index 904f5af..2e076c5 100644 --- a/tests/roundtrip/driver.cxx +++ b/tests/roundtrip/driver.cxx @@ -113,7 +113,7 @@ main (int argc, char* argv[]) } } } - catch (const ios_base::failure& e) + catch (const ios_base::failure&) { cerr << "io failure" << endl; return 1; diff --git a/tests/roundtrip/makefile b/tests/roundtrip/makefile index 4177057..00b78b8 100644 --- a/tests/roundtrip/makefile +++ b/tests/roundtrip/makefile @@ -6,6 +6,13 @@ include $(dir $(lastword $(MAKEFILE_LIST)))../../build/bootstrap.make cxx_tun := driver.cxx +tests := \ +attribute.xml \ +namespace.xml \ +followup-1.xml \ +followup-2.xml \ +characters.xml + # # cxx_obj := $(addprefix $(out_base)/,$(cxx_tun:.cxx=.o)) @@ -16,6 +23,7 @@ studxml.l.cpp-options := $(out_root)/xml/studxml.l.cpp-options driver := $(out_base)/driver test := $(out_base)/.test +dist := $(out_base)/.dist clean := $(out_base)/.clean # Build. @@ -23,20 +31,31 @@ clean := $(out_base)/.clean $(driver): $(cxx_obj) $(studxml.l) $(cxx_obj) $(cxx_od): $(studxml.l.cpp-options) - $(call include-dep,$(cxx_od)) - # Alias for default target. # $(out_base)/: $(driver) -# Test. +# Dist # -$(test): tests := attribute.xml namespace.xml followup-1.xml followup-2.xml \ -characters.xml +$(dist): name := $(subst $(src_root)/tests/,,$(src_base)) +$(dist): sources := $(cxx_tun) +$(dist): extras := $(tests) +$(dist): export extra_dist := $(extras) $(name)-vc9.vcproj \ +$(name)-vc10.vcxproj $(name)-vc10.vcxproj.filters \ +$(name)-vc11.vcxproj $(name)-vc11.vcxproj.filters +$(dist): + $(call dist-data,$(sources) $(extras)) + $(call meta-automake,../template/Makefile.am) + $(call meta-vc9proj,../template/template-vc9.vcproj,$(name)-vc9.vcproj) + $(call meta-vc10proj,../template/template-vc10.vcxproj,$(name)-vc10.vcxproj) + $(call meta-vc11proj,../template/template-vc11.vcxproj,$(name)-vc11.vcxproj) +# Test. +# +$(test): tests := $(tests) $(test): test_body = $(call message,test $< $1,$< $(src_base)/$1 >$(out_base)/test.out)$(literal_newline)\ $(literal_tab)$(call message,,diff -u $(src_base)/$1 $(out_base)/test.out)$(literal_newline)\ $(literal_tab)$(call message,,rm -f $(out_base)/test.out)$(literal_newline) @@ -65,6 +84,12 @@ endif # How to. # +$(call include,$(bld_root)/dist.make) +$(call include,$(bld_root)/meta/vc9proj.make) +$(call include,$(bld_root)/meta/vc10proj.make) +$(call include,$(bld_root)/meta/vc11proj.make) +$(call include,$(bld_root)/meta/automake.make) + $(call include,$(bld_root)/cxx/o-e.make) $(call include,$(bld_root)/cxx/cxx-o.make) $(call include,$(bld_root)/cxx/cxx-d.make) diff --git a/tests/serializer/driver.cxx b/tests/serializer/driver.cxx index 8d8fad1..b112d1b 100644 --- a/tests/serializer/driver.cxx +++ b/tests/serializer/driver.cxx @@ -2,6 +2,10 @@ // copyright : Copyright (c) 2009-2013 Code Synthesis Tools CC // license : MIT; see accompanying LICENSE file +#ifdef NDEBUG +# error tests require enabled assert(); un-define the NDEBUG macro +#endif + #include #include #include @@ -25,7 +29,7 @@ main () s.attribute ("foo", "bar"); assert (false); } - catch (const xml::exception& e) + catch (const xml::exception&) { // cerr << e.what () << endl; } @@ -42,7 +46,7 @@ main () s.characters ("two"); assert (false); } - catch (const ios_base::failure& e) + catch (const ios_base::failure&) { } diff --git a/tests/serializer/makefile b/tests/serializer/makefile index 5ff27e4..bf21b7f 100644 --- a/tests/serializer/makefile +++ b/tests/serializer/makefile @@ -16,6 +16,7 @@ studxml.l.cpp-options := $(out_root)/xml/studxml.l.cpp-options driver := $(out_base)/driver test := $(out_base)/.test +dist := $(out_base)/.dist clean := $(out_base)/.clean # Build. @@ -23,14 +24,26 @@ clean := $(out_base)/.clean $(driver): $(cxx_obj) $(studxml.l) $(cxx_obj) $(cxx_od): $(studxml.l.cpp-options) - $(call include-dep,$(cxx_od)) - # Alias for default target. # $(out_base)/: $(driver) +# Dist +# +$(dist): name := $(subst $(src_root)/tests/,,$(src_base)) +$(dist): sources := $(cxx_tun) +$(dist): export extra_dist := $(name)-vc9.vcproj \ +$(name)-vc10.vcxproj $(name)-vc10.vcxproj.filters \ +$(name)-vc11.vcxproj $(name)-vc11.vcxproj.filters +$(dist): + $(call dist-data,$(sources)) + $(call meta-automake,../template/Makefile.am) + $(call meta-vc9proj,../template/template-vc9.vcproj,$(name)-vc9.vcproj) + $(call meta-vc10proj,../template/template-vc10.vcxproj,$(name)-vc10.vcxproj) + $(call meta-vc11proj,../template/template-vc11.vcxproj,$(name)-vc11.vcxproj) + # Test. # @@ -60,6 +73,12 @@ endif # How to. # +$(call include,$(bld_root)/dist.make) +$(call include,$(bld_root)/meta/vc9proj.make) +$(call include,$(bld_root)/meta/vc10proj.make) +$(call include,$(bld_root)/meta/vc11proj.make) +$(call include,$(bld_root)/meta/automake.make) + $(call include,$(bld_root)/cxx/o-e.make) $(call include,$(bld_root)/cxx/cxx-o.make) $(call include,$(bld_root)/cxx/cxx-d.make) diff --git a/tests/template/Makefile.am b/tests/template/Makefile.am new file mode 100644 index 0000000..9d198f1 --- /dev/null +++ b/tests/template/Makefile.am @@ -0,0 +1,15 @@ +# file : tests/template/Makefile.am +# copyright : not copyrighted - public domain + +EXTRA_DIST = __file__(extra_dist) + +noinst_PROGRAMS = driver +driver_SOURCES = driver.cxx __path__(extra_sources) __path__(extra_headers) +LDADD = $(top_builddir)/xml/libstudxml.la + +AM_CPPFLAGS = -I'$(top_builddir)' -I'$(top_srcdir)' + +TESTS=$(top_builddir)/tester +TESTS_ENVIRONMENT=example=; export example; + +CLEANFILES = test.out diff --git a/tests/template/template-vc10.vcxproj b/tests/template/template-vc10.vcxproj new file mode 100644 index 0000000..f1849bd --- /dev/null +++ b/tests/template/template-vc10.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {__uuid__()} + Win32Proj + __value__(name) + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\ + driver + + + true + $(Platform)\$(Configuration)\ + driver + + + false + $(Configuration)\ + driver + + + false + $(Platform)\$(Configuration)\ + driver + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + $(SolutionDir)\.. + 4068;4355;4800;4290;%(DisableSpecificWarnings) + + + $(SolutionDir)\..\lib\studxml-d.lib;%(AdditionalDependencies) + Console + true + + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + $(SolutionDir)\.. + 4068;4355;4800;4290;%(DisableSpecificWarnings) + + + $(SolutionDir)\..\lib64\studxml-d.lib;%(AdditionalDependencies) + Console + true + + + + + Level3 + + + MaxSpeed + true + true + WIN32;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + $(SolutionDir)\.. + 4068;4355;4800;4290;%(DisableSpecificWarnings) + + + $(SolutionDir)\..\lib\studxml.lib;%(AdditionalDependencies) + Console + true + true + true + + + + + Level3 + + + MaxSpeed + true + true + WIN32;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + $(SolutionDir)\.. + 4068;4355;4800;4290;%(DisableSpecificWarnings) + + + $(SolutionDir)\..\lib64\studxml.lib;%(AdditionalDependencies) + Console + true + true + true + + + +__header_entries__(extra_headers) + + +__source_entry__(driver.cxx) +__source_entries__(extra_sources) + + + + + diff --git a/tests/template/template-vc10.vcxproj.filters b/tests/template/template-vc10.vcxproj.filters new file mode 100644 index 0000000..6d459fa --- /dev/null +++ b/tests/template/template-vc10.vcxproj.filters @@ -0,0 +1,20 @@ + + + + + {__uuid__()} + cxx + + + {__uuid__()} + h;hxx;ixx;txx + + + +__header_filter_entries__(extra_headers) + + +__source_filter_entry__(driver.cxx) +__source_filter_entries__(extra_sources) + + diff --git a/tests/template/template-vc11.vcxproj b/tests/template/template-vc11.vcxproj new file mode 100644 index 0000000..dd43663 --- /dev/null +++ b/tests/template/template-vc11.vcxproj @@ -0,0 +1,171 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {__uuid__()} + Win32Proj + __value__(name) + + + + Application + true + v110 + Unicode + + + Application + true + v110 + Unicode + + + Application + false + v110 + true + Unicode + + + Application + false + v110 + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\ + driver + + + true + $(Platform)\$(Configuration)\ + driver + + + false + $(Configuration)\ + driver + + + false + $(Platform)\$(Configuration)\ + driver + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + $(SolutionDir)\.. + 4068;4355;4800;4290;%(DisableSpecificWarnings) + + + $(SolutionDir)\..\lib\studxml-d.lib;%(AdditionalDependencies) + Console + true + + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + $(SolutionDir)\.. + 4068;4355;4800;4290;%(DisableSpecificWarnings) + + + $(SolutionDir)\..\lib64\studxml-d.lib;%(AdditionalDependencies) + Console + true + + + + + Level3 + + + MaxSpeed + true + true + WIN32;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + $(SolutionDir)\.. + 4068;4355;4800;4290;%(DisableSpecificWarnings) + + + $(SolutionDir)\..\lib\studxml.lib;%(AdditionalDependencies) + Console + true + true + true + + + + + Level3 + + + MaxSpeed + true + true + WIN32;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + $(SolutionDir)\.. + 4068;4355;4800;4290;%(DisableSpecificWarnings) + + + $(SolutionDir)\..\lib64\studxml.lib;%(AdditionalDependencies) + Console + true + true + true + + + +__header_entries__(extra_headers) + + +__source_entry__(driver.cxx) +__source_entries__(extra_sources) + + + + + diff --git a/tests/template/template-vc11.vcxproj.filters b/tests/template/template-vc11.vcxproj.filters new file mode 100644 index 0000000..6d459fa --- /dev/null +++ b/tests/template/template-vc11.vcxproj.filters @@ -0,0 +1,20 @@ + + + + + {__uuid__()} + cxx + + + {__uuid__()} + h;hxx;ixx;txx + + + +__header_filter_entries__(extra_headers) + + +__source_filter_entry__(driver.cxx) +__source_filter_entries__(extra_sources) + + diff --git a/tests/template/template-vc9.vcproj b/tests/template/template-vc9.vcproj new file mode 100644 index 0000000..2a95903 --- /dev/null +++ b/tests/template/template-vc9.vcproj @@ -0,0 +1,352 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +__source_entry__(driver.cxx) +__source_entries__(extra_sources) + + +__file_entries__(extra_headers) + + + + + diff --git a/tests/test.bat b/tests/test.bat new file mode 100644 index 0000000..50e06d8 --- /dev/null +++ b/tests/test.bat @@ -0,0 +1,74 @@ +@echo off +rem file : tests/test.bat +rem copyright : Copyright (c) 2009-2013 Code Synthesis Tools CC +rem license : MIT; see accompanying LICENSE file + +setlocal + +set "tests=__path__(dirs)" +set "confs=__path__(configurations)" +set "plats=__path__(platforms)" +set "curdir=%CD%" +set "topdir=%curdir%\.." +set "failed=" + +goto start + +rem +rem %1 - test directory +rem %2 - configuration +rem %3 - platform +rem +:run_test + cd %1 + + if "_%3_" == "_Win32_" ( + set "dir=%2" + ) else ( + set "dir=%3\%2" + ) + + if exist %dir%\driver.exe ( + echo %1\%3\%2 + call %topdir%\tester.bat test %2 %3 + if errorlevel 1 ( + set "failed=%failed% %1\%3\%2" + ) + ) + + cd %curdir% +goto :eof + +:start + +for %%t in (%tests%) do ( + for %%c in (%confs%) do ( + for %%p in (%plats%) do ( + call :run_test %%t %%c %%p + ) + ) +) + +if not "_%failed%_" == "__" goto error + +echo. +echo ALL TESTS PASSED +echo. +goto end + +:usage +echo. +echo usage: test.bat +echo. + +:error +if not "_%failed%_" == "__" ( + echo. + for %%t in (%failed%) do echo FAILED: %%t + echo. +) +endlocal +exit /b 1 + +:end +endlocal diff --git a/tests/tests-vc10.sln b/tests/tests-vc10.sln new file mode 100644 index 0000000..9a5dc32 --- /dev/null +++ b/tests/tests-vc10.sln @@ -0,0 +1,15 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +__projects__ +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution +__solution_configurations__ + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution +__project_configurations__ + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/tests/tests-vc11.sln b/tests/tests-vc11.sln new file mode 100644 index 0000000..436eeea --- /dev/null +++ b/tests/tests-vc11.sln @@ -0,0 +1,15 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +__projects__ +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution +__solution_configurations__ + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution +__project_configurations__ + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/tests/tests-vc9.sln b/tests/tests-vc9.sln new file mode 100644 index 0000000..2ec9432 --- /dev/null +++ b/tests/tests-vc9.sln @@ -0,0 +1,15 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +__projects__ +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution +__solution_configurations__ + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution +__project_configurations__ + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal -- cgit v1.1