- add ceedling/cmock/unity as testing framework and support
- unified makefile project for the whole repos - new separate project for tests
This commit is contained in:
79
tests/vendor/ceedling/lib/rules_release.rake
vendored
Normal file
79
tests/vendor/ceedling/lib/rules_release.rake
vendored
Normal file
@@ -0,0 +1,79 @@
|
||||
|
||||
RELEASE_COMPILE_TASK_ROOT = RELEASE_TASK_ROOT + 'compile:'
|
||||
RELEASE_ASSEMBLE_TASK_ROOT = RELEASE_TASK_ROOT + 'assemble:'
|
||||
|
||||
|
||||
if (RELEASE_BUILD_USE_ASSEMBLY)
|
||||
rule(/#{PROJECT_RELEASE_BUILD_OUTPUT_ASM_PATH}\/#{'.+\\'+EXTENSION_OBJECT}$/ => [
|
||||
proc do |task_name|
|
||||
@ceedling[:file_finder].find_assembly_file(task_name)
|
||||
end
|
||||
]) do |object|
|
||||
@ceedling[:generator].generate_object_file(
|
||||
TOOLS_RELEASE_ASSEMBLER,
|
||||
RELEASE_SYM,
|
||||
object.source,
|
||||
object.name )
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
rule(/#{PROJECT_RELEASE_BUILD_OUTPUT_C_PATH}\/#{'.+\\'+EXTENSION_OBJECT}$/ => [
|
||||
proc do |task_name|
|
||||
@ceedling[:file_finder].find_compilation_input_file(task_name)
|
||||
end
|
||||
]) do |object|
|
||||
@ceedling[:generator].generate_object_file(
|
||||
TOOLS_RELEASE_COMPILER,
|
||||
RELEASE_SYM,
|
||||
object.source,
|
||||
object.name,
|
||||
@ceedling[:file_path_utils].form_release_build_c_list_filepath( object.name ) )
|
||||
end
|
||||
|
||||
|
||||
rule(/#{PROJECT_RELEASE_BUILD_TARGET}/) do |bin_file|
|
||||
map_file = @ceedling[:configurator].project_release_build_map
|
||||
@ceedling[:generator].generate_executable_file(
|
||||
TOOLS_RELEASE_LINKER,
|
||||
RELEASE_SYM,
|
||||
bin_file.prerequisites,
|
||||
bin_file.name,
|
||||
map_file )
|
||||
@ceedling[:release_invoker].artifactinate( bin_file.name, map_file, @ceedling[:configurator].release_build_artifacts )
|
||||
end
|
||||
|
||||
|
||||
namespace RELEASE_SYM do
|
||||
# use rules to increase efficiency for large projects (instead of iterating through all sources and creating defined tasks)
|
||||
|
||||
namespace :compile do
|
||||
rule(/^#{RELEASE_COMPILE_TASK_ROOT}\S+#{'\\'+EXTENSION_SOURCE}$/ => [ # compile task names by regex
|
||||
proc do |task_name|
|
||||
source = task_name.sub(/#{RELEASE_COMPILE_TASK_ROOT}/, '')
|
||||
@ceedling[:file_finder].find_source_file(source, :error)
|
||||
end
|
||||
]) do |compile|
|
||||
@ceedling[:rake_wrapper][:directories].invoke
|
||||
@ceedling[:project_config_manager].process_release_config_change
|
||||
@ceedling[:release_invoker].setup_and_invoke_c_objects( [compile.source] )
|
||||
end
|
||||
end
|
||||
|
||||
if (RELEASE_BUILD_USE_ASSEMBLY)
|
||||
namespace :assemble do
|
||||
rule(/^#{RELEASE_ASSEMBLE_TASK_ROOT}\S+#{'\\'+EXTENSION_ASSEMBLY}$/ => [ # assemble task names by regex
|
||||
proc do |task_name|
|
||||
source = task_name.sub(/#{RELEASE_ASSEMBLE_TASK_ROOT}/, '')
|
||||
@ceedling[:file_finder].find_assembly_file(source)
|
||||
end
|
||||
]) do |assemble|
|
||||
@ceedling[:rake_wrapper][:directories].invoke
|
||||
@ceedling[:project_config_manager].process_release_config_change
|
||||
@ceedling[:release_invoker].setup_and_invoke_asm_objects( [assemble.source] )
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user