暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PG是如何在windows下生成VS工程的

Thornger 2021-04-12
1139

许多小伙伴们按照网上教程生成了PG在windows下的编译环境。但是不知道每个文件的含义,该文章简单介绍一下各个文件的含义。水平有限,如有错误,多谢指出。

PostgreSQL建立Microsoft Visual Studio 可以编译的工程时,用到了下面这些工具:


-配置文件-:

  • config_default.pl      

        PG编译时默认的配置参数,包。 

  • config.pl

        也是配置参数,主要是针对PG外部环境的配置参数。

  • buildenv.pl

        环境设置,用户编译环境的设置。

    区别:

    • buildenv.pl和config.pl主要构建PG编译时的外部环境。

    • config_default.pl是构建PG编译的内部的配置参数。


- 工具包-:

build.pl   

         生成可执行程序的主要包,如:postgres二进制程序的生成。也是PG编译的入口。build.bat会直接调用该包,并把接受到的参数传递给它。

builddoc.pl

        生成文档的主要工具包。        

clean.bat  

    清除编译过程中产生的文件。

install.pl          

        用来安装生成的可执行文件

mkvcbuild.pl  

        用来生成Visual Studos工程文件

vcregress.pl  

        用来运行回归测试的工具包


- 内部工具组 -:

gendef.pl 

        生成.DEF文件的内部工具

pgbison.pl 

        使用bison执行.y文件的内部工具

pgflex.pl 

        使用blex执行.l文件的内部工具


- 内部模块-

Install.pm 

        包含安装逻辑的模块。

Mkvcbuild.pm     

        生成Visual Studio 工程文件的代码逻辑模块 

Project.pm

包含了生成Visual Studio工程文件的公共代码。还提供了所有项目文件生成器的接口

Solution.pm  

        这个模块包含的代码用来生成Visual Studio解决方案文件。

MSBuildProject.pm 

        这个模块包含的代码用来生成MSBuild的基础项目文件(Visual 2010及以上版本的的项目)

VCBuildProject.pm 

        这个模块包含的代码用来生成VCBuild基础的项目文件(Visual 2005/2008)。

VSObjectFactory.pm   

            提供为当前环境创建适当的项目/解决方案文件的模块


-流程-:


  1. 通过键入“build”,用户可以启动build.bat批处理,它向build.pl传递它的后面的参数。

  2. 在build.pl中,buildenv.pl用于设置构建环境(如:bison和flex的路径)。除此之外,config.pl文件会合并到config_default.pl中,用来生成配置文件参数。

  3. 这些配置参数传递给Mkvcbuild:: Mkvcbuild (Mkvcbuild.pm),它创建Visual Studio项目和解决方案文件。

  4. 它通过使用 VSObjectFactory::来创建实现解决方案接口的对象(vs2005、vs2008、vs2010、vs2012、vs2013、vs2015、vs2017解决方案),方案的生成依赖于用户的环境。

  5. 然后添加对象来实现相应的项目接口(VCBuildProject.pm中产生VC2005/VC2008项目,MSBuildProject.pm用来生成VC2010/VC2012/VC2013/VC2015或者VC2017项目)。

  6. 然后调用Solution::Save方法,将生成的解决方案和项目的内容保存成适当的格式。

  7. 再次在build.pl中执行启动适当构建程序(msbuild或vcbuild)的最后一步。


文章转载自Thornger,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论