Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Re^13: Need help debugging Wx on Strawberry Perl 5.26.1

by Corion (Patriarch)
on Aug 27, 2019 at 07:38 UTC ( #11105110=note: print w/replies, xml ) Need Help??

in reply to Re^12: Need help debugging Wx on Strawberry Perl 5.26.1
in thread Need help debugging Wx on Strawberry Perl 5.26.1

Thanks for the link, this will certainly help. As this goes into Module::Build territory, and I'm not keen on learning on how to make Module::Build add arbitrary commands to the created Build (well, Build.bat) script, I won't change my patch. Somebody with knowledge of Module::Build is welcome to take my patch and make things work right out of the box.

The appropriate commands would likely be (ignoring systems where we have

set SHELL=cmd.exe

... and, after appropriate munging in Perl to remove all offending directories in $ENV{PATH}:

set PATH=$cleaned_path

$cleaned_path would likely be something like:

my $cleaned_path = join ";", grep { ! -f "$_\\sh.exe" && ! -f "$_\\cc1.exe" } split /;/, $ENV{PATH} ;

Replies are listed 'Best First'.
Re^14: Need help debugging Wx on Strawberry Perl 5.26.1
by Anonymous Monk on Aug 28, 2019 at 07:08 UTC

    This works for me as in it starts building and doesn't die immediately with CreateProcess(NULL, better than renaming sh.exe and make.exe :)

    Alien-wxWidgets-0.69\inc\My\Build\ sub build_wxwidgets { my $self = shift; my $old_dir = Cwd::cwd(); my $uni = $self->awx_unicode ? 'UNICODE=1' : 'UNICODE=0'; my $mslu = $self->awx_mslu ? 'MSLU=1' : 'MSLU=0'; my $dbg = $self->awx_debug ? 'BUILD=debug' : 'BUILD=release'; my $opt = join ' ', $uni, $mslu, $dbg, 'SHARED=1', 'SHELL=cmd.exe' +;

    This was a flop , dies with CreateProcess(NULL, probably all that reboot talk ... nonsense :)

    Alien-wxWidgets-0.69\inc\My\Build\ sub massage_environment { my( $self ) = shift; if( $self->notes( 'build_wx' ) ) { $ENV{WXWIN} = $ENV{WXDIR} = File::Spec->rel2abs ( $self->notes( 'build_data' )->{data}{directory} ); $ENV{SHELL} = 'cmd.exe' if $Config::Config{sh}=~/cmd/i; my $mingw_gcc = My::Build::Base->awx_path_search( '*-gcc-*.exe +' ); # i686-w64-mingw32-gcc-4.6.3.exe my $basename = File::Basename::basename($mingw_gcc, '.exe' ); $basename = "libexec/gcc/$1/$2" if $basename =~ m{^(.+?)-gcc-( +.+)}is; my $new_path = File::Spec->rel2abs( File::Spec->catfile( File::Basename::dirname($mingw_gcc) , File::Spec->updir, $basename ) ); #~ die "SHELL=$ENV{SHELL}\n$mingw_gcc\n$basename\n$new_path"; $ENV{PATH}.=';'.$new_path; ## didnt work } }

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11105110]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (3)
As of 2023-03-26 19:28 GMT
Find Nodes?
    Voting Booth?
    Which type of climate do you prefer to live in?

    Results (63 votes). Check out past polls.