#include <windows.h>
#include <iostream>
#include <string>
#include <process.h>
/// <summary><c>setenv</c>sets a variable in the current environment</summary>
/// <param name='name'>The name of the evironment variable to set</param>
/// <param name='value'>The new value for the variable</param>
void setenv(std::string const &name, std::string const &value) {
SetEnvironmentVariable(name.c_str(), value.c_str());
}
std::string vs_base = "C:\\Program Files (x86)\\Microsoft Visual Studio 11.0\\";
std::string vc_base = vs_base + "VC\\";
std::string sdk_dir = "C:\\Program Files (x86)\\Windows Kits\\8.0";
int main(int argc, char **argv) {
char inc_name[] = "INCLUDE";
char lib_name[] = "LIB";
char path_name[] = "PATH";
std::string inc_dir = getenv(inc_name);
std::string lib_dir = getenv(lib_name);
std::string path_dir = getenv(path_name);
inc_dir = vc_base + "include;" + sdk_dir + "Include;" + inc_dir;
lib_dir = vc_base + "lib\\amd64;" +sdk_dir + "lib\\win8\\um\\x64;" + lib_dir;
path_dir = sdk_dir + "bin\\x64;" + vc_base + "bin\\amd64;" + vs_base + "common7\\IDE;" + path_dir;
setenv(inc_name, inc_dir);
setenv(lib_name, lib_dir);
setenv(path_name, path_dir);
char path[MAX_PATH];
GetSystemDirectory(path, sizeof(path));
strcat(path, "\\cmd.exe");
_spawnlp(_P_WAIT, path, path, NULL);
return 0;
}
I2luY2x1ZGUgPHdpbmRvd3MuaD4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8cHJvY2Vzcy5oPgoKLy8vIDxzdW1tYXJ5PjxjPnNldGVudjwvYz5zZXRzIGEgdmFyaWFibGUgaW4gdGhlIGN1cnJlbnQgZW52aXJvbm1lbnQ8L3N1bW1hcnk+Ci8vLyA8cGFyYW0gbmFtZT0nbmFtZSc+VGhlIG5hbWUgb2YgdGhlIGV2aXJvbm1lbnQgdmFyaWFibGUgdG8gc2V0PC9wYXJhbT4KLy8vIDxwYXJhbSBuYW1lPSd2YWx1ZSc+VGhlIG5ldyB2YWx1ZSBmb3IgdGhlIHZhcmlhYmxlPC9wYXJhbT4Kdm9pZCBzZXRlbnYoc3RkOjpzdHJpbmcgY29uc3QgJm5hbWUsIHN0ZDo6c3RyaW5nIGNvbnN0ICZ2YWx1ZSkgeyAKICAgIFNldEVudmlyb25tZW50VmFyaWFibGUobmFtZS5jX3N0cigpLCB2YWx1ZS5jX3N0cigpKTsKfQoKc3RkOjpzdHJpbmcgdnNfYmFzZSA9ICJDOlxcUHJvZ3JhbSBGaWxlcyAoeDg2KVxcTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gMTEuMFxcIjsKc3RkOjpzdHJpbmcgdmNfYmFzZSA9IHZzX2Jhc2UgKyAiVkNcXCI7CnN0ZDo6c3RyaW5nIHNka19kaXIgPSAiQzpcXFByb2dyYW0gRmlsZXMgKHg4NilcXFdpbmRvd3MgS2l0c1xcOC4wIjsKCmludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgeyAKICAgIGNoYXIgaW5jX25hbWVbXSA9ICJJTkNMVURFIjsKICAgIGNoYXIgbGliX25hbWVbXSA9ICJMSUIiOwogICAgY2hhciBwYXRoX25hbWVbXSA9ICJQQVRIIjsKCiAgICBzdGQ6OnN0cmluZyBpbmNfZGlyID0gZ2V0ZW52KGluY19uYW1lKTsKICAgIHN0ZDo6c3RyaW5nIGxpYl9kaXIgPSBnZXRlbnYobGliX25hbWUpOwogICAgc3RkOjpzdHJpbmcgcGF0aF9kaXIgPSBnZXRlbnYocGF0aF9uYW1lKTsKCiAgICBpbmNfZGlyID0gdmNfYmFzZSArICJpbmNsdWRlOyIgKyBzZGtfZGlyICsgIkluY2x1ZGU7IiArIGluY19kaXI7CiAgICBsaWJfZGlyID0gdmNfYmFzZSArICJsaWJcXGFtZDY0OyIgK3Nka19kaXIgKyAibGliXFx3aW44XFx1bVxceDY0OyIgKyBsaWJfZGlyOwogICAgcGF0aF9kaXIgPSBzZGtfZGlyICsgImJpblxceDY0OyIgKyB2Y19iYXNlICsgImJpblxcYW1kNjQ7IiArIHZzX2Jhc2UgKyAiY29tbW9uN1xcSURFOyIgKyBwYXRoX2RpcjsKCiAgICBzZXRlbnYoaW5jX25hbWUsIGluY19kaXIpOwogICAgc2V0ZW52KGxpYl9uYW1lLCBsaWJfZGlyKTsKICAgIHNldGVudihwYXRoX25hbWUsIHBhdGhfZGlyKTsKICAgIAogICAgY2hhciBwYXRoW01BWF9QQVRIXTsKCiAgICBHZXRTeXN0ZW1EaXJlY3RvcnkocGF0aCwgc2l6ZW9mKHBhdGgpKTsKICAgIHN0cmNhdChwYXRoLCAiXFxjbWQuZXhlIik7CiAgICBfc3Bhd25scChfUF9XQUlULCBwYXRoLCBwYXRoLCBOVUxMKTsKCiAgICByZXR1cm4gMDsKfQo=