vsprops

http://stackoverflow.com/questions/111631/visual-studio-solutions-multiple-project-how-to-effectively-propagate-project-p

//继续研究chromium

chromium里的任何项目都没有设置include path,而头文件的引用都是以src为根目录。那么include path到底是在哪儿设置的呢? vs环境也不可能设置这个。调查了一下,发现这个:Inherited Project Property Sheets。所有项目都设置了这个属性。这个属性对应有很多的.vsprops文件。而vsprops又是什么?网上的信息并不多。msdn讲的也很少。

http://msdn.microsoft.com/en-us/library/a4xbdz1e(VS.80).aspx 

开始那个问题,也就是include path在哪里设置的?就是在这些. vsprops里面设置的。任何的project文件可以引用多个.vsprops。vsprops其实也就是项目设置。可以设置include path之类。至于library path和libraries,chromium的做法是全部用project dependencies。每个solutions里面都单独设置denpendent projects的目录,并包含哪些projects。dependent project全部设为static library。

再回到.vsprops。一般来说对于本身项目,建立一个common.vsprops,里面设定本身项目的include path。而这个path一般回到chromium的src目录。对于libs的话,如果在solution里面包含对应的项目文件的话,就不用单独设置path。如果没有包含,比如googleurl使用libxml,那么,就引用libxml里面的一个using_libxml.vsprops,这个vsprops同时也可能会被其他项目引用到。那么使用libxml的include path在哪儿呢?就在using_libxml.vsprops里面。是这样的:$(SolutionDir)..\third_party\libxml\include。这么做有一个危险,那就是其他也使用libxml的项目的solution file的目录必须是对的,也就是,保证$(SolutionDir)..\third_party\libxml\include能正确找到libxml的include文件夹。由于大部分项目又都是static library,所以libs也就不用设置,只要include path设置就行了。