You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by "William A. Rowe, Jr." <wr...@rowe-clan.net> on 2006/07/06 16:25:36 UTC

Trunk funky on win32, looking for thoughts.

As part of the 'big picture' to simplify things alot on win32, I'd done away
with individual .rc resource files to provide versioning/descriptive blocks
for our loadable libraries (modules etc.)  All modules compile the file

   http://svn.apache.org/repos/asf/httpd/httpd/trunk/build/win32/httpd.rc

which originally used the magic compile-time command line flags

   /d ICON_FILE=[../...]build/win32/apache.ico  (if this file wants an icon)
   /d BIN_NAME=mod_something.so
   /d LONG_NAME="The Apache HTTP Server something module"
   /d "APP_FILE"  (only for .exe directly-executable stuff)

Now, only a few syntaxes are valid (command line, all of these versions)

   /d "SOME_SYMBOL"
   /d "SOME_SYMBOL=Some String"
   /d SOME_SYMBOL="Some String"

The first form is most common, it's what every version of studio likes to do
with single word def/undef symbols.  No matter which form, I can't find any way
for many Visual Studios to handle either of the last forms.

/d "SOME_SYMBOL=Some String" - load this into VS 98 (6) or earlier, you end
up with /d SOME_SYMBOL=Some String (with the ' String' it's own arg).  This is
definitely broken behavior, but not as broken as...

/d SOME_SYMBOL="Some String" - load this into VS IDE of .NET (2002) and later,
you end up with /d "SOME_SYMBOL="Some String"" -- an entirely bogus construct
that won't compile.

These issues only apply ot the ide, if we use the last form, and compile using
the export .mak files form VS 6, everything's fine on any version of VS.

But, we have alot of IDE users.

I won't revert to using 75 odd .rc files, going back to requiring each and
every component runs an awk script.  That leaves us with a few quick and
dirty options;

   * don't use VC's .rc target, use a custom compile command for the .rc.
   * use 'special' spaces (e.g. 0xA0) (not really language portable)
   * use underbar characters in place of spaces?  (language portable)

Thoughts from my fellow windows hackers?