MS RFC 83:源树重组

日期

2012-02-06

作者

丹尼尔·莫里塞特

联系

在mapgears.com的dmorissette

最后编辑

011-111-25

状态

被遗弃的

版本

地图服务器6.2

1。概述

在mapserver项目中包含新的mapcache和tinyows组件后,重新组织源树的目录结构以便于将来的构建和维护将是理想的选择。

2。当前目录结构

ls -R | grep -v svn | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/   /' -e 's/-/|/'

 mapserver
 |-fonts
 |-m4
 |-mapcache
 |---apache
 |---cgi
 |---include
 |---lib
 |---m4
 |---nginx
 |---static
 |---util
 |-mapscript
 |---csharp
 |-----config
 |-----examples
 |---doc
 |---java
 |-----data
 |-----examples
 |-----tests
 |-------threadtest
 |---perl
 |-----examples
 |---php
 |-----examples
 |---python
 |-----examples
 |-----pygdioctx
 |-----tests
 |-------cases
 |-------timing
 |---ruby
 |-----examples
 |---swiginc
 |---tcl
 |-----examples
 |-----win
 |-opengl
 |-renderers
 |---agg
 |-----include
 |-------util
 |-----src
 |-symbols
 |-tests
 |---vera
 |-xmlmapfile
 |---tests

其中最有趣的是:

mapserver
|-mapcache
|-mapscript
|-opengl
|-renderers
|---agg
|-xmlmapfile

三。新建议的目录结构

最重要的更改是,当前mapserver根目录中的大多数.c/.h源文件都将移动到两个新子目录之一:

  • lib:包含lib mapserver.so中内置并与多个组件共享的所有mapserver核心源文件。当我们创建libmapfile.so时,这个目录也是它的主目录。

  • 应用程序:包含与传统的mapserv cgi/fastcgi应用程序和命令行实用程序(如shp2img)相关的源文件。

将创建一个新的“tinyows”子目录,作为tinyows源文件的未来主目录。

结果如下:

mapserver
|-lib
|---renderers
|-----agg
|-----opengl
|-apps
|-mapscript
|-mapcache
|-tinyows
|-xmlmapfile

目前,以下文件将继续驻留在mapserver根目录中:

configure.in
Makefile.in
HISTORY.TXT (applicable to releases of the full suite)

最初,根目录的configure.in将与当前相同,它将更新lib、apps和mapscript子目录中的makefile.in。

我们的长期目标(随着时间的推移慢慢进行)是,大多数子目录(特别是mapserv、mapscript、mapcache和tinyow)最终也将包含它们自己的独立配置脚本和Makefile,以允许独立构建给定的组件。此时,映射服务器根目录中的主配置脚本和生成文件将简单地调用每个子项目的配置和生成文件,以一次自动构建多个选定的组件。

history.txt文件将维护在两个级别:

  • 根目录中的history.txt:包含与完整套件版本相关的历史信息

  • 每个子项目目录中的history.txt:包含与每个特定组件相关的详细历史信息。当前history.txt将移动到libmapserver.so子目录。

4。向后兼容性问题

由于文件四处移动,针对旧版本的补丁可能不再直接应用。出于同样的原因,从SVN沙盒或分支合并更改可能更复杂。

5.错误ID

  • TBD

6。投票历史

还没有投票。