#include "apu_version.h"

#define APU_COPYRIGHT "Copyright 2000-2005 The Apache Software " \
                      "Foundation or its licensors, as applicable."

#define APU_LICENSE "Licensed under the Apache License, Version 2.0 " \
                    "(the ""License""); you may not use this file except " \
                    "in compliance with the License.  You may obtain a " \
                    "copy of the License at\r\n\r\n" \
                    "http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n" \
                    "Unless required by applicable law or agreed to in " \
                    "writing, software distributed under the License is " \
                    "distributed on an ""AS IS"" BASIS, WITHOUT " \
                    "WARRANTIES OR CONDITIONS OF ANY KIND, either " \
                    "express or implied.  See the License for the " \
                    "specific language governing permissions and " \
                    "limitations under the License."

#define APU_DLL_BASENAME "libaprutil-" APU_STRINGIFY(APU_MAJOR_VERSION)


1 VERSIONINFO
 FILEVERSION APU_VERSION_STRING_CSV,0
 PRODUCTVERSION APU_VERSION_STRING_CSV,0
 FILEFLAGSMASK 0x3fL
#if defined(_DEBUG)
 FILEFLAGS 0x01L
#else
 FILEFLAGS 0x00L
#endif
 FILEOS 0x40004L
 FILETYPE 0x1L
 FILESUBTYPE 0x0L
BEGIN
  BLOCK "StringFileInfo"
  BEGIN
    BLOCK "040904b0"
    BEGIN
    VALUE "Comments", APU_LICENSE "\0"
      VALUE "CompanyName", "Apache Software Foundation\0"
      VALUE "FileDescription", "Apache Portable Runtime Library\0"
      VALUE "FileVersion", APU_VERSION_STRING "\0"
      VALUE "InternalName", APU_DLL_BASENAME "\0"
      VALUE "LegalCopyright", APU_COPYRIGHT "\0"
      VALUE "OriginalFilename", APU_DLL_BASENAME ".dll\0"
      VALUE "ProductName", "Apache Portable Runtime Project\0"
      VALUE "ProductVersion", APU_VERSION_STRING "\0"
    END
  END
  BLOCK "VarFileInfo"
  BEGIN
    VALUE "Translation", 0x409, 1200
  END
END
