Class: RBT::Actions::Configure
Overview
Constant Summary
collapse
- REGEX_TO_CAPTURE_THE_PREFIX_FOR_CONFIGURE_BUILD_TYPES =
/(--prefix=)([-A-Za-z\/]+)\s/
- REGEX_TO_CAPTURE_THE_PREFIX_FOR_CMAKE_BUILD_TYPES =
#
REGEX_TO_CAPTURE_THE_PREFIX_FOR_CMAKE_BUILD_TYPES
#
/-DCMAKE_INSTALL_PREFIX=([\/A-Za-z]+)/
CompileBaseModule::FILE_AUTOGEN
LeanPrototype::ALL_COLOUR_METHODS, LeanPrototype::ARRAY_KDE_KONSOLE_COLOURS_IN_USE, LeanPrototype::DAY_NAMES, LeanPrototype::NAMESPACE, LeanPrototype::SILENT_REDIRECTION
Instance Method Summary
collapse
#always_show_dependencies?, #capitalize_program_names?, #cflags?, #check_whether_we_will_install_only_programs_from_the_bin_subdirectory, #cleanup_system_tag_directory, #config?, #consider_removing_libtool_la_files, #consider_symlinking_cmake_modules, #consider_symlinking_header_files_into_the_usr_include_hierarchy, #consider_symlinking_lib64_into_lib, #cookbook_dataset_autosymlink_lib64?, #cookbook_dataset_program_version?, #create_a_new_current_symlink_here, #create_architecture_file, #do_invoke_symlink_program, #do_play_song, #editor_to_use?, #email?, #exit_on_unregistered_cookbook_entries?, #has_an_error_occurred?, #host_cpu?, #install_only_binaries?, #installer_constant?, make_command?, #no_error_has_occurred?, #play_song?, #recipes_dir?, #register_program, #remove_compiling_is_in_progress, #report_to_developers, #reset_the_module, #return_build_type, #return_chained_programs, #return_files_from_the_profiles_directory, #return_these_programs, #run_ldconfig?, #shall_we_symlink_the_header_files_into_the_usr_include_hierarchy?, #store_full_configure_command_into_resources_directory, #symlink_into_tags, #symlink_into_usr_lib_dir?, #symlink_m4_macros, #symlink_program, #symlink_program?, #update_kde_apps, #use_ccache?, #use_gobolinux_symlinkprogram?, #use_mrxvt?, #use_porg?, #use_stow?, #use_tags?, #uses_appdir_prefix?, #validate_the_cookbook_aliases
#a_or_an?, #abbreviations?, #absolute_path, #action, #add_to_the_commandline_arguments, #all_binaries?, #all_files_from, #all_libraries?, #allowed_cookbook_entries?, #appdir_location_of?, #append_onto_the_internal_hash, #append_what_into, #archive_type_of?, #available_programs?, #be_quiet?, #be_verbose?, #begins_with_a_comment?, #capitalize_first_alphabetical_character, #cd_to_the_log_directory, #cd_to_the_temp_directory, #change_directory, #change_permission, #cheering_person?, #chmod, #chop_off_archive, #clear_commandline_arguments, #cliner, #coloured_and_padded_e, #coloured_and_padded_esystem, #coloured_esystem, #colourize_directory_for_system_results, #colourize_this_error, #colourize_this_file_path, #colourize_this_warning, #commandline_arguments?, #commandline_arguments_without_hyphens?, #comment, #convert_dd_mm_yyyy_to_its_long_variant, #convert_env_variable, #copy_directory, #copy_files, #cpr, #create_directory, #current_hour?, #dd_mmm_yyy, #debug, #debug?, #directory_expanded_cookbooks?, #disable_colours, #display_md5sum?, #do_not_debug, #does_the_cookbook_include_this_program?, #does_this_expanded_cookbook_file_exist_for_this_program?, #does_this_file_exist?, #does_this_file_exist_and_is_it_a_file?, #e, #eblue, #ecomment, #ecrimson, #edir, #editor?, #efancy, #eimp, #enable_colours, #enable_debug, #ensure_main_encoding_for, #eparse, #esystem, #esystem_gold, #etomato, #ewarn, #exit_program, #expanded_cookbooks_directory_exists?, #extract_this_archive, #extract_to?, #file_compiled_programs?, #file_dirname_retaining_trailing_slash, #file_predefined_installation_instructions?, #file_specification_of_registered_cookbook_entries, #find_cookbook_alias_for, #find_this_yaml_file, #first_argument?, #first_non_hyphen_argument?, #get_all_directories_from, #get_all_files_from, #get_all_programs, #get_date, #get_extended_date, #get_files_and_directories_from, #go_to_base_dir, #home_dir?, #host_system?, #infer_the_namespace, #internal_hash?, #internal_hash_set_commandline_arguments, #is_an_archive?, #is_directory?, #is_file?, #is_github_url?, #is_make_available?, #is_meson_installed?, #is_on_gobolinux?, #is_on_windows?, #is_roebe?, #is_superuser?, #is_symlink?, #is_this_a_header?, #is_this_a_library?, #is_this_program_included?, #iso_encoding?, #load_dataset_from_this_expanded_cookbook, #load_yaml, #load_yaml_file_from_the_cookbook_directory_for_this_program, #log_directory?, #main_encoding?, #meson_build_file_exists?, #months?, #move_file, #n_programs_are_available?, #n_programs_available?, #namespace?, #no_directory_exists_at, #no_directory_was_found_at, #no_opn, #no_such_file_exists, #open_in_browser, #open_in_editor, #opncomment, #opne, #opnef, #opnerev, #opnerror, #opnesystem, #opnewarn, #opnfancy, #opnn, #packages_directory?, #path_to_this_expanded_cookbooks_dataset, #pkgconfig_directory?, #populate_the_internal_hash_with_default_values, #predefined_installation_instructions?, #prepend_this_commandline_argument, #program_version_of?, #project_base_directory?, #project_yaml_directory?, #query_path?, #rarrow?, #read_file, #read_file_in_default_encoding, #read_file_with_default_encoding, #readlines, #readlines_with_proper_encoding, #register_sigint, #registered_cookbook_entries?, #remove, #remove_archive_from_the_end, #remove_comments_from_each_line, #remove_directory, #remove_double_slashes, #remove_file, #remove_newlines, #remove_parens, #remove_symlink, #remove_the_first_commandline_argument, #remove_this_commandline_argument, #remove_this_entry_from_the_commandline_arguments, #remove_trailing_ANSII_escape_code, #remove_unnecessary_data_from_url, #rename, #report_pwd, #require_the_rbt_aliases, #reset_the_internal_hash, #return_all_archives_from_this_directory, #return_appdir_prefix, #return_commandline_arguments_with_leading_hyphens, #return_current_hour_minutes_second, #return_date, #return_day_of_the_month_based_on_utc, #return_full_time, #return_hours_minutes_seconds_based_on_utc, #return_location_to_this_programs_yaml_file, #return_month_based_on_this_number, #return_month_based_on_utc, #return_opnn, #return_program_information, #return_program_name_for_gobolinux_systems, #return_pwd, #return_unicode_warning_symbol_or_empty_string, #return_utc, #return_utc_time_in_a_format_similar_to_slackware, #return_weekday_based_on_utc, #return_year_based_on_utc, #rev, #run_simulation=, #run_simulation?, #sdir, #sdir_return_pwd, #set_be_silent, #set_be_verbose, #set_first_commandline_argument, #set_namespace, #set_use_opn, #set_xorg_buffer, #sfancy, #sfile, #silent_redirection?, #silently_create_this_directory_if_it_does_not_yet_exist, #simp, #source_base_directory?, #ssym, #stderr, #store_into_this_directory?, #string_right_arrow?, #swarn, #symlink, #sysbin_directory?, #sysetc_directory?, #sysinclude_directory?, #syslib_directory?, #sysshare_directory?, #system_directory?, #temp_directory?, #to_bool, #to_camelcase, #to_iso_encoding, #to_unicode, #today?, #touch, #try_to_require_beautiful_url, #try_to_require_the_environment_information_gem, #try_to_require_the_extracter_gem, #try_to_require_the_open_gem, #try_to_require_the_xorg_buffer, #try_to_require_wget, #try_to_return_a_special_compile_component, #unicode_cliner, #unicode_middle_cliner, #use_colours=, #use_colours?, #use_opn=, #use_opn?, #utf_encoding?, #verbose_truth, #word_wrap, #write_what_into, #write_what_into_via_unicode, #yes_or_no
Constructor Details
#initialize(i = ARGV, run_already = true, &block) ⇒ Configure
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
# File 'lib/rbt/actions/individual_actions/configure/configure.rb', line 40
def initialize(
i = ARGV,
run_already = true,
&block
)
reset set_commandline_arguments(i)
if block_given?
yielded = yield
case yielded
when :be_extra_verbose
@internal_hash[:be_extra_verbose] = true
end
end
run if run_already
end
|
Instance Method Details
#automatically_try_to_determine_the_real_build_type ⇒ Object
#
automatically_try_to_determine_the_real_build_type
#
224
225
226
227
228
229
230
231
232
233
|
# File 'lib/rbt/actions/individual_actions/configure/configure.rb', line 224
def automatically_try_to_determine_the_real_build_type
build_system = RBT.infer_build_system
case build_system
when 'cmake'
set_build_type_to_use(:cmake)
end
end
|
85
86
87
|
# File 'lib/rbt/actions/individual_actions/configure/configure.rb', line 85
def
@internal_hash[:be_extra_verbose]
end
|
#build_type_is_cmake? ⇒ Boolean
113
114
115
|
# File 'lib/rbt/actions/individual_actions/configure/configure.rb', line 113
def build_type_is_cmake?
build_type_to_use? == :cmake
end
|
106
107
108
|
# File 'lib/rbt/actions/individual_actions/configure/configure.rb', line 106
def build_type_is_configure?
build_type_to_use? == :configure
end
|
#build_type_to_use? ⇒ Boolean
92
93
94
|
# File 'lib/rbt/actions/individual_actions/configure/configure.rb', line 92
def build_type_to_use?
@internal_hash[:build_type_to_use]
end
|
#do_compile_statically(be_verbose = true) ⇒ Object
#
do_compile_statically
#
186
187
188
189
190
191
192
193
|
# File 'lib/rbt/actions/individual_actions/configure/configure.rb', line 186
def do_compile_statically(
be_verbose = true
)
if be_verbose
e "#{rev}Enabling static compilation mode next - at the least trying to."
end
ENV['CFLAGS'] = ENV['CFLAGS']+' -static -g' end
|
#do_run_the_sys_command(i = ) ⇒ Object
#
do_run_the_sys_command
#
212
213
214
215
216
217
218
219
|
# File 'lib/rbt/actions/individual_actions/configure/configure.rb', line 212
def do_run_the_sys_command(
i = @internal_hash[:sys_command] )
if
e "#{rev}The current working directory is `#{sdir(return_pwd)}#{rev}`."
end
coloured_and_padded_esystem(i) { :dodgerblue }
end
|
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
|
# File 'lib/rbt/actions/individual_actions/configure/configure.rb', line 120
def (
i = commandline_arguments?
)
if i.is_a? Array
i.each {|entry|
(entry)
}
else
case i when /^-?-?use(-|_)?cmake$/
set_build_type_to_use(:cmake)
when /^-?-?statically$/,
/^-?-?static$/
do_compile_statically
when /^-?-?use(-|_)?this(-|_)?version=(.+)$/ _ = $3.to_s
e "#{rev}Modifying the prefix towards an "+
steelblue('AppDir')+rev+' prefix next, using '+
'the specified version '+steelblue(_)+'.'
new_version = _
new_prefix = RBT.return_appdir_prefix(@internal_hash[:program_name]+'-'+new_version)
@internal_hash[:sys_command].sub!(
REGEX_TO_CAPTURE_THE_PREFIX_FOR_CONFIGURE_BUILD_TYPES,
'--prefix='+new_prefix.to_s+' '
)
when /^-?-?appdir/,
/^-?-?ntrad/
if build_type_is_configure?
regex_to_use = REGEX_TO_CAPTURE_THE_PREFIX_FOR_CONFIGURE_BUILD_TYPES
elsif build_type_is_cmake?
regex_to_use = REGEX_TO_CAPTURE_THE_PREFIX_FOR_CMAKE_BUILD_TYPES
end
e rev+'Modifying the prefix towards an '+steelblue('AppDir')+
"#{rev} prefix next."
new_version = program_version?
new_prefix = RBT.return_appdir_prefix(@internal_hash[:program_name]+'-'+new_version)
if build_type_is_configure?
@internal_hash[:sys_command].sub!(
regex_to_use,
"--prefix=#{new_prefix}"
)
elsif build_type_is_cmake?
@internal_hash[:sys_command].sub!(
regex_to_use,
'-DCMAKE_INSTALL_PREFIX='+new_prefix.to_s
)
end
end
end
end
|
#program_version? ⇒ Boolean
205
206
207
|
# File 'lib/rbt/actions/individual_actions/configure/configure.rb', line 205
def program_version?
@internal_hash[:program_version]
end
|
#reset ⇒ Object
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
# File 'lib/rbt/actions/individual_actions/configure/configure.rb', line 66
def reset
super()
@internal_hash[:try_to_use_configure_options] = true
@internal_hash[:be_extra_verbose] = false
set_build_type_to_use(:configure)
end
|
#run ⇒ Object
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
|
# File 'lib/rbt/actions/individual_actions/configure/configure.rb', line 238
def run
cwd = return_pwd
work_on_this_program = File.basename(cwd)
@internal_hash[:program_name] = ProgramInformation.program_name(work_on_this_program)
@internal_hash[:program_version] = ProgramInformation.program_version(work_on_this_program)
cookbook = RBT.return_cookbook_for(@internal_hash[:program_name])
automatically_try_to_determine_the_real_build_type
case build_type_to_use?
when :configure,
:default
_ = './configure'.dup
_ << ' --prefix=/usr/'
when :cmake
_ = 'cmake'.dup
_ << ' -DCMAKE_INSTALL_PREFIX=/usr/'
else
ewarn "Unknown build type: #{steelblue(build_type_to_use?)}"
exit
end
if try_to_use_configure_options?
_ << " #{cookbook.configure_options?}"
_.rstrip! end
if cookbook.use_build_directory?
name_of_the_build_directory = cookbook.name_of_the_build_directory?
if name_of_the_build_directory.nil?
name_of_the_build_directory = 'BUILD/'
end
mkdir(name_of_the_build_directory)
cd(name_of_the_build_directory)
if build_type_is_configure?
_.prepend('.')
elsif build_type_is_cmake?
_ << (' ..')
end
end
@internal_hash[:sys_command] = _
(commandline_arguments?)
do_run_the_sys_command(@internal_hash[:sys_command])
end
|
#set_build_type_to_use(i) ⇒ Object
#
set_build_type_to_use
#
99
100
101
|
# File 'lib/rbt/actions/individual_actions/configure/configure.rb', line 99
def set_build_type_to_use(i)
@internal_hash[:build_type_to_use] = i.to_sym end
|
198
199
200
|
# File 'lib/rbt/actions/individual_actions/configure/configure.rb', line 198
def try_to_use_configure_options?
@internal_hash[:try_to_use_configure_options]
end
|