CUDA files need minimum compute capability property
Some CUDA code can only be compiled to use hardware features available on newer CUDA architectures; and on a more superficial level, may not be able to pass even the compiler front-end if it is not compiled for some minimum architecture. Examples: Use of block-scope or whole-system-scope atomic operations require Compute Capability 6.0 at least.
It should be possible to indicate such a constraint - preferably at the source-file level. This can combine with CUDA_ARCHITECTURES property to informatively fail at project configuration rather than during a build attempt.
Such a property can/should also be introduced for PTX and NVVM files.
PS - If you want to be really pedantic, there is also the question of other microarchitecture features, some of which are not even monotone - such as, say, the maximum amount of usable shared memory. A source file with a kernel utilizing 96 KB of shared memory per block can be compiled for CUDA_ARCHITECTURE values 3.7, 6.1, 7.0, 8.0 and 8.6 - but not 3.0, 5.x, 6.0, 6.2 or 7.5.