To make new teammates be able to code in VS2010 you have several options:
You don't need to change platform toolset to old one and rewrite your codebase. VS2010 developers can just install Windows 8 SDK, and use v110 toolset. To help them, configure "VC++ directories" in project properties as pointed in this article (change macro variables, which points to old Windows SDK, to explicit locations of new Windows SDK):
- In “Executable Directories” replace
$(WindowsSdkDir)
binwith
$(ProgramFiles)\Windows Kits\8.0\bin\x86`
- In “Include Directories” add
$(ProgramFiles)\Windows Kits\8.0\Include\um;$(ProgramFiles)\Windows Kits\8.0\Include\shared
at
the beginning and remove $(WindowsSdkDir)include
- In “Library Directories” replace
$(WindowsSdkDir)lib
with $(ProgramFiles)\Windows Kits\8.0\lib\win8\um\x86
- In “Exclude Directories” replace
$(WindowsSdkDir)include
with $(ProgramFiles)\Windows
Kits\8.0\Include\um;$(ProgramFiles)\Windows Kits\8.0\Include\shared
- When targeting
x64
, replace x86
with x64
If you really want to downgrade toolset from v110 to v100, then you will need to make use old standalone DirectX SDK. Before, Windows SDK and DirectX SDK was separate. They was merged since Windows 7 SDK. When merging, Microsoft decidede to remove some stuff and also renamed some files, for example, standalone SDK contains math in #include <xmmath.h>
.
You can combine both: create multiple project/platform configurations and inmplement conditional compilation via #ifdef
where VS2010 configuration will fail to find headers/compile. For example you can use C++11 features in VS2012 branch of code, but in VS2010 branch you use only C++03 features.
I would prefer first option, but it is up to you to decide.
P.S. As far as I remember, project files from VS2012 (.vcxproj
) cannot be opened in VS2010 (it knows only .vcproj
), so you cannot share it. You will probably want to install VS2010, make .vcproj
and maintain both files. It can be pain when you change project options in one, and forget to change in other, so be careful. Also, consider to move all your team to single IDE, or at least single build system (for example, CMake).
Happy coding!