105 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
		
		
			
		
	
	
			105 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
|   | require 'constants' | ||
|  | require 'file_path_utils' | ||
|  | 
 | ||
|  | 
 | ||
|  | desc "Display build environment version info." | ||
|  | task :version do | ||
|  |   tools = [ | ||
|  |       ['  Ceedling', CEEDLING_ROOT], | ||
|  |       ['CException', File.join( CEEDLING_VENDOR, CEXCEPTION_ROOT_PATH)], | ||
|  |       ['     CMock', File.join( CEEDLING_VENDOR, CMOCK_ROOT_PATH)], | ||
|  |       ['     Unity', File.join( CEEDLING_VENDOR, UNITY_ROOT_PATH)], | ||
|  |     ] | ||
|  |    | ||
|  |   tools.each do |tool| | ||
|  |     name      = tool[0] | ||
|  |     base_path = tool[1] | ||
|  |      | ||
|  |     version_string = @ceedling[:file_wrapper].read( File.join(base_path, 'release', 'version.info') ).strip | ||
|  |     build_string   = @ceedling[:file_wrapper].read( File.join(base_path, 'release', 'build.info') ).strip | ||
|  |     puts "#{name}:: #{version_string.empty? ? '#.#.' : (version_string + '.')}#{build_string.empty? ? '?' : build_string}" | ||
|  |   end | ||
|  | end | ||
|  | 
 | ||
|  | 
 | ||
|  | desc "Set verbose output (silent:[#{Verbosity::SILENT}] - obnoxious:[#{Verbosity::OBNOXIOUS}])." | ||
|  | task :verbosity, :level do |t, args| | ||
|  |   verbosity_level = args.level.to_i | ||
|  |    | ||
|  |   if (PROJECT_USE_MOCKS) | ||
|  |     # don't store verbosity level in setupinator's config hash, use a copy; | ||
|  |     # otherwise, the input configuration will change and trigger entire project rebuilds | ||
|  |     hash = @ceedling[:setupinator].config_hash[:cmock].clone | ||
|  |     hash[:verbosity] = verbosity_level | ||
|  | 
 | ||
|  |     @ceedling[:cmock_builder].manufacture( hash )   | ||
|  |   end | ||
|  | 
 | ||
|  |   @ceedling[:configurator].project_verbosity = verbosity_level | ||
|  | 
 | ||
|  |   # control rake's verbosity with new setting | ||
|  |   verbose( ((verbosity_level >= Verbosity::OBNOXIOUS) ? true : false) ) | ||
|  | end | ||
|  | 
 | ||
|  | 
 | ||
|  | desc "Enable logging" | ||
|  | task :logging do | ||
|  |   @ceedling[:configurator].project_logging = true | ||
|  | end | ||
|  | 
 | ||
|  | 
 | ||
|  | # non advertised debug task | ||
|  | task :debug do | ||
|  |   Rake::Task[:verbosity].invoke(Verbosity::DEBUG) | ||
|  |   Rake.application.options.trace = true | ||
|  |   @ceedling[:configurator].project_debug = true | ||
|  | end | ||
|  | 
 | ||
|  | 
 | ||
|  | # non advertised sanity checking task | ||
|  | task :sanity_checks, :level do |t, args| | ||
|  |   check_level = args.level.to_i | ||
|  |   @ceedling[:configurator].sanity_checks = check_level | ||
|  | end | ||
|  | 
 | ||
|  | 
 | ||
|  | # list expanded environment variables | ||
|  | if (not ENVIRONMENT.empty?) | ||
|  | desc "List all configured environment variables." | ||
|  | task :environment do | ||
|  |   ENVIRONMENT.each do |env| | ||
|  |     env.each_key do |key| | ||
|  |       name = key.to_s.upcase | ||
|  |       puts " - #{name}: \"#{env[key]}\"" | ||
|  |     end | ||
|  |   end   | ||
|  | end | ||
|  | end | ||
|  | 
 | ||
|  | 
 | ||
|  | namespace :options do | ||
|  | 
 | ||
|  |   COLLECTION_PROJECT_OPTIONS.each do |option_path| | ||
|  |     option = File.basename(option_path, '.yml') | ||
|  | 
 | ||
|  |     desc "Merge #{option} project options." | ||
|  |     task option.downcase.to_sym do | ||
|  |       # @ceedling[:setupinator].reset_defaults( @ceedling[:setupinator].config_hash ) | ||
|  |       hash = @ceedling[:project_config_manager].merge_options( @ceedling[:setupinator].config_hash, option_path ) | ||
|  |       @ceedling[:setupinator].do_setup( hash ) | ||
|  |     end | ||
|  |   end | ||
|  | 
 | ||
|  | end | ||
|  | 
 | ||
|  | 
 | ||
|  | # do not present task if there's no plugins | ||
|  | if (not PLUGINS_ENABLED.empty?) | ||
|  | desc "Execute plugin result summaries (no build triggering)." | ||
|  | task :summary do | ||
|  | 	@ceedling[:plugin_manager].summary | ||
|  |   puts "\nNOTE: Summaries may be out of date with project sources.\n\n" | ||
|  | end | ||
|  | end | ||
|  | 
 |