MS RFC 83:源树重组

日期

2012-02-06

作者

丹尼尔·莫里塞特

联系方式

在mapgears.com的dmorissette

最后编辑

011-111-25

状态

被遗弃的

版本

MapServer 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和tinyows)最终也将包含自己的独立配置脚本和makefile,以允许独立地构建给定的组件。此时,mapserver根目录中的master configure脚本和makefile只需调用每个子项目的configure和makefile,即可同时自动生成多个选定组件。

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

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

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

4。向后兼容性问题

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

5.错误ID

  • TBD

6。投票历史

还没有投票。