If each project must be compiled into a separate binary, declaring a separate binary target per project is unavoidable. But you can still glob all of the project's srcs into a single target.
Do keep in mind that putting many srcs in the same target makes it impossible to compile them in parallel, so large projects will benefit from restructuring into smaller libraries.
You might also want to look into tools that automate the creation of BUILD files. For Go there's Gazelle, but I don't know what the space looks like for other languages (perhaps somebody else can comment).