#include "apr_general.h"
#include "apu_version.h"

#define APR_COPYRIGHT "Copyright 2000-2005 The Apache Software " \
                      "Foundation or its licensors, as applicable."

#define APR_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"

/** An alternative formatted string of APR's version */
/* macro for Win32 .rc files using numeric csv representation */
#define APU_VERSION_STRING_CSV APU_MAJOR_VERSION ##, \
                             ##APU_MINOR_VERSION ##, \
                             ##APU_PATCH_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", APR_LICENSE "\0"
      VALUE "CompanyName", "Apache Software Foundation\0"
      VALUE "FileDescription", "Apache Portable Runtime Utility Library\0"
      VALUE "FileVersion", APU_VERSION_STRING "\0"
      VALUE "InternalName", APU_DLL_BASENAME "\0"
      VALUE "LegalCopyright", APR_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
