8 use Path::Tiny qw/ path cwd /;
9 use Getopt::Long qw/ GetOptions /;
15 my $cmd = $args->{cmd};
16 print "Running [@$cmd]\n";
19 die "Running [@$cmd] failed!";
24 my $IS_WIN = ( $^O eq "MSWin32" );
25 my $MAKE = $IS_WIN ? 'gmake' : 'make';
27 my $SEP = $IS_WIN ? "\\" : '/';
28 my $SUDO = $IS_WIN ? '' : 'sudo';
31 GetOptions( 'gen=s' => \$cmake_gen, )
32 or die 'Wrong options';
34 local $ENV{RUN_TESTS_VERBOSE} = 1;
35 if ( defined $cmake_gen )
37 $ENV{CMAKE_GEN} = $cmake_gen;
42 return shift(@_) =~ s%\\%\\\\%gr;
46 if ( !$ENV{SKIP_RINUTILS_INSTALL} )
50 cmd => [ qw#git clone https://github.com/shlomif/rinutils#, ]
56 qq#cd rinutils && mkdir B && cd B && cmake #
57 . " -DWITH_TEST_SUITE=OFF "
58 . ( defined($cmake_gen) ? qq# -G "$cmake_gen" # : "" )
60 defined( $ENV{CMAKE_MAKE_PROGRAM} )
61 ? " -DCMAKE_MAKE_PROGRAM=$ENV{CMAKE_MAKE_PROGRAM} "
64 . ( $IS_WIN ? " -DCMAKE_INSTALL_PREFIX=C:/foo " : '' )
65 . qq# .. && $SUDO $MAKE install#
70 do_system( { cmd => [ "cmake", "--version" ] } );
71 my $CMAKE_PREFIX_PATH;
75 $CMAKE_PREFIX_PATH = join ";", ( map { ; $IS_WIN ? "c:$_" : $_ } ("/foo") );
77 ( $ENV{CMAKE_PREFIX_PATH} //= '' ) .= ";$CMAKE_PREFIX_PATH;";
79 # ( $ENV{PKG_CONFIG_PATH} //= '' ) .= ";C:\\foo\\lib\\pkgconfig;";
80 ( $ENV{PKG_CONFIG_PATH} //= '' ) .=
81 ";/foo/lib/pkgconfig/;/c/foo/lib/pkgconfig/";
82 $ENV{RINUTILS_INCLUDE_DIR} = "C:/foo/include";
85 $cwd->child('B')->remove_tree( { safe => 0, } );
87 my $WIN32__DOUBLE_AMPERSAND__PROPER_HANDLING__NEEDED_PREFIX = "cd . &&";
91 "$WIN32__DOUBLE_AMPERSAND__PROPER_HANDLING__NEEDED_PREFIX mkdir B && cd B && cmake"
93 defined($CMAKE_PREFIX_PATH)
94 ? ( " -DCMAKE_PREFIX_PATH=" . _transform($CMAKE_PREFIX_PATH) )
98 . ( defined($cmake_gen) ? qq#-G "$cmake_gen"# : "" )
99 . " ../fortune-mod && $MAKE && $MAKE check"