Module CS/mk/msvcgen/template6/

back to main page

Summary Period: 2003-05-11 to 2003-06-16

Modules

[root]/CS/mk/msvcgen/template6

Authors

Author Changes Lines of code Lines per change
Totals 40 (100.0%) 0 (-) 0.0
sunshine 13 (32.5%) 0 (-) 0.0
res2002 25 (62.5%) 0 (-) 0.0
philwyett 2 (5.0%) 0 (-) 0.0

Most Recent Commits

res2002 2003-06-16 23:09

Made the following changes:
- Removed the csFindLoadLibrary() stuff. Plugins are now solely
loaded via native, fully qualified paths.
- Made storing the user config in "Documents & Setting" on Win32
the default.
- Some Jamfiles updated.
+ missing history entries.
Readded the VC6 templates as 'binary'.

0 lines of code changed in:

res2002 2003-06-16 23:00

Readding VC6 templates as binary

0 lines of code changed in:

philwyett 2003-06-16 22:49

Fixed formatting

0 lines of code changed in:

res2002 2003-06-15 21:07

Added a work around for a static linking problem to static.mak.
Renamed csScanPluginsDir() to csScanPluginDir(), added
csScanPluginDirs(), and implemented a general csGetPluginMetadata().
Removed the fopen() hack.
Added Jamfiles for the render loop loader/standard rendersteps
along with some minor compile fixes.
Updated the MSVC6 makefile templates.

0 lines of code changed in:

sunshine 2003-05-26 09:49

Eric Sunshine performed Phase One of the elimination of the monolithic
scf.cfg:

-*- Plugin modules are now self-describing. This information can be
queried at run-time without having to actually load the module.

-*- The plugin maintainer now manages the plugin's meta-information in an
external .csplugin file, rather than hard-coding the information into
the plugin's source code. The mechanism by which the meta-information
is bound to the plugin is platform-dependent. Presently, all
platforms simply lay down the meta-information in a plain text file
alongside the plugin itself; with the same basename and extension
.csplugin. This may change in the future. For example, on MacOS/X,
the meta-information will probably be encapsulated within the plugin's
bundle wrapper.

-*- Plugin meta-information is now maintained in XML format. Here is an
example:

<?xml version="1.0"?>
<!-- gl3d.csplugin -->
<plugin>
<name>gl3d</name>
<scf>
<classes>
<class>
<name>crystalspace.graphics3d.opengl</name>
<description>OpenGL 3D graphics driver</description>
<requires>
<class>crystalspace.font.server.</class>
</requires>
</class>
</classes>
</scf>
</plugin>

-*- Since meta-information is now extensible, maintainers can choose to
publish supplementary information about plugins (in addition to the
SCF information already published). For example, image loading
plugins could publish "image indendification" information which would
allow the image loading multiplexor to selectively request image
loading plugins on-demand, rather than requesting all plugins
unconditionally, even if they are not needed. Here is an example of a
possible meta-information table for the PNG loader:

<?xml version="1.0"?>
<!-- cspngimg.csplugin -->
<plugin>
<name>cspngimg</name>
<scf>...</scf>
<imageloader>
<imagetype>
<class>crystalspace.graphic.image.io.png</class>
<identify>
<mimetype>image/png</mimetype>
<extension>png</extension>
<extension>PNG</extension>
<scan length="4" bytes="\0x89PNG"/>
</identify>
</imagetype>
</imageloader>
</plugin>

In this example, the PNG loader meta-information tells the multiplexor
several different ways to identify a PNG image: by checking file
extension, if available; by checking MIME type, if available; by
checking for the magic-string "\0x89PNG" in the raw image data. If
the multiplexor identifies the image as PNG, only then will it
actually request the PNG loader.

-*- Added the --meta-file directive to msvcgen.pl to allow specification
of the meta-information file for a module. The value of this option
is interpolated into template files via the new %metafile% variable.
msvcgen.mak now utilizes this flag with the value of the new
INC.PROJECT makefile variable. Augmented the MSVC6 and MSVC7 plugin
template files (plugin.tpl) to make use of %metafile%.

-*- Changed the file extension for plugins on MacOS/X from .csplugin to
.csbundle to avoid conflict with new meta-information resource which
uses the extension .csplugin.

-*- Still To-Do:

- Augment SCF to utilize the new meta-information resources, and to
understand the new XML format. Presently, these resources are
ignored at run-time.

- Add platform-specific function to scan and locate plugins
automatically, rather than relying upon a monolithic registry such
as scf.cfg.

- Add platform-specific function to query a plugin's meta-information.

- Eliminate the monolithic scf.cfg.

- Augment static linking to work with the new facility.

- Eliminate the hard-coded SCF registration information in each
plugin's source code.

0 lines of code changed in:

philwyett 2003-05-12 05:08

- Philip Wyett brought warning level in MSVC 7 project files down
to 3 to match MSVC 6 ones. Also cleaned up 'group.tpl' for
both MSVC 6 and 7.

0 lines of code changed in:

sunshine 2003-05-11 21:08

Eric Sunshine made the following changes:

-*- Added the new variable %name% to msvcgen.pl which can be interpolated
into any template file. The value of this variable is the name
provided by the --name option.

-*- Performed some code clean up of msvcgen.pl following the merge of
msvcgen.pl and msvc7gen.pl (which occurred some time ago).

-*- Cleaned up a bunch of errors in the documentation and added
documentation which should have been added when msvcgen.pl and
msvc7gen.pl were merged.

-*- Renamed msvcgen.pl options --projext, -px, --wsext, -wx, --projname,
and --htmlent to --project-extension, -P, --workspace-extension, -W,
--project-name, --xml-protect, respectively.

-*- Changed msvcgen.pl so that it no longer creates the unused "dummy"
fragment file. This file seems to have been an ugly artifact to
slighly simplify msvcgen.mak following the msvcgen.pl and msvc7gen.pl
merge. A slight modification of msvcgen.mak obviated the need for
this hack.

-*- Fixed bug in msvcgen.pl where it failed to use the value from --name
as the default for --project-name if --project-name was not specified.

-*- The extensions .C, .m, .mm, and .M are now recognized as source files
(in addition to .c, .cc, and .cpp) by msvcgen.pl. The extensions .hpp
and .H are now recognized as header files (in addition to .h).

-*- Added --strip-root option to msvcgen.pl which allows specification of
zero or more prefixes which should be stripped from
filenames/resources mentioned on the command-line and which are
referenced by generated project files. This is desirable because it
is a good idea to record only relative paths in project files, rather
than absolute. This switch can be employed by tools which are unable
to provide relative paths to msvcgen.pl.

-*- Revived the DSP.PROJECT.RESOURCES variable. This variable is useful
for inserting additional human-readable resources into the generated
project files. It is not clear why this variable was removed when the
$(PROJECT.EXE).WINRSRC functionality (which is completely different in
purpose) was added to msvcgen.mak.

-*- Revived the "appgui" project type which had been removed some time
back. Although the project files for GUI (appgui) and console
(appcon) applications might not differ at present, it is still useful
to be able to make this distinction (especially since it might be
needed again in the future).

-*- Cleaned up some documentation in msvcgen.mak following the merge of
msvcgen.mak and msvc7gen.mak (some time ago).

-*- Fixed problem with mergeres.sh where it failed to perform path
"fix-up" properly if the build hierarchy differed from the source
hierarchy. One manifestation of this problem was that the .rc files
generated via msvcgen.mak from a build hierarchy outside the source
hierarchy differed from those generated directly in the source
hierarchy. On a related note, win32gcc.mak and msvcgen.jam were
providing "fix-up" argument to mergeres.sh which failed to take
$(SRCDIR) into account, thus causing the fix-up to fail.

-*- Fixed bug in msvcgen.jam where it failed to specify the location of
csver.h when invoking mkverres.sh, thus it failed when generating
project files from a build hierarchy which differed from the source
hierarchy.

-*- Fixed bug in msvcgen.jam where it failed to use --xmlprotect (nee
--htmlent) when building MSVC7 project files.

-*- Fixed bug in msvcgen.jam where it was incorrectly specifying external
libraries via --depend. The correct option is --library.

-*- Fixed bug in msvcgen.jam where it was incorrectly specifying linker
flags via --library. The correct option is --lflags.

-*- Fixed bug in msvcgen.jam where it failed to normalize the source,
header, and resource paths which it passed to msvcgen.pl for mention
in the generated project files. This was a problem when the build
directory differed from the CS source directory, since the paths
recorded in the project file would be relative to the build directory
or absolute, rather than relative within the source directory.

-*- Fixed bug in msvcgen.jam where it would insert the wrong file into a
generated project if the filename was not unique between all
directories. For instance, in the generated libcsutil project,
plugins\documentsystem\xmltiny\xmltiny.cpp would incorrectly appear in
place of libs\csutil\xmltiny.cpp.

-*- msvcgen.jam is almost usable. Still to-do: Make it respect
ExternaLibs() or fix all the Jamfiles which require special Windows
libraries to invoke MsvcExternalLibrary(). Overhaul the "config" file
handling rule so that it associates configuration files with built
targets. This will allow the generated projects to reference
configuration files. Likewise, provide a generic Resources rule which
allows specification of additional textual resources for inclusion in
generated projects. Upgrade module Jamfiles to mention headers from
the CS/include/foobar directory. This will allow related headers to
appear in the generated project files. For instance, the libcsutil
project should mention headers from CS/include/csengine, in addition
to the ones from CS/libs/csengine, which it currently mentions.

-*- Renamed CS/mk/visualc to CS/mk/visualc6.

-*- Renamed CS/mk/msvcgen/template to CS/mk/msvcgen/template6.

-*- Renamed the msvcgen and msvcinst makefile targets to msvc6gen and
msvc6inst.

-*- Fixed problem in Jam build where it would attempt to invoke Bourne
scripts using C-shell if user's login shell was C-shell or compatible.

-*- Fixed csperl5/Jamefile so that it is only enabled if the Perl SDK was
detected, rather than if the Perl command is available. This is an
important distinction because the presence of the Perl command alone
does not necessarily imply the presence of a working SDK.

0 lines of code changed in:


Generated by StatCvs v0.2-dev