move ceedling tests to test/unit-test
This commit is contained in:
78
test/unit-test/vendor/ceedling/plugins/subprojects/subprojects.rake
vendored
Normal file
78
test/unit-test/vendor/ceedling/plugins/subprojects/subprojects.rake
vendored
Normal file
@@ -0,0 +1,78 @@
|
||||
|
||||
|
||||
SUBPROJECTS_PATHS.each do |subproj|
|
||||
|
||||
subproj_source = subproj[:source]
|
||||
subproj_include = subproj[:include]
|
||||
subproj_name = subproj[:name]
|
||||
subproj_build_root = subproj[:build_root]
|
||||
subproj_build_out = "#{subproj[:build_root]}/out"
|
||||
subproj_build_c = "#{subproj[:build_root]}/out/c"
|
||||
subproj_build_asm = "#{subproj[:build_root]}/out/asm"
|
||||
subproj_directories = [ subproj_build_root, subproj_build_out, subproj_build_c, subproj_build_asm ]
|
||||
|
||||
subproj_directories.each do |subdir|
|
||||
directory(subdir)
|
||||
end
|
||||
|
||||
CLEAN.include(File.join(subproj_build_root, '*'))
|
||||
CLEAN.include(File.join(subproj_build_out, '*'))
|
||||
|
||||
CLOBBER.include(File.join(subproj_build_root, '**/*'))
|
||||
|
||||
# Add a rule for building the actual static library from our object files
|
||||
rule(/#{subproj_build_root}#{'.+\\'+EXTENSION_SUBPROJECTS}$/ => [
|
||||
proc do |task_name|
|
||||
@ceedling[SUBPROJECTS_SYM].list_all_object_files_for_subproject(task_name)
|
||||
end
|
||||
]) do |bin_file|
|
||||
@ceedling[:generator].generate_executable_file(
|
||||
TOOLS_SUBPROJECTS_LINKER,
|
||||
SUBPROJECTS_SYM,
|
||||
bin_file.prerequisites,
|
||||
bin_file.name,
|
||||
@ceedling[:file_path_utils].form_test_build_map_filepath(bin_file.name))
|
||||
end
|
||||
|
||||
# Add a rule for building object files from assembly files to link into a library
|
||||
if (RELEASE_BUILD_USE_ASSEMBLY)
|
||||
rule(/#{subproj_build_asm}#{'.+\\'+EXTENSION_OBJECT}$/ => [
|
||||
proc do |task_name|
|
||||
@ceedling[SUBPROJECTS_SYM].find_library_assembly_file_for_object(task_name)
|
||||
end
|
||||
]) do |object|
|
||||
@ceedling[SUBPROJECTS_SYM].replace_constant(:COLLECTION_PATHS_SUBPROJECTS, @ceedling[SUBPROJECTS_SYM].find_my_paths(object.source, :asm))
|
||||
@ceedling[SUBPROJECTS_SYM].replace_constant(:COLLECTION_DEFINES_SUBPROJECTS, @ceedling[SUBPROJECTS_SYM].find_my_defines(object.source, :asm))
|
||||
@ceedling[:generator].generate_object_file(
|
||||
TOOLS_SUBPROJECTS_ASSEMBLER,
|
||||
OPERATION_ASSEMBLE_SYM,
|
||||
SUBPROJECTS_SYM,
|
||||
object.source,
|
||||
object.name )
|
||||
end
|
||||
end
|
||||
|
||||
# Add a rule for building object files from C files to link into a library
|
||||
rule(/#{subproj_build_c}#{'.+\\'+EXTENSION_OBJECT}$/ => [
|
||||
proc do |task_name|
|
||||
@ceedling[SUBPROJECTS_SYM].find_library_source_file_for_object(task_name)
|
||||
end
|
||||
]) do |object|
|
||||
@ceedling[SUBPROJECTS_SYM].replace_constant(:COLLECTION_PATHS_SUBPROJECTS, @ceedling[SUBPROJECTS_SYM].find_my_paths(object.source, :c))
|
||||
@ceedling[SUBPROJECTS_SYM].replace_constant(:COLLECTION_DEFINES_SUBPROJECTS, @ceedling[SUBPROJECTS_SYM].find_my_defines(object.source, :c))
|
||||
@ceedling[:generator].generate_object_file(
|
||||
TOOLS_SUBPROJECTS_COMPILER,
|
||||
OPERATION_COMPILE_SYM,
|
||||
SUBPROJECTS_SYM,
|
||||
object.source,
|
||||
object.name,
|
||||
@ceedling[:file_path_utils].form_release_build_c_list_filepath( object.name ) )
|
||||
end
|
||||
|
||||
# Add the subdirectories involved to our list of those that should be autogenerated
|
||||
task :directories => subproj_directories.clone
|
||||
|
||||
# Finally, add the static library to our RELEASE build dependency list
|
||||
task RELEASE_SYM => ["#{subproj_build_root}/#{subproj_name}#{EXTENSION_SUBPROJECTS}"]
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user