#include "apr_general.h"
#include "api_version.h"

#define APR_COPYRIGHT "Copyright 2000-2011 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 API_DLL_BASENAME "libapriconv"

/** An alternative formatted string of APR's version */
/* macro for Win32 .rc files using numeric csv representation */
#define API_VERSION_STRING_CSV API_MAJOR_VERSION ##, \
                             ##API_MINOR_VERSION ##, \
                             ##API_PATCH_VERSION


1 VERSIONINFO
 FILEVERSION API_VERSION_STRING_CSV,0
 PRODUCTVERSION API_VERSION_STRING_CSV,0
 FILEFLAGSMASK 0x3fL
#if defined(APR_IS_DEV_VERSION)
#if defined(_DEBUG)
 FILEFLAGS 0x03L
#else
 FILEFLAGS 0x02L
#endif
#else
#if defined(_DEBUG)
 FILEFLAGS 0x01L
#else
 FILEFLAGS 0x00L
#endif
#endif
#if defined(WINNT) || defined(WIN64)
 FILEOS 0x40004L
#else
 FILEOS 0x4L
#endif
 FILETYPE 0x2L
 FILESUBTYPE 0x0L
BEGIN
  BLOCK "StringFileInfo"
  BEGIN
    BLOCK "040904b0"
    BEGIN
    VALUE "Comments", APR_LICENSE "\0"
      VALUE "CompanyName", "Apache Software Foundation\0"
      VALUE "FileDescription", "Apache APR I18N Conversion Library\0"
      VALUE "FileVersion", API_VERSION_STRING "\0"
      VALUE "InternalName", API_DLL_BASENAME "\0"
      VALUE "LegalCopyright", APR_COPYRIGHT "\0"
      VALUE "OriginalFilename", API_DLL_BASENAME ".dll\0"
      VALUE "ProductName", "Apache Portable Runtime Project\0"
      VALUE "ProductVersion", API_VERSION_STRING "\0"
    END
  END
  BLOCK "VarFileInfo"
  BEGIN
    VALUE "Translation", 0x409, 1200
  END
END
