text: # 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 Openwsman(CMakePackage):
      """Openwsman server implementation and client api with bindings."""
  
      homepage = "https://github.com/Openwsman/openwsman"
      url      = "https://github.com/Openwsman/openwsman/archive/v2.6.11.tar.gz"
  
      version('2.7.0',  sha256='8870c4a21cbaba9387ad38c37667e2cee29008faacaaf7eb18ad2061e2fc89a1')
      version('2.6.11', sha256='895eaaae62925f9416766ea3e71a5368210e6cfe13b23e4e0422fa0e75c2541c')
      version('2.6.10', sha256='d3c624a03d7bc1835544ce1af56efd010f77cbee0c02b34e0755aa9c9b2c317b')
  
      variant('python', default=True, description='Enable python')
  
      extends('python', when='+python')
  
      depends_on('python', type=('build', 'link', 'run'))
      depends_on('curl', type='link')
      depends_on('swig', type='build')
      depends_on('libxml2', type='link')
      depends_on('openssl', type='link')
      depends_on('sblim-sfcc', type='link')
  
      def patch(self):
          """ Change python install directory. """
          if self.spec.satisfies('+python'):
              python_spec = self.spec['python']
              python_libdir = join_path(
                  self.spec.prefix.lib,
                  'python' + str(python_spec.version.up_to(2)),
                  'site-packages'
              )
              filter_file(
                  'DESTINATION .*',
                  'DESTINATION {0} )'.format(python_libdir),
                  join_path('bindings', 'python', 'CMakeLists.txt')
              )
  
      def cmake_args(self):
          define = self.define
          spec = self.spec
          arg = [
              define('BUILD_PERL', False),
              define('BUILD_JAVA', False),
              define('BUILD_CSHARP', False),
              define('USE_PAM', 'OFF'),
          ]
          if spec.satisfies('+python'):
              if spec.satisfies('^python@3:'):
                  arg.extend([
                      define('BUILD_PYTHON', False),
                      define('BUILD_PYTHON3', True)
                  ])
              else:
                  arg.extend([
                      define('BUILD_PYTHON', True),
                      define('BUILD_PYTHON3', False)
                  ])
              arg.append(define('PYTHON_EXECUTABLE',
                         spec['python'].command.path))
          else:
              arg.extend([
                  define('BUILD_PYTHON', False),
                  define('BUILD_PYTHON3', False)
              ])
          return arg
  
      def flag_handler(self, name, flags):
          flags = list(flags)
          if name == 'cflags':
              if self.spec.satisfies('%gcc'):
                  flags.append('-std=gnu99')
              else:
                  flags.append(self.compiler.c99_flag)
          return (None, None, flags)
  