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 --- examples/Makefile.am | 6 + examples/examples-vc10.sln | 15 + examples/examples-vc11.sln | 15 + examples/examples-vc9.sln | 15 + examples/makefile | 28 +- examples/roundtrip/driver.cxx | 2 +- examples/roundtrip/makefile | 23 +- examples/template/Makefile.am | 13 + examples/template/template-vc10.vcxproj | 167 +++++++++++ examples/template/template-vc10.vcxproj.filters | 20 ++ examples/template/template-vc11.vcxproj | 171 ++++++++++++ examples/template/template-vc11.vcxproj.filters | 20 ++ examples/template/template-vc9.vcproj | 352 ++++++++++++++++++++++++ examples/test.bat | 74 +++++ 14 files changed, 913 insertions(+), 8 deletions(-) create mode 100644 examples/Makefile.am create mode 100644 examples/examples-vc10.sln create mode 100644 examples/examples-vc11.sln create mode 100644 examples/examples-vc9.sln create mode 100644 examples/template/Makefile.am create mode 100644 examples/template/template-vc10.vcxproj create mode 100644 examples/template/template-vc10.vcxproj.filters create mode 100644 examples/template/template-vc11.vcxproj create mode 100644 examples/template/template-vc11.vcxproj.filters create mode 100644 examples/template/template-vc9.vcproj create mode 100644 examples/test.bat (limited to 'examples') diff --git a/examples/Makefile.am b/examples/Makefile.am new file mode 100644 index 0000000..d417a2c --- /dev/null +++ b/examples/Makefile.am @@ -0,0 +1,6 @@ +# file : examples/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/examples/examples-vc10.sln b/examples/examples-vc10.sln new file mode 100644 index 0000000..9a5dc32 --- /dev/null +++ b/examples/examples-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/examples/examples-vc11.sln b/examples/examples-vc11.sln new file mode 100644 index 0000000..436eeea --- /dev/null +++ b/examples/examples-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/examples/examples-vc9.sln b/examples/examples-vc9.sln new file mode 100644 index 0000000..2ec9432 --- /dev/null +++ b/examples/examples-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 diff --git a/examples/makefile b/examples/makefile index 3b9b68f..5f0ae68 100644 --- a/examples/makefile +++ b/examples/makefile @@ -4,14 +4,32 @@ include $(dir $(lastword $(MAKEFILE_LIST)))../build/bootstrap.make -tests := roundtrip +examples := 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))) -$(clean): $(addprefix $(out_base)/,$(addsuffix /.clean,$(tests))) +$(default): $(addprefix $(out_base)/,$(addsuffix /,$(examples))) +$(test): $(addprefix $(out_base)/,$(addsuffix /.test,$(examples))) -$(foreach t,$(tests),$(call import,$(src_base)/$t/makefile)) +$(dist): export dirs := $(examples) +$(dist): export extra_dist := test.bat examples-vc9.sln examples-vc10.sln \ +examples-vc11.sln +$(dist): $(addprefix $(out_base)/,$(addsuffix /.dist,$(examples))) + $(call meta-automake) + $(call meta-vc9sln,examples-vc9.sln) + $(call meta-vc10sln,examples-vc10.sln) + $(call meta-vc11sln,examples-vc11.sln) + $(call meta-vctest,examples-vc9.sln,test.bat) + +$(clean): $(addprefix $(out_base)/,$(addsuffix /.clean,$(examples))) + +$(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,$(examples),$(call import,$(src_base)/$t/makefile)) diff --git a/examples/roundtrip/driver.cxx b/examples/roundtrip/driver.cxx index 5270147..7c95538 100644 --- a/examples/roundtrip/driver.cxx +++ b/examples/roundtrip/driver.cxx @@ -91,7 +91,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/examples/roundtrip/makefile b/examples/roundtrip/makefile index fc7749c..89262ef 100644 --- a/examples/roundtrip/makefile +++ b/examples/roundtrip/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. @@ -29,6 +28,20 @@ $(call include-dep,$(cxx_od)) # $(out_base)/: $(driver) +# Dist +# +$(dist): name := $(subst $(src_root)/examples/,,$(src_base)) +$(dist): sources := $(cxx_tun) +$(dist): extras := README position.xml +$(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. # @@ -57,6 +70,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/examples/template/Makefile.am b/examples/template/Makefile.am new file mode 100644 index 0000000..64e4d1f --- /dev/null +++ b/examples/template/Makefile.am @@ -0,0 +1,13 @@ +# file : examples/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=1; export example; diff --git a/examples/template/template-vc10.vcxproj b/examples/template/template-vc10.vcxproj new file mode 100644 index 0000000..402aa6d --- /dev/null +++ b/examples/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;NDEBUG;_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;NDEBUG;_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/examples/template/template-vc10.vcxproj.filters b/examples/template/template-vc10.vcxproj.filters new file mode 100644 index 0000000..6d459fa --- /dev/null +++ b/examples/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/examples/template/template-vc11.vcxproj b/examples/template/template-vc11.vcxproj new file mode 100644 index 0000000..095038b --- /dev/null +++ b/examples/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;NDEBUG;_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;NDEBUG;_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/examples/template/template-vc11.vcxproj.filters b/examples/template/template-vc11.vcxproj.filters new file mode 100644 index 0000000..6d459fa --- /dev/null +++ b/examples/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/examples/template/template-vc9.vcproj b/examples/template/template-vc9.vcproj new file mode 100644 index 0000000..c4a1d64 --- /dev/null +++ b/examples/template/template-vc9.vcproj @@ -0,0 +1,352 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +__source_entry__(driver.cxx) +__source_entries__(extra_sources) + + +__file_entries__(extra_headers) + + + + + diff --git a/examples/test.bat b/examples/test.bat new file mode 100644 index 0000000..013d820 --- /dev/null +++ b/examples/test.bat @@ -0,0 +1,74 @@ +@echo off +rem file : examples/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 example %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 EXAMPLES 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 -- cgit v1.1