subroutine cmd_build(settings)
type(fpm_build_settings), intent(inout) :: settings
type(package_config_t) :: package
type(fpm_model_t) :: model
type(build_target_ptr), allocatable :: targets(:)
type(error_t), allocatable :: error
integer :: i
call get_package_data(package, "fpm.toml", error, apply_defaults=.true.)
if (allocated(error)) then
call fpm_stop(1,'*cmd_build* Package error: '//error%message)
end if
call build_model(model, settings, package, error)
if (allocated(error)) then
call fpm_stop(1,'*cmd_build* Model error: '//error%message)
end if
call targets_from_sources(targets, model, settings%prune, error)
if (allocated(error)) then
call fpm_stop(1,'*cmd_build* Target error: '//error%message)
end if
if(settings%list)then
do i=1,size(targets)
write(stderr,*) targets(i)%ptr%output_file
enddo
else if (settings%show_model) then
call show_model(model)
else
call build_package(targets,model,verbose=settings%verbose)
endif
end subroutine cmd_build