Vs2012在Linux开发中的应用(3):添加新平台hi3516

下面我们将为VS2012添加一个新的平台支持,因为最近在用海思的hi3516,就选它吧!

1.1     复制平台文件

原来一直觉得要让VS支持一个新的平台需要编写代码,某天在看MSBUILD目录的时候突然发现了一个神奇的目录:

新平台的秘密就在这里!!

这里的hi3516原来是没有的,只是为了添加对hi3516这个平台的支持而加上去的。我们将ARM目录复制一份,改名为hi3516

然后将文件名中的ARM改为hi3516,将hi3516目录下所有文件中的”ARM”字符串替换为”hi3516”(执行字符串操作),很野蛮,很暴力,但很管用!

1.2     修改注册表,添加新平台

接下来修改注册表,导入下面的内容(从ARM表项复制得来的结果):

[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0_Config\VC\Libraries\Extended\hi3516]

"Version"="50727.01"

"Install"=dword:00000001

"InstallerType"="MSI"

"SP"=dword:00000000

"SPIndex"=dword:00000000

"SPName"="RTM"

"Bld"="50727"

"Rbld"="00001"

"PaddedVersion"="5072700001"

 

[HKEY_USERS\S-1-5-21-3453089637-102051711-1108187228-1000\Software\Microsoft\VisualStudio\11.0Exp_Config\VC\Libraries\Extended\hi3516]

"Version"="50727.01"

"Install"=dword:00000001

"InstallerType"="MSI"

"SP"=dword:00000000

"SPIndex"=dword:00000000

"SPName"="RTM"

"Bld"="50727"

"Rbld"="00001"

"PaddedVersion"="5072700001"

 

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\11.0\VC\Libraries\Extended\hi3516]

"Version"="50727.01"

"Install"=dword:00000001

"InstallerType"="MSI"

"SP"=dword:00000000

"SPIndex"=dword:00000000

"SPName"="RTM"

"Bld"="50727"

"Rbld"="00001"

"PaddedVersion"="5072700001"

 

[HKEY_USERS\.DEFAULT\Software\Microsoft\VisualStudio\11.0_Config\VC\Libraries\Extended\hi3516]

"Version"="50727.01"

"Install"=dword:00000001

"InstallerType"="MSI"

"SP"=dword:00000000

"SPIndex"=dword:00000000

"SPName"="RTM"

"Bld"="50727"

"Rbld"="00001"

"PaddedVersion"="5072700001"

 

在做完上面两件事情后就可以在IDE项目中添加新的平台了:

不过很不幸的是我们现在看项目属性是这个样子的:

这是因为MSBUILD还没有看到项目属性的定义。

1.3     导入工程属性定义

打开vcxproj项目文件,查看其导入的属性:

  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />

  <Import Condition="$(Platform)==‘Win32‘" Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

我们需要加上HI3516的导入属性:

  <Import Condition="$(Platform)==‘hi3516‘" Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

我们熟悉的项目属性又回来了!!!!

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。