minimum required compiler flags (e.g. "-std=c++17") as well as
   mixed C++/CUDA compilation (and support for CUDA files in general).
When using "BuildExtension", it is allowed to supply a dictionary
   for "extra_compile_args" (rather than the usual list) that maps
   from languages ("cxx" or "nvcc") to a list of additional compiler
   flags to supply to the compiler. This makes it possible to supply
   different flags to the C++ and CUDA compiler during mixed
   compilation.
"use_ninja" (bool): If "use_ninja" is "True" (default), then we
   attempt to build using the Ninja backend. Ninja greatly speeds up
   compilation compared to the standard "setuptools.build_ext".
   Fallbacks to the standard distutils backend if Ninja is not
   available.
Note:
 By default, the Ninja backend uses #CPUS + 2 workers to build the
 extension. This may use up too many resources on some systems.
 One can control the number of workers by setting the *MAX_JOBS*
