Module CS/mk/msvcgen/

back to main page

Summary Period: 2000-11-06 to 2003-07-07

Modules

[root]/CS/mk/msvcgen
     template6 (12 files, 0 lines)
     template7 (12 files, 1017 lines)

Lines Of Code


Total Lines Of Code: 1995 (2003-07-11 20:29)

Authors

Author Changes Lines of code Lines per change
Totals 143 (100.0%) 3192 (100.0%) 22.3
sunshine 49 (34.3%) 2259 (70.8%) 46.1
res2002 32 (22.4%) 749 (23.5%) 23.4
matzebraun 3 (2.1%) 108 (3.4%) 36.0
philwyett 57 (39.9%) 75 (2.3%) 1.3
norman 1 (0.7%) 1 (0.0%) 1.0
uid20594 1 (0.7%) 0 (0.0%) 0.0

Most Recent Commits

sunshine 2003-07-07 14:04

Fixed problem introduced in last revision. Backslashes in metafile path
were causing Perl regex engine to throw a fit (it was trying to interpret
them as special tokens, rather than simple literals).

4 lines of code changed in:

sunshine 2003-07-07 13:43

Eric Sunshine fixed bug in msvcgen.pl where the prefixes specified via
--strip-paths were not being applied to the value of the %metafile%
pseudo-variable.

21 lines of code changed in:

philwyett 2003-06-21 02:07

- Philip Wyett updated win32.mak to reflect changes/additions in
the general cssys library affecting MSVC port(s).

1 lines of code changed in:

philwyett 2003-06-20 10:26

Added physics loader plugin to MSVC build.

2 lines of code changed in:

philwyett 2003-06-18 03:56

Cleaned up new pluginpaths.cpp entry.

2 lines of code changed in:

res2002 2003-06-18 03:25

Added the missing pluginpaths.cpp to MSVC libcssys.
Changed the plain "#elif" to "#elif defined()" in
csprocessorcap.h.
Fixed a couple of NR makefiles for proper MSVC project
generation.

2 lines of code changed in:

philwyett 2003-06-17 09:45

Added csprocessorcap.cpp to libcssys MSVC project

2 lines of code changed in:

res2002 2003-06-14 20:38

Changed the way how SCF plugin scanning works:
- Moved scanning invokation to scfInitialize().
- A platform-dependent function, csScanPluginsDir(), returns
plugin filenames and metadata.
- Such a function is provided for Win32. For unix and macosx,
the "old" function that scans for .csplugin files is used.
Made the following changes:
- The DirectDraw configure time test now also tests for
DirectSound, and thus changed the makefile var nomenclature to
"DirectX".
- Slight changed the way DLLs are loaded on Win32: now
LoadLibraryEx() is used with a flag which causes Windows to
first look for the actual file in the specified directory.
- On Win32, plugin metadata is now contained inside the DLL.
Worked around problems with static linking. Specifically, it was
assumed that a factory function is always only used for a single
class. This is not always the case (e.g. the bezier loader.)

15 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.

66 lines of code changed in:

matzebraun 2003-05-22 18:53

improved msvcgen.sh script

27 lines of code changed in:

philwyett 2003-05-20 07:56

- Philip Wyett worked around problem of incorrect pathed cs_pyth.cpp
being included in the cspython MSVC project file. Added variable
CSPYTHON_MSVC_EXCLUDE and wrapped the bad line in the makefile.
The variable is only true for the MSVCGEN process to force
exclusion from our project files and will not affect nix or
other platforms.

2 lines of code changed in:

sunshine 2003-05-11 21:55

Added a missing xmlprotect() invocation.

1 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.

484 lines of code changed in:

philwyett 2003-05-09 08:43

- Removed mod plugin from MSVC port. No one uses it and the
libmikmod library is old and support is poor for Windows.

0 lines of code changed in:

sunshine 2003-04-27 11:33

Eric Sunshine made the following changes:

-*- Modified configure.ac so that it emits a SRCDIR property to
config.mak. This value represents the --srcdir argument given to the
configure script (or "." if --srcdir is omitted). This points at the
directory containing the CS source code (which may differ from the
build directory, which is typically the current working directory).

-*- Modified makefiles and build scripts throughout the project so that
they respect $(SRCDIR). This allows the project to be built in a
directory other than the source directory, thus it is possible to
place the source directory on a readonly filesystem (such as a
CD-ROM), or to share a single NFS-mounted source directory among
different builds, where each build inhabits its own directory. For
example, if CS resides at /home/CS and you wish to build the project
in /home/build:

% cd /home/build
% ../CS/configure
% make -k all
% make install

(Note that the Jam-base build system already supports this build
paradigm.)

-*- Modified configure.ac so that it emits EXTENSIVE_MEMDEBUG to
config.mak since this variable is used by Makefile.in for the
`showconfig' target.

-*- Modified configure.ac so that it emits MONITOR_MAKEFILE_CACHE when the
value is either "yes" or "no", instead of emitting it only when the
value is "yes". This was necessary because CS/mk/cache.mak prints the
value of this variable as part of $(SYSMODIFIER).

26 lines of code changed in:

matzebraun 2003-04-09 12:15

merged jam msvcgen and nonfinished jamdocu tool

81 lines of code changed in:

philwyett 2003-03-03 08:19

- Philip Wyett updated links to the msvc_libs packages in the docs.
Added xml2 plugin to MSVC build process and updated MSVC project files.

1 lines of code changed in:

philwyett 2003-03-02 10:18

- Philip Wyett, added OpenAL plugin to MSVC build process. He also
updated msvc_libs and the links too msvc_libs in the docs.

1 lines of code changed in:

sunshine 2003-01-28 18:45

Eric Sunshine added "3DS.AVAILABLE=yes" to MSVC.MAKE.FLAGS in
msvcgen/required.mak in order to ensure that app3ds2lev project files get
built.

2 lines of code changed in:

philwyett 2003-01-18 05:34

Removed EAX plugin. Those needing it, which seems to
be virtually none can manuall re-generate it back into
the build process.

0 lines of code changed in:

(97 more)


Generated by StatCvs v0.2-dev