diff --git a/Makefile.am b/Makefile.am index 6e6b6ec2..a0c3e9cf 100644 --- a/Makefile.am +++ b/Makefile.am @@ -178,4 +178,12 @@ EXTRA_DIST += \ scripts/generator/cpp/utils.py \ scripts/generator/gmock_gen.py -# TODO(wan@google.com): add the MSVC projects to EXTRA_DIST. +# Microsoft Visual Studio 2005 projects. +EXTRA_DIST += \ + msvc/gmock.sln \ + msvc/gmock.vcproj \ + msvc/gmock_config.vsprops \ + msvc/gmock_link_test.vcproj \ + msvc/gmock_main.vcproj \ + msvc/gmock_output_test_.vcproj \ + msvc/gmock_test.vcproj diff --git a/README b/README index 0f382147..77610e28 100644 --- a/README +++ b/README @@ -178,9 +178,39 @@ TODO(chandlerc@google.com): Fixes the above instructions to match the actual implementation. ### Windows ### -We don't have the Visual Studio project files for Google Mock ready -yet. Please see the next two sections on how you can integrate Google -Mock into your project's build system. +The msvc/ directory contains VC++ 2005 projects for building Google Mock and +selected tests. In order to build Google Mock you must have an implementation +of TR1 tuple. One library that provides such implementation is Boost. If you +choose to use Boost, download it from www.boost.org and install it on your +system. After that you have two options: either configure Boost as a system +library or modify the Google Mock project to point to your copy of Boost. The +former solution will let all your tests use the same copy of Boost while the +latter one will let each of your projects use its own copy of Boost. You can +also use a hybrid solution: your project settings will override the system-wide +one. + +For example, if you unpacked boost v1.36.0 into C:\boost: +To configure Boost as a system library. + * Assuming you are using the Visual Studio 2008 IDE, select Tools | + Options | Projects And Solutions | VC++ Directories. + * In the "Show directories for" drop-down select Include Files. Add + * C:\boost\boost_1_36_0\boost\tr1\tr1 and C:\boost\boost_1_36_0 + to the list of directories. + +To configure your project to point to that version of Boost, replace +the value of the BoostDir user macro with C:\boost\boost_1_36_0 in the +msvc/gtest_dep.vsprops file. You can use any text editor to edit that file. + +If you want to use a version of Google Test other then the one bundled with +Google Mock, change the value of the GTestDir macro in gmock_config.vsprop +to point to the new location. + +After configuring Boost, just open msvc/gmock.sln and build the library and +tests. If you want to create your own project to use with Google Mock, you'll +have to configure it to use the gmock_config propety sheet. For that: + * Open the Property Manager window (View/Other Windows/Property Manager) + * Right-click on your project and select "Add Existing Property Sheet..." + * Navigate to gmock_config.vsprops and select it. ### Using GNU Make ### The make/ directory contains a Makefile that you can use to build diff --git a/msvc/gmock.sln b/msvc/gmock.sln new file mode 100755 index 00000000..d084ee71 --- /dev/null +++ b/msvc/gmock.sln @@ -0,0 +1,44 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gmock", "gmock.vcproj", "{34681F0D-CE45-415D-B5F2-5C662DFE3BD5}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gmock_test", "gmock_test.vcproj", "{F10D22F8-AC7B-4213-8720-608E7D878CD2}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gmock_link_test", "gmock_link_test.vcproj", "{ED597847-A714-4327-B569-70029D2311F0}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gmock_output_test_", "gmock_output_test_.vcproj", "{EDCE4C87-C2C0-4D22-98AC-7B6466F89A15}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gmock_main", "gmock_main.vcproj", "{E4EF614B-30DF-4954-8C53-580A0BF6B589}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {34681F0D-CE45-415D-B5F2-5C662DFE3BD5}.Debug|Win32.ActiveCfg = Debug|Win32 + {34681F0D-CE45-415D-B5F2-5C662DFE3BD5}.Debug|Win32.Build.0 = Debug|Win32 + {34681F0D-CE45-415D-B5F2-5C662DFE3BD5}.Release|Win32.ActiveCfg = Release|Win32 + {34681F0D-CE45-415D-B5F2-5C662DFE3BD5}.Release|Win32.Build.0 = Release|Win32 + {F10D22F8-AC7B-4213-8720-608E7D878CD2}.Debug|Win32.ActiveCfg = Debug|Win32 + {F10D22F8-AC7B-4213-8720-608E7D878CD2}.Debug|Win32.Build.0 = Debug|Win32 + {F10D22F8-AC7B-4213-8720-608E7D878CD2}.Release|Win32.ActiveCfg = Release|Win32 + {F10D22F8-AC7B-4213-8720-608E7D878CD2}.Release|Win32.Build.0 = Release|Win32 + {ED597847-A714-4327-B569-70029D2311F0}.Debug|Win32.ActiveCfg = Debug|Win32 + {ED597847-A714-4327-B569-70029D2311F0}.Debug|Win32.Build.0 = Debug|Win32 + {ED597847-A714-4327-B569-70029D2311F0}.Release|Win32.ActiveCfg = Release|Win32 + {ED597847-A714-4327-B569-70029D2311F0}.Release|Win32.Build.0 = Release|Win32 + {EDCE4C87-C2C0-4D22-98AC-7B6466F89A15}.Debug|Win32.ActiveCfg = Debug|Win32 + {EDCE4C87-C2C0-4D22-98AC-7B6466F89A15}.Debug|Win32.Build.0 = Debug|Win32 + {EDCE4C87-C2C0-4D22-98AC-7B6466F89A15}.Release|Win32.ActiveCfg = Release|Win32 + {EDCE4C87-C2C0-4D22-98AC-7B6466F89A15}.Release|Win32.Build.0 = Release|Win32 + {E4EF614B-30DF-4954-8C53-580A0BF6B589}.Debug|Win32.ActiveCfg = Debug|Win32 + {E4EF614B-30DF-4954-8C53-580A0BF6B589}.Debug|Win32.Build.0 = Debug|Win32 + {E4EF614B-30DF-4954-8C53-580A0BF6B589}.Release|Win32.ActiveCfg = Release|Win32 + {E4EF614B-30DF-4954-8C53-580A0BF6B589}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/msvc/gmock.vcproj b/msvc/gmock.vcproj new file mode 100755 index 00000000..a58ed364 --- /dev/null +++ b/msvc/gmock.vcproj @@ -0,0 +1,263 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/msvc/gmock_config.vsprops b/msvc/gmock_config.vsprops new file mode 100755 index 00000000..93e28686 --- /dev/null +++ b/msvc/gmock_config.vsprops @@ -0,0 +1,20 @@ + + + + + + diff --git a/msvc/gmock_link_test.vcproj b/msvc/gmock_link_test.vcproj new file mode 100755 index 00000000..3f2eea1e --- /dev/null +++ b/msvc/gmock_link_test.vcproj @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/msvc/gmock_main.vcproj b/msvc/gmock_main.vcproj new file mode 100755 index 00000000..e9581158 --- /dev/null +++ b/msvc/gmock_main.vcproj @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/msvc/gmock_output_test_.vcproj b/msvc/gmock_output_test_.vcproj new file mode 100755 index 00000000..bcbd96f0 --- /dev/null +++ b/msvc/gmock_output_test_.vcproj @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/msvc/gmock_test.vcproj b/msvc/gmock_test.vcproj new file mode 100755 index 00000000..5263d867 --- /dev/null +++ b/msvc/gmock_test.vcproj @@ -0,0 +1,247 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +