easycompile 1.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/README.md +216 -0
- data/bin/easycompile +7 -0
- data/doc/DESIGN_DECISIONS.md +34 -0
- data/doc/README.gen +189 -0
- data/doc/todo/todo_for_the_easycompile_project.md +0 -0
- data/easycompile.gemspec +66 -0
- data/lib/easycompile/base/change_directory.rb +28 -0
- data/lib/easycompile/base/cmake.rb +53 -0
- data/lib/easycompile/base/colours.rb +88 -0
- data/lib/easycompile/base/commandline_arguments.rb +37 -0
- data/lib/easycompile/base/constants.rb +24 -0
- data/lib/easycompile/base/easycompile.rb +22 -0
- data/lib/easycompile/base/esystem.rb +59 -0
- data/lib/easycompile/base/gem.rb +35 -0
- data/lib/easycompile/base/help.rb +38 -0
- data/lib/easycompile/base/initialize.rb +33 -0
- data/lib/easycompile/base/menu.rb +140 -0
- data/lib/easycompile/base/meson_and_ninja.rb +36 -0
- data/lib/easycompile/base/misc.rb +1157 -0
- data/lib/easycompile/base/opn.rb +27 -0
- data/lib/easycompile/base/process_the_input.rb +107 -0
- data/lib/easycompile/base/remove.rb +77 -0
- data/lib/easycompile/base/reset.rb +140 -0
- data/lib/easycompile/base/run.rb +26 -0
- data/lib/easycompile/compile_as_appdir/compile_as_appdir.rb +45 -0
- data/lib/easycompile/constants/array_possible_archives.rb +45 -0
- data/lib/easycompile/constants/constants.rb +21 -0
- data/lib/easycompile/constants/file_and_directory_constants.rb +137 -0
- data/lib/easycompile/constants/misc.rb +23 -0
- data/lib/easycompile/constants/namespace.rb +16 -0
- data/lib/easycompile/constants/programs_directory.rb +46 -0
- data/lib/easycompile/easycompile/easycompile.rb +89 -0
- data/lib/easycompile/images/logo/EASYCOMPILE_LOGO.png +0 -0
- data/lib/easycompile/project/project.rb +29 -0
- data/lib/easycompile/requires/require_the_easycompile_project.rb +13 -0
- data/lib/easycompile/requires/require_the_toplevel_methods.rb +11 -0
- data/lib/easycompile/toplevel_methods/copy_file.rb +23 -0
- data/lib/easycompile/toplevel_methods/misc.rb +54 -0
- data/lib/easycompile/toplevel_methods/rinstall2.rb +29 -0
- data/lib/easycompile/version/version.rb +26 -0
- data/lib/easycompile/yaml/name_of_the_build_directory.yml +1 -0
- data/lib/easycompile.rb +5 -0
- data/test/testing_easycompile.rb +29 -0
- metadata +147 -0
@@ -0,0 +1,88 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# By default we will try to use colours, even if the default value
|
6
|
+
# for the toplevel instance variable @can_we_use_colours is set to
|
7
|
+
# false - it will typically become true at a later point, in this
|
8
|
+
# file.
|
9
|
+
# =========================================================================== #
|
10
|
+
# require 'easycompile/base/colours.rb'
|
11
|
+
# =========================================================================== #
|
12
|
+
module Easycompile
|
13
|
+
|
14
|
+
# =========================================================================== #
|
15
|
+
# === @can_we_use_colours
|
16
|
+
# =========================================================================== #
|
17
|
+
@can_we_use_colours = false
|
18
|
+
|
19
|
+
# =========================================================================== #
|
20
|
+
# === Easycompile.set_can_we_use_colours
|
21
|
+
# =========================================================================== #
|
22
|
+
def self.set_can_we_use_colours(i = true)
|
23
|
+
@can_we_use_colours = i
|
24
|
+
end; self.instance_eval { alias can_we_use_colours= set_can_we_use_colours } # === Easycompile.can_we_use_colours=
|
25
|
+
|
26
|
+
# =========================================================================== #
|
27
|
+
# === Easycompile.can_we_use_colours?
|
28
|
+
# =========================================================================== #
|
29
|
+
def self.can_we_use_colours?
|
30
|
+
@can_we_use_colours
|
31
|
+
end
|
32
|
+
|
33
|
+
class Base # === Easycompile::Base
|
34
|
+
|
35
|
+
begin
|
36
|
+
require 'colours'
|
37
|
+
::Easycompile.can_we_use_colours = true
|
38
|
+
rescue LoadError
|
39
|
+
::Easycompile.can_we_use_colours = false
|
40
|
+
end
|
41
|
+
|
42
|
+
if ::Easycompile.can_we_use_colours?
|
43
|
+
include Colours
|
44
|
+
else
|
45
|
+
alias e puts
|
46
|
+
end
|
47
|
+
|
48
|
+
# ========================================================================= #
|
49
|
+
# === use_colours?
|
50
|
+
# ========================================================================= #
|
51
|
+
def use_colours?
|
52
|
+
::Easycompile.can_we_use_colours?
|
53
|
+
end
|
54
|
+
|
55
|
+
# ========================================================================= #
|
56
|
+
# === rev
|
57
|
+
# ========================================================================= #
|
58
|
+
def rev
|
59
|
+
if use_colours?
|
60
|
+
::Colours.rev
|
61
|
+
else
|
62
|
+
''
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
# ========================================================================= #
|
67
|
+
# === e_colourize
|
68
|
+
# ========================================================================= #
|
69
|
+
def e_colourize(i)
|
70
|
+
if use_colours?
|
71
|
+
e sfancy(i)
|
72
|
+
else
|
73
|
+
e i
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
# ========================================================================= #
|
78
|
+
# === ecomment
|
79
|
+
# ========================================================================= #
|
80
|
+
def ecomment(i)
|
81
|
+
if use_colours?
|
82
|
+
::Colours.ecomment(i)
|
83
|
+
else
|
84
|
+
i
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
end; end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# require 'easycompile/base/commandline_arguments.rb'
|
6
|
+
# =========================================================================== #
|
7
|
+
module Easycompile
|
8
|
+
|
9
|
+
class Base
|
10
|
+
|
11
|
+
# ========================================================================= #
|
12
|
+
# === commandline_arguments?
|
13
|
+
# ========================================================================= #
|
14
|
+
def commandline_arguments?
|
15
|
+
@commandline_arguments
|
16
|
+
end
|
17
|
+
|
18
|
+
# ========================================================================= #
|
19
|
+
# === set_commandline_arguments
|
20
|
+
# ========================================================================= #
|
21
|
+
def set_commandline_arguments(i)
|
22
|
+
@commandline_arguments = [i].flatten.compact
|
23
|
+
end
|
24
|
+
|
25
|
+
# ========================================================================= #
|
26
|
+
# === return_all_arguments_with_hyphens
|
27
|
+
#
|
28
|
+
# This method will select all commandline arguments that begin with
|
29
|
+
# two -- hyphens.
|
30
|
+
# ========================================================================= #
|
31
|
+
def return_all_arguments_with_hyphens
|
32
|
+
@commandline_arguments.select {|entry|
|
33
|
+
entry.start_with? '--'
|
34
|
+
}
|
35
|
+
end
|
36
|
+
|
37
|
+
end; end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# require 'easycompile/base/constants.rb'
|
6
|
+
# =========================================================================== #
|
7
|
+
require 'easycompile/constants/constants.rb'
|
8
|
+
|
9
|
+
module Easycompile
|
10
|
+
|
11
|
+
class Base # === Easycompile::Base
|
12
|
+
|
13
|
+
include ::Easycompile::Constants
|
14
|
+
|
15
|
+
# ========================================================================= #
|
16
|
+
# === THIS_FILE
|
17
|
+
#
|
18
|
+
# This constant refers to the main .rb file for class Easycompile::Base,
|
19
|
+
# that is the file that contains most of the ruby code for the Base
|
20
|
+
# class.
|
21
|
+
# ========================================================================= #
|
22
|
+
THIS_FILE = "#{PROJECT_BASE_DIR}base/misc.rb"
|
23
|
+
|
24
|
+
end; end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# === Easycompile::Base
|
6
|
+
#
|
7
|
+
# This file will handle the installation of gems, which is the
|
8
|
+
# ruby-addon stuff.
|
9
|
+
# =========================================================================== #
|
10
|
+
# require 'easycompile/base/easycompile.rb'
|
11
|
+
# =========================================================================== #
|
12
|
+
require 'easycompile/base/change_directory.rb'
|
13
|
+
require 'easycompile/base/cmake.rb'
|
14
|
+
require 'easycompile/base/constants.rb'
|
15
|
+
require 'easycompile/base/initialize.rb'
|
16
|
+
require 'easycompile/base/gem.rb'
|
17
|
+
require 'easycompile/base/menu.rb'
|
18
|
+
require 'easycompile/base/meson_and_ninja.rb'
|
19
|
+
require 'easycompile/base/misc.rb'
|
20
|
+
require 'easycompile/base/opn.rb'
|
21
|
+
require 'easycompile/base/reset.rb'
|
22
|
+
require 'easycompile/base/run.rb'
|
@@ -0,0 +1,59 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# require 'easycompile/base/esystem.rb'
|
6
|
+
# =========================================================================== #
|
7
|
+
module Easycompile
|
8
|
+
|
9
|
+
class Base
|
10
|
+
|
11
|
+
require 'easycompile/constants/misc.rb'
|
12
|
+
# ========================================================================= #
|
13
|
+
# === esystem
|
14
|
+
#
|
15
|
+
# Run a colourized system() command here.
|
16
|
+
#
|
17
|
+
# This can either be through oldschool system(), or as of August 2017,
|
18
|
+
# preferentially via IO.popen().
|
19
|
+
# ========================================================================= #
|
20
|
+
def esystem(i)
|
21
|
+
e_colourize(i) # Output it here already.
|
22
|
+
i = i.dup if i.frozen?
|
23
|
+
i << ERROR_LINE
|
24
|
+
@result = i # Not in use right now.
|
25
|
+
internal_system(i) # Defined in this file here.
|
26
|
+
end; alias _ esystem # === _
|
27
|
+
|
28
|
+
# ========================================================================= #
|
29
|
+
# === cparser_is_available?
|
30
|
+
#
|
31
|
+
# Determine whether we can use the ColourizeParser from the RBT
|
32
|
+
# project.
|
33
|
+
# ========================================================================= #
|
34
|
+
def cparser_is_available?
|
35
|
+
Object.const_defined?(:RBT) and
|
36
|
+
RBT.const_defined?(:ColourizeParser)
|
37
|
+
end
|
38
|
+
|
39
|
+
# ========================================================================= #
|
40
|
+
# === internal_system
|
41
|
+
#
|
42
|
+
# The key idea for this method is to handle system()-related calls
|
43
|
+
# via IO.popen(). This gives us more control over as to what to
|
44
|
+
# do with the given input and output.
|
45
|
+
# ========================================================================= #
|
46
|
+
def internal_system(i)
|
47
|
+
cparser_is_available = cparser_is_available?
|
48
|
+
cparser = @colourize_parser if cparser_is_available
|
49
|
+
io_object = IO.popen(i, :err => [:child, :out]).each { |line|
|
50
|
+
if cparser_is_available
|
51
|
+
cparser.grab_this_line(line) # The cparser object will deal with colours.
|
52
|
+
line = cparser.line?
|
53
|
+
end
|
54
|
+
e line # Output here.
|
55
|
+
}
|
56
|
+
io_object.close # Close it here.
|
57
|
+
end
|
58
|
+
|
59
|
+
end; end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# This file will handle the installation of gems, which is the
|
6
|
+
# ruby-addon stuff.
|
7
|
+
# =========================================================================== #
|
8
|
+
# require 'easycompile/base/gem.rb'
|
9
|
+
# =========================================================================== #
|
10
|
+
module Easycompile
|
11
|
+
|
12
|
+
class Base
|
13
|
+
|
14
|
+
require 'easycompile/base/esystem.rb'
|
15
|
+
# ========================================================================= #
|
16
|
+
# === install_this_gem
|
17
|
+
#
|
18
|
+
# Consistently use this method when trying to install a gem.
|
19
|
+
#
|
20
|
+
# We will ignore the dependencies, though, to speed up the
|
21
|
+
# installation process.
|
22
|
+
# ========================================================================= #
|
23
|
+
def install_this_gem(i)
|
24
|
+
_ = "gem install --ignore-dependencies #{i}"
|
25
|
+
esystem(_)
|
26
|
+
end
|
27
|
+
|
28
|
+
# ========================================================================= #
|
29
|
+
# === is_a_gem?
|
30
|
+
# ========================================================================= #
|
31
|
+
def is_a_gem?(i)
|
32
|
+
i.end_with? '.gem'
|
33
|
+
end
|
34
|
+
|
35
|
+
end; end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# require 'easycompile/base/help.rb'
|
6
|
+
# =========================================================================== #
|
7
|
+
module Easycompile
|
8
|
+
|
9
|
+
class Base
|
10
|
+
|
11
|
+
# ========================================================================= #
|
12
|
+
# === show_help (help tag)
|
13
|
+
# ========================================================================= #
|
14
|
+
def show_help(
|
15
|
+
optional_shall_we_exit = false
|
16
|
+
)
|
17
|
+
case optional_shall_we_exit
|
18
|
+
when :then_exit
|
19
|
+
optional_shall_we_exit = true
|
20
|
+
end
|
21
|
+
e
|
22
|
+
opn_namespace; e 'The following help options are documented:'
|
23
|
+
e
|
24
|
+
ecomment ' --appdir # Compile as Appdir, into '\
|
25
|
+
'its own prefix.'
|
26
|
+
ecomment ' --remove-all-after-compile # Remove '\
|
27
|
+
'the archive after compilation is done.'
|
28
|
+
ecomment ' --with-deps '\
|
29
|
+
'# Compile with dependencies.'
|
30
|
+
ecomment ' --extract-to=/Depot/opt/ '\
|
31
|
+
'# extract to that particular directory.'
|
32
|
+
ecomment ' --homedir # '\
|
33
|
+
'Compile into the home-directory as prefix'
|
34
|
+
e
|
35
|
+
exit if optional_shall_we_exit
|
36
|
+
end
|
37
|
+
|
38
|
+
end; end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# require 'easycompile/base/initialize.rb'
|
6
|
+
# =========================================================================== #
|
7
|
+
module Easycompile
|
8
|
+
|
9
|
+
class Base
|
10
|
+
|
11
|
+
# ========================================================================= #
|
12
|
+
# === initialize
|
13
|
+
# ========================================================================= #
|
14
|
+
def initialize(
|
15
|
+
commandline_arguments = ARGV,
|
16
|
+
run_already = true
|
17
|
+
)
|
18
|
+
reset
|
19
|
+
set_commandline_arguments(
|
20
|
+
commandline_arguments
|
21
|
+
)
|
22
|
+
case run_already
|
23
|
+
# ======================================================================= #
|
24
|
+
# === :dont_run_yet
|
25
|
+
# ======================================================================= #
|
26
|
+
when :dont_run_yet,
|
27
|
+
:do_not_run_yet
|
28
|
+
run_already = false
|
29
|
+
end
|
30
|
+
run if run_already
|
31
|
+
end
|
32
|
+
|
33
|
+
end; end
|
@@ -0,0 +1,140 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# require 'easycompile/base/menu.rb'
|
6
|
+
# =========================================================================== #
|
7
|
+
module Easycompile
|
8
|
+
|
9
|
+
class Base
|
10
|
+
|
11
|
+
# ========================================================================= #
|
12
|
+
# === menu
|
13
|
+
# ========================================================================= #
|
14
|
+
def menu(
|
15
|
+
i = commandline_arguments?
|
16
|
+
)
|
17
|
+
if i.is_a? Array
|
18
|
+
i.each {|entry| menu(entry) }
|
19
|
+
else
|
20
|
+
case i
|
21
|
+
# ===================================================================== #
|
22
|
+
# === ecompile --home_dir
|
23
|
+
# ===================================================================== #
|
24
|
+
when /^-?-?home(_|-)?dir$/,
|
25
|
+
/^-?-?home(_|-)?directory$/,
|
26
|
+
/^-?-?home$/
|
27
|
+
set_prefix(:home_directory)
|
28
|
+
# ===================================================================== #
|
29
|
+
# === ecompile --help
|
30
|
+
#
|
31
|
+
# This option allows us to show the available help options, on
|
32
|
+
# the commandline.
|
33
|
+
# ===================================================================== #
|
34
|
+
when /^-?-?help$/i,
|
35
|
+
/^-?h$/i
|
36
|
+
show_help :then_exit
|
37
|
+
# ===================================================================== #
|
38
|
+
# === easycompile --homedir
|
39
|
+
# ===================================================================== #
|
40
|
+
when /^-?-?home(_|-)?dir$/i
|
41
|
+
use_the_home_directory_as_prefix
|
42
|
+
# ===================================================================== #
|
43
|
+
# === easycompile --OPEN_ITSELF
|
44
|
+
# ===================================================================== #
|
45
|
+
when /^-?-?OPEN(_|-)?ITSELF$/i,
|
46
|
+
/^-?-?OPEN$i/ # OPEN_SELF
|
47
|
+
open_this_file
|
48
|
+
exit
|
49
|
+
# ===================================================================== #
|
50
|
+
# === ALL
|
51
|
+
# ===================================================================== #
|
52
|
+
when /^-?-?all$/i,
|
53
|
+
/^-?-?everything$/i
|
54
|
+
set_compile_these_programs Dir['*']
|
55
|
+
# ===================================================================== #
|
56
|
+
# === --remove-all-after-compile
|
57
|
+
# ===================================================================== #
|
58
|
+
when /^-?-?remove(_|-| )?all(_|-| )?after(_|-| )?compile$/i
|
59
|
+
do_remove_all_after_compile
|
60
|
+
# ===================================================================== #
|
61
|
+
# === set_extract_to
|
62
|
+
#
|
63
|
+
# This entry allows us to define a custom temp-directory.
|
64
|
+
#
|
65
|
+
# Invocation example:
|
66
|
+
#
|
67
|
+
# ecompile php* --extract-to=/Depot/opt/
|
68
|
+
#
|
69
|
+
# ===================================================================== #
|
70
|
+
when /^-?-?set(_|-| )?extract(_|-| )?to=(.+)$/i, # $3
|
71
|
+
/^-?-?extract(_|-| )?to=(.+)$/i # $2
|
72
|
+
_ = $2
|
73
|
+
_ = $3.to_s.dup if $3
|
74
|
+
set_extract_to(_) { :be_verbose }
|
75
|
+
# ===================================================================== #
|
76
|
+
# === ecompile --sco
|
77
|
+
#
|
78
|
+
# Invocation example:
|
79
|
+
#
|
80
|
+
# ecompile --sco php*xz
|
81
|
+
#
|
82
|
+
# ===================================================================== #
|
83
|
+
when /^-?-?sco$/i,
|
84
|
+
/^-?-?extended-configure-options$/i,
|
85
|
+
/^-?-?use-configure-options$/i
|
86
|
+
@try_to_use_extended_configure_options = true
|
87
|
+
# ===================================================================== #
|
88
|
+
# === --wdeps
|
89
|
+
# ===================================================================== #
|
90
|
+
when /^-?-?wdeps$/i,
|
91
|
+
/^-?-?with(_|-| )?deps$/i
|
92
|
+
do_compile_with_dependencies
|
93
|
+
# ===================================================================== #
|
94
|
+
# === --skipmakeinstall
|
95
|
+
# ===================================================================== #
|
96
|
+
when /^-?-?SKIP_?MAKE_?INSTALL/i,
|
97
|
+
'NO_MAKE_INSTALL',
|
98
|
+
'NOMAKEINSTALL',
|
99
|
+
'NOINSTALL',
|
100
|
+
'SKIPINSTALL'
|
101
|
+
enable_skip_make_install # Skip the "make install" step.
|
102
|
+
# ===================================================================== #
|
103
|
+
# === --dontcompile
|
104
|
+
# ===================================================================== #
|
105
|
+
when /^-?-?DONT(_|-| )?COMPILE$/i
|
106
|
+
enable_dont_compile
|
107
|
+
# ===================================================================== #
|
108
|
+
# === --skip_extracting
|
109
|
+
# ===================================================================== #
|
110
|
+
when 'SKIP_EXTRACT',
|
111
|
+
/^-?-?SKIP(_|-| )?EXTRACTING$/i,
|
112
|
+
'SKIPEXTRACTING'
|
113
|
+
skip_extracting
|
114
|
+
# ===================================================================== #
|
115
|
+
# === --appdir
|
116
|
+
# ===================================================================== #
|
117
|
+
when /^-?-?appdir$/i
|
118
|
+
set_prefix :appdir
|
119
|
+
opn; e 'Will compile as AppDir. The prefix now is '+simp(prefix?.to_s)
|
120
|
+
else # else tag
|
121
|
+
if File.exist?(i) or i.end_with?('.yml')
|
122
|
+
add_this_archive(i)
|
123
|
+
else
|
124
|
+
# ================================================================= #
|
125
|
+
# Next, we will attempt to find a valid entry.
|
126
|
+
# ================================================================= #
|
127
|
+
i = attempt_to_find_a_valid_file(i)
|
128
|
+
if i.respond_to?(:select)
|
129
|
+
add_these_files(
|
130
|
+
i.select {|file|
|
131
|
+
File.exist? file.to_s
|
132
|
+
}
|
133
|
+
)
|
134
|
+
end
|
135
|
+
end
|
136
|
+
end
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
end; end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# require 'easycompile/base/meson_and_ninja.rb'
|
6
|
+
# =========================================================================== #
|
7
|
+
module Easycompile
|
8
|
+
|
9
|
+
class Base
|
10
|
+
|
11
|
+
# ========================================================================= #
|
12
|
+
# === compile_as_meson_based_project
|
13
|
+
# ========================================================================= #
|
14
|
+
def compile_as_meson_based_project
|
15
|
+
use_this_build_directory = name_of_the_build_directory?
|
16
|
+
esystem 'meson --prefix='+prefix?+' '+use_this_build_directory
|
17
|
+
cd(use_this_build_directory)
|
18
|
+
ninjait
|
19
|
+
end
|
20
|
+
|
21
|
+
# ========================================================================= #
|
22
|
+
# === does_a_meson_build_file_exist?
|
23
|
+
# ========================================================================= #
|
24
|
+
def does_a_meson_build_file_exist?
|
25
|
+
File.exist?(MESON_BUILD_FILE)
|
26
|
+
end
|
27
|
+
|
28
|
+
# ========================================================================= #
|
29
|
+
# === ninjait
|
30
|
+
# ========================================================================= #
|
31
|
+
def ninjait
|
32
|
+
esystem 'ninja'
|
33
|
+
esystem 'ninja install'
|
34
|
+
end
|
35
|
+
|
36
|
+
end; end
|