new_contents: # Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
  # Spack Project Developers. See the top-level COPYRIGHT file for details.
  #
  # SPDX-License-Identifier: (Apache-2.0 OR MIT)
  
  from spack import *
  
  
  class Fakexrandr(MakefilePackage):
      """This is a tool to cheat an X11 server to believe that there are more
      monitors than there actually are."""
  
      homepage = "https://github.com/phillipberndt/fakexrandr"
      git      = "https://github.com/phillipberndt/fakexrandr.git"
  
      version('master', branch='master')
  
      depends_on('libxrandr')
      depends_on('libxinerama')
      depends_on('libx11')
      depends_on('python', type=('build', 'run'))
  
      def edit(self, spec, prefix):
          # Installation instructions involve running `configure` script,
          # but this script just writes a `config.h` file like below.
          version = spec['libxrandr'].version
          with open('config.h', 'w') as config:
              config.write("""
  #define XRANDR_MAJOR {0}
  #define XRANDR_MINOR {1}
  #define XRANDR_PATCH {2}
  #define REAL_XRANDR_LIB "{3}"
  #define FAKEXRANDR_INSTALL_DIR "{4}"
  """.format(version[0], version[1], version[2],
                  spec['libxrandr'].libs[0], prefix.lib))
  
          # Also need to hack Makefile
          makefile = FileFilter('Makefile')
          makefile.filter('PREFIX=/usr', 'PREFIX=' + prefix)
          makefile.filter('-fPIC', self.compiler.cc_pic_flag)
  
          # And tool used to generate skeleton
          filter_file('gcc', spack_cc, 'make_skeleton.py')
  
          if 'platform=darwin' in spec:
              makefile.filter('ldconfig', '')
  
subject: add new package (#20687)