code: def preprocess_fallback_config():
      
      global LIBIGRAPH_FALLBACK_INCLUDE_DIRS
      global LIBIGRAPH_FALLBACK_LIBRARY_DIRS
      global LIBIGRAPH_FALLBACK_LIBRARIES
      
      if os.name == 'nt' and distutils.ccompiler.get_default_compiler() == 'msvc':
          # if this setup is run in the source checkout *and* the igraph msvc was build,
          # this code adds the right library and include dir
          version = '';
          if sys.version_info >= (2, 7) and sys.version_info < (3, 0):
            version = '27';
          elif sys.version_info >= (3, 4) and sys.version_info < (3, 5):
            version ='34';
          elif sys.version_info >= (3, 5):
            version ='35';
          all_msvc_dirs = glob.glob(os.path.join('..', 'igraph', 'igraph-*-msvc-py{0}'.format(version)))
          if len(all_msvc_dirs) > 0:
              if len(all_msvc_dirs) > 1:
                  print("More than one MSVC build directory (igraph-*-msvc-py{0}) found!".format(version))
                  print("It could happen that setup.py uses the wrong one! Please remove all but the right one!\n\n")
  
              msvc_builddir = all_msvc_dirs[-1]
              if not os.path.exists(os.path.join(msvc_builddir, "Release")):
                  print("There is no 'Release' dir in the MSVC build directory\n(%s)" % msvc_builddir)
                  print("Please build the MSVC build first!\n")
              else:
                  print("Using MSVC build dir as a fallback: %s\n\n" % msvc_builddir)
  
                  LIBIGRAPH_FALLBACK_INCLUDE_DIRS = [os.path.join(msvc_builddir, "include")]
  
                  is_64bits = sys.maxsize > 2**32
                  LIBIGRAPH_FALLBACK_LIBRARY_DIRS = [os.path.join(msvc_builddir, "Release", "x64" if is_64bits else "win32")]
docs: Preprocesses the fallback include and library paths depending on the
      platform.