msxbuild/lib/make/mb_flight.mk
Willem Cazander b67ba15457
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -11s
WIP moving all flow to namespace.
2024-07-12 17:59:26 +02:00

77 lines
3.8 KiB
Makefile
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

MB_FLIGHT_SCREEN ?= off
$(call mb_make_call,mb_doc_variable,MB_FLIGHT_SCREEN,"Creates screenshots on exit of openMSX.")
MB_FLIGHT_VIDEO ?= off
$(call mb_make_call,mb_doc_variable,MB_FLIGHT_VIDEO,"Create video of every build pipe session.")
MB_FLIGHT_PREFIX ?= msxbuild
$(call mb_make_call,mb_doc_variable,MB_FLIGHT_PREFIX,"Prefix for video and screenshot flight files.")
MB_FLIGHT_SEPERATOR ?= -
$(call mb_make_call,mb_doc_variable,MB_FLIGHT_SEPERATOR,"File and index number seperator for flight files.")
MB_FLIGHT_RECORD_FLAG ?= -doublesize
$(call mb_make_call,mb_doc_variable,MB_FLIGHT_RECORD_FLAG,"Command parameter flag of the video recorder.")
MB_FLIGHT_VIDEO_NAME ?= night-flight
$(call mb_make_call,mb_doc_variable,MB_FLIGHT_VIDEO_NAME,"Video file name of the final result merged video.")
define mb_flight_video_merge
$(MB_   )$(call mb_make_call,mb_make_check_arg1,mb_flight_video_merge,$(1))
$(MB_   )$(call mb_make_call,mb_os_echo_good,Indexing flight videos)
$(MB_   )ls -1tr $(1)/*-omsx/videos/*.avi | awk -F "$(1)/" -v s="file '" -v e="'" '{print s$$2e}' > $(1)/$(MB_FLIGHT_VIDEO_NAME).lst
$(MB_   )ffmpeg -v quiet -y -f concat -i $(1)/$(MB_FLIGHT_VIDEO_NAME).lst -c copy $(1)/$(MB_FLIGHT_VIDEO_NAME).avi
$(MB_   )$(call mb_make_call,mb_os_echo_good,Flight video completed)
endef
$(call mb_make_call,mb_doc_function,mb_flight_video_merge,"Merged all flight videos to one.","<dir>")
define __mb_flight_proj_flow_video
.RECIPEPREFIX := $(MB_@RECIPE)
@@flight-video-build: @build
$(MB_@RECIPE)$$(if $$(filter on,$$(MB_FLIGHT_VIDEO)),$$(call mb_make_call,mb_flight_video_merge,$(1)))
@flight-video-build: @clean
$(MB_@RECIPE)$$(call mb_make_call,_mb_proj_flow_step_before)
$(MB_@RECIPE)MB_OPENMSX_HEADLESS$(MB_MAKE_EQUALS)off MB_FLIGHT_VIDEO$(MB_MAKE_EQUALS)on $$(MAKE) -s @@flight-video-build
$(MB_@RECIPE)$$(call mb_make_call,_mb_proj_flow_step_done)
$(MB_   )$$(call mb_make_call,mb_doc_target_help,@flight-video-build,"Runs @clean and @build with recorder and merges flight videos to one.")
$(MB_   )$$(call mb_make_call,mb_make_target_phony,@flight-video-build)
@@flight-video-test: @test
$(MB_@RECIPE)$$(if $$(filter on,$$(MB_FLIGHT_VIDEO)),$$(call mb_make_call,mb_flight_video_merge,$(1)))
@flight-video-test: @clean
$(MB_@RECIPE)$$(call mb_make_call,_mb_proj_flow_step_before)
$(MB_@RECIPE)MB_OPENMSX_HEADLESS$(MB_MAKE_EQUALS)off MB_FLIGHT_VIDEO$(MB_MAKE_EQUALS)on $$(MAKE) -s @@flight-video-test
$(MB_@RECIPE)$$(call mb_make_call,_mb_proj_flow_step_done)
$(MB_   )$$(call mb_make_call,mb_doc_target_help,@flight-video-test,"Runs @clean and @test with recorder and merges flight videos to one.")
$(MB_   )$$(call mb_make_call,mb_make_target_phony,@flight-video-test)
@@flight-video-package-qa: @package-qa
$(MB_@RECIPE)$$(if $$(filter on,$$(MB_FLIGHT_VIDEO)),$$(call mb_make_call,mb_flight_video_merge,$(1)))
@flight-video-package-qa: @clean
$(MB_@RECIPE)$$(call mb_make_call,_mb_proj_flow_step_before)
$(MB_@RECIPE)MB_OPENMSX_HEADLESS$(MB_MAKE_EQUALS)ff MB_FLIGHT_VIDEO$(MB_MAKE_EQUALS)on $$(MAKE) -s @@flight-video-package-qa
$(MB_@RECIPE)$$(call mb_make_call,_mb_proj_flow_step_done)
$(MB_   )$$(call mb_make_call,mb_doc_target_help,@flight-video-package-qa,"Runs @clean and @package-qa with recorder and merges flight videos to one.")
$(MB_   )$$(call mb_make_call,mb_make_target_phony,@flight-video-package-qa)
.RECIPEPREFIX := $(MB_@RECIPEPREFIX)
endef
define mb_flight_proj_flow_video
$(MB_   )$(call mb_make_call,mb_make_check_arg1,$(0),$(1))
$(MB_   )$(eval $(call mb_make_call,__$(0),$(1)))
endef
$(call mb_make_call,mb_doc_function_flow,mb_flight_proj_flow_video,"Prints flow for adding flight video targets in project build cycle.","<path-bin>")