How to write generic simulations with KernelAbstractions

I’m working on a project that should work with CUDA.jl and Metal.jl at the same time. Basically some simulation scripts, so, the user is me or collaborators running code (not somebody installing a package I make).

With KernelAbstractions.jl most of the heavy lifting is already done, but I am not sure what the best practice is to organize the Project.toml.

Should I have two folders which their own Project.toml and some basic definitions for the respective enviroments?

\ (project root)
... \src   (common files)
... \cuda  (CUDA specific part)
     ... \Project.toml 
... \metal  (MetalAPI specific part)
    ... Project.toml 

It seems slightly cumbersome to maintain two or more project envs a the same time…