The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package My::Builder::Windows;

use strict;
use warnings;
use base 'My::Builder';

sub can_build_binaries_from_sources {
  my $self = shift;
  return 0; # no
}

sub build_binaries {
  my( $self, $build_out, $build_src ) = @_;
  die "###ERROR### Building from sources not supported on MS Windows platform";
}

sub get_path {
  my ( $self, $path ) = @_;
  $path = '"' . $path . '"';
  return $path;
}

sub get_additional_cflags {
  my $self = shift;
  if($My::Utility::cc eq 'cl' && $self->notes('env_include')) {
    my $include = $self->notes('env_include');
    $include    =~ s/"//g;
    my @include = split(/;/, $include);
    my $cflags  = '';
    my $inc = $_;
    for( @include ) {
      my $inc = eval { require Win32; Win32::GetShortPathName($_); };
      $inc ||= $_;
      $cflags    .= "-I\"$inc\" " ;
    }
    return $cflags;
  }
  return '';
}

sub get_additional_libs {
  my $self = shift;
  if($My::Utility::cc eq 'cl' && $self->notes('env_lib')) {
    my $lib  = $self->notes('env_lib');
    $lib     =~ s/"//g;
    my @libs = split(/;/, $lib);
    my $libs = '';
    my $inc  = $_;
    for( @libs ) {
      my $_lib = $self->escape_path( $_ );
      $libs   .= "/LIBPATH:$_lib " ;
    }
    return $libs;
  }
  return '';
}

sub escape_path {
  my( $self, $path ) = @_;
  my $_path          = eval { require Win32; Win32::GetShortPathName($path); };
  $_path           ||= $path;
  $_path             = qq("$_path") if $_path =~ / /;

  return $_path;
}

1;