<?xml version="1.0" encoding="utf-8"?>
<!--
  Copyright (c) 2011 Niels Martin Hansen
  All rights reserved.

  Redistribution and use in source and binary forms, with or without
  modification, are permitted provided that the following conditions are met:

    * Redistributions of source code must retain the above copyright notice,
    this list of conditions and the following disclaimer.
    * Redistributions in binary form must reproduce the above copyright notice,
    this list of conditions and the following disclaimer in the documentation
    and/or other materials provided with the distribution.
    * Neither the name of the Aegisub Group nor the names of its contributors
    may be used to endorse or promote products derived from this software
    without specific prior written permission.

  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  POSSIBILITY OF SUCH DAMAGE.

  Aegisub Project http://www.aegisub.org/

  $Id$
-->
<Rule Name="SubWCRev" 
    DisplayName="Aegisub" 
    Order="1" 
    PageTemplate="tool"
    xmlns="http://schemas.microsoft.com/build/2009/properties">

  <Rule.DataSource>
    <DataSource Persistence="UserFile" ItemType="" HasConfigurationCondition="true" />
  </Rule.DataSource>

  <Rule.Categories>
    <Category Name="Features" DisplayName="Features" Description="Control features to build" />
    <Category Name="Paths" DisplayName="Library paths" Description="Configure third-party library paths" />
    <Category Name="BuildInfo" DisplayName="Build information" Description="Embed build information" />
  </Rule.Categories>
  
  <BoolProperty
    Name="AegisubUseConfigWindowsH"
    Category="Features"
    DisplayName="Use config_windows.h"
    Description="Specify whether to use config_windows.h or the configuration on this page to control features. The settings on this page still control automatic compiler and link settings for the features."
    />

  <BoolProperty
    Name="AegisubUseAutomationLua"
    Category="Features"
    DisplayName="Use Automation 4 Lua"
    Description="Specify whether to include Automation 4 support and the Lua engine. This is included and requires no configuration."
    />

  <BoolProperty
    Name="AegisubUseDSound"
    Category="Features"
    DisplayName="Use DirectSound"
    Description="Specify whether to use the DirectSound-based audio player. This requires the DirectX SDK installed."
    />
  <StringProperty
    Subtype="folder"
    Name="DirectXSDKPath"
    Category="Paths"
    DisplayName="DirectX SDK root path"
    Description="Location of DirectX SDK installation for DirectSound support, this is usually auto-detected."
    />

  <BoolProperty
    Name="AegisubUseAvisynth"
    Category="Features"
    DisplayName="Use Avisynth"
    Description="Specify whether to support Avisynth for video and audio providers. This is experimental on x64."
    />

  <BoolProperty
    Name="AegisubUseFfms"
    Category="Features"
    DisplayName="Use FFmpegSource2"
    Description="Specify whether to support FFmpegSource2 for video and audio providers. You may need to configure the location of the library on the Library paths page."
    />
  <StringProperty
    Subtype="folder"
    Name="FFmpegSourceIncludePath"
    Category="Paths"
    DisplayName="FFmpegSource2 include path"
    Description="Location of FFmpegSource2 include files"
    />
  <StringProperty
    Subtype="folder"
    Name="FFmpegSourceLibraryPath"
    Category="Paths"
    DisplayName="FFmpegSource2 library path"
    Description="Location of FFmpegSource2 library files"
    >
    <StringProperty.DataSource>
      <DataSource Persistence="UserFile" ItemType="" HasConfigurationCondition="true" />
    </StringProperty.DataSource>
  </StringProperty>
  <StringProperty
    Subtype="file"
    Name="FFmpegSourceLibraryName"
    Category="Paths"
    DisplayName="FFmpegSource2 library name"
    Description="Name of FFmpegSource2 library"
    >
    <StringProperty.DataSource>
      <DataSource Persistence="UserFile" ItemType="" HasConfigurationCondition="true" />
    </StringProperty.DataSource>
  </StringProperty>

  <BoolProperty
    Name="AegisubUseFreetype2"
    Category="Features"
    DisplayName="Use Freetype 2"
    Description="Specify whether to use Freetype 2 for font enumeration in the Font Collector. You will need to configure the location of the Freetype 2 library on the Library paths page."
    />
  <StringProperty
    Subtype="folder"
    Name="Ft2IncludePath"
    Category="Paths"
    DisplayName="Freetype 2 include path"
    Description="Location of Freetype 2 include files"
    />
  <StringProperty
    Subtype="folder"
    Name="Ft2LibraryPath"
    Category="Paths"
    DisplayName="Freetype 2 library path"
    Description="Location of Freetype 2 library files"
    >
    <StringProperty.DataSource>
      <DataSource Persistence="UserFile" ItemType="" HasConfigurationCondition="true" />
    </StringProperty.DataSource>
  </StringProperty>
  <StringProperty
    Subtype="file"
    Name="Ft2LibraryName"
    Category="Paths"
    DisplayName="Freetype 2 library name"
    Description="Name of Freetype 2 library"
    >
    <StringProperty.DataSource>
      <DataSource Persistence="UserFile" ItemType="" HasConfigurationCondition="true" />
    </StringProperty.DataSource>
  </StringProperty>

  <BoolProperty
    Name="AegisubUseHunspell"
    Category="Features"
    DisplayName="Use Hunspell"
    Description="Specify whether to use the Hunspell spell checker library. This is included and requires no configuration."
    />

  <BoolProperty
    Name="AegisubUseFftw"
    Category="Features"
    DisplayName="Use FFTW"
    Description="Specify whether to use the FFTW fourier transformation library to speed up audio spectrum rendering. You will need to configure the location of the FFTW library on the Library paths page."
    />
  <StringProperty
    Subtype="folder"
    Name="FftwIncludePath"
    Category="Paths"
    DisplayName="FFTW include path"
    Description="Location of FFTW include files"
    />
  <StringProperty
    Subtype="folder"
    Name="FftwLibraryPath"
    Category="Paths"
    DisplayName="FFTW library path"
    Description="Location of FFTW library files"
    >
    <StringProperty.DataSource>
      <DataSource Persistence="UserFile" ItemType="" HasConfigurationCondition="true" />
    </StringProperty.DataSource>
  </StringProperty>
  <StringProperty
    Subtype="file"
    Name="FftwLibraryName"
    Category="Paths"
    DisplayName="FFTW library name"
    Description="Name of FFTW library"
    >
    <StringProperty.DataSource>
      <DataSource Persistence="UserFile" ItemType="" HasConfigurationCondition="true" />
    </StringProperty.DataSource>
  </StringProperty>

  <BoolProperty
    Name="AegisubUseLibass"
    Category="Features"
    DisplayName="Use libass"
    Description="Specify whether to include support for the libass subtitle rendering library. You will need to configure the location of libass on the Library paths page."
    />
  <StringProperty
    Subtype="folder"
    Name="LibassIncludePath"
    Category="Paths"
    DisplayName="libass include path"
    Description="Location of libass include files"
    />
  <StringProperty
    Subtype="folder"
    Name="LibassLibraryPath"
    Category="Paths"
    DisplayName="libass library path"
    Description="Location of libass library files"
    >
    <StringProperty.DataSource>
      <DataSource Persistence="UserFile" ItemType="" HasConfigurationCondition="true" />
    </StringProperty.DataSource>
  </StringProperty>
  <StringProperty
    Subtype="file"
    Name="LibassLibraryName"
    Category="Paths"
    DisplayName="libass library name"
    Description="Name of libass library"
    >
    <StringProperty.DataSource>
      <DataSource Persistence="UserFile" ItemType="" HasConfigurationCondition="true" />
    </StringProperty.DataSource>
  </StringProperty>

  <EnumProperty
    Name="AegisubUseCsri"
    DisplayName="Use CSRI subtitle renderer"
    Description="Specify whether to include support for CSRI subtitle rendering. The included helper library dynamically loads CSRI renderers, while linking another library allows you to e.g. link VSFilter.dll directly."
    Category="Features"
    >
    <EnumValue Name="HelperLibrary" DisplayName="Use included helper library" Description="Use the included helper library to dynamically load CSRI renderers." />
    <EnumValue Name="External" DisplayName="Link other library" Description="Use another CSRI renderer" />
    <EnumValue Name="false" DisplayName="No CSRI support" Description="Do not use CSRI" />
  </EnumProperty>
  <StringProperty
    Subtype="folder"
    Name="CsriLibraryPath"
    Category="Paths"
    DisplayName="External CSRI library path"
    Description="Location of external CSRI library files, for when not using the CSRI helper library."
    >
    <StringProperty.DataSource>
      <DataSource Persistence="UserFile" ItemType="" HasConfigurationCondition="true" />
    </StringProperty.DataSource>
  </StringProperty>
  <StringProperty
    Subtype="file"
    Name="CsriLibraryName"
    Category="Paths"
    DisplayName="External CSRI library name"
    Description="Name of external CSRI library, for when not using the CSRI helper library"
    >
    <StringProperty.DataSource>
      <DataSource Persistence="UserFile" ItemType="" HasConfigurationCondition="true" />
    </StringProperty.DataSource>
  </StringProperty>

  <EnumProperty
    Name="AegisubSpecialBuild"
    DisplayName="Special build"
    Description="Make a special build of Aegisub, either enabling StartupLog to help end-users debug startup issues, or a Final Release whch displays version information differently."
    Category="Features"
    >
    <EnumValue Name="false" DisplayName="Make a regular build" Description="A regular developer build is made" />
    <EnumValue Name="StartupLog" DisplayName="Start-up logging" Description="Show messages during start-up to figure out where an error occurs" />
    <EnumValue Name="FinalRelease" DisplayName="Final release" Description="Shows version information in a manner suited for stable releases for general distribution." />
  </EnumProperty>

  <StringProperty
    Name="AegisubBuildCredit"
    Category="BuildInfo"
    DisplayName="Build credit"
    Description="Name the build should be credited to. Appears in the about box, and in the title bar of development builds."
    Default="Anonymous"
    >
    <StringProperty.DataSource>
      <DataSource Persistence="UserFile" ItemType="" HasConfigurationCondition="false" />
    </StringProperty.DataSource>
  </StringProperty>

  <StringProperty
    Name="SubWCRevExe"
    Subtype="file"
    Category="BuildInfo"
    DisplayName="SubWCRev.exe"
    Description="Location of the SubWCRev.exe file used to process SVN working copies. Changes to this setting are stored in user settings, not in the main project file."
    Default="SubWCRev.exe"
    >
    <StringProperty.DataSource>
      <DataSource Persistence="UserFile" ItemType="" HasConfigurationCondition="false" />
    </StringProperty.DataSource>
  </StringProperty>
  
  <StringProperty
    Name="InputFile"
    Subtype="file"
    Category="BuildInfo"
    DisplayName="Input file"
    Description="Template file to insert data to."
    ReadOnly="true"
    >
    <StringProperty.DataSource>
      <DataSource Persistence="ProjectFile" ItemType="SubWCRev" HasConfigurationCondition="false" />
    </StringProperty.DataSource>
  </StringProperty>
  <StringProperty
    Name="OutputFile"
    Subtype="file"
    Category="BuildInfo"
    DisplayName="Output file"
    Description="File to generate from the template file."
    ReadOnly="true"
    >
    <StringProperty.DataSource>
      <DataSource Persistence="ProjectFile" ItemType="SubWCRev" HasConfigurationCondition="false" />
    </StringProperty.DataSource>
  </StringProperty>
  <StringProperty
    Name="Repository"
    Subtype="folder"
    Category="BuildInfo"
    DisplayName="Working copy location"
    Description="Location of SVN working copy to extract data from."
    ReadOnly="true"
    >
    <StringProperty.DataSource>
      <DataSource Persistence="ProjectFile" ItemType="SubWCRev" HasConfigurationCondition="false" />
    </StringProperty.DataSource>
  </StringProperty>


</Rule>
