def build_extensions()

in python/setup.py [0:0]


    def build_extensions(self):
        ct = self.compiler.compiler_type
        opts = self.compiler_flags.get(ct, [])
        if ct == "unix":
            opts.append('-DVERSION_INFO="%s"' % self.distribution.get_version())
            opts.append("-std=c++17")
            # Allow reordering floating-point operations for
            # better automatic vectorization, even without -ffast-math
            # See: https://simonbyrne.github.io/notes/fastmath/#flushing_subnormals_to_zero
            # for why -ffast-math is not included:
            opts.extend(
                [
                    "-fassociative-math",
                    "-fno-signaling-nans",
                    "-fno-trapping-math",
                    "-fno-signed-zeros",
                    "-freciprocal-math",
                    "-fno-math-errno",
                ]
            )
            if has_flag(self.compiler, "-fvisibility=hidden"):
                opts.append("-fvisibility=hidden")
        elif ct == "msvc":
            opts.append('/DVERSION_INFO=\\"%s\\"' % self.distribution.get_version())
            opts.append("/std:c++17")

        for ext in self.extensions:
            ext.extra_compile_args.extend(opts)
            ext.extra_link_args.extend(self.linker_flags.get(ct, []))

        build_ext.build_extensions(self)