From 71543518604950d7223fd30ced13c165e2c01ee2 Mon Sep 17 00:00:00 2001
From: albestro <9337627+albestro@users.noreply.github.com>
Date: Tue, 4 Aug 2020 06:15:23 +0200
Subject: [PATCH] HPX: fix wrong method name and use define/define_from_variant
 methods (#17851)

* bug fix: wrong method name

* refactoring using define_from_variant and define

* flake8 style fix

* revert change string format
---
 .../repos/builtin/packages/hpx/package.py     | 96 ++++++-------------
 1 file changed, 31 insertions(+), 65 deletions(-)

diff --git a/var/spack/repos/builtin/packages/hpx/package.py b/var/spack/repos/builtin/packages/hpx/package.py
index b859227e3b..56d2ee0461 100644
--- a/var/spack/repos/builtin/packages/hpx/package.py
+++ b/var/spack/repos/builtin/packages/hpx/package.py
@@ -110,85 +110,51 @@ class Hpx(CMakePackage, CudaPackage):
     # Patches APEX
     patch('git_external.patch', when='@1.3.0 instrumentation=apex')
 
-    def cxx_standard(self):
-        value = self.spec.variants['cxxstd'].value
-        return '-DHPX_WITH_CXX{0}=ON'.format(value)
-
     def instrumentation_args(self):
         for value in self.variants['instrumentation'].values:
             if value == 'none':
                 continue
 
             condition = 'instrumentation={0}'.format(value)
-            yield '-DHPX_WITH_{0}={1}'.format(
-                str(value).upper(), 'ON' if condition in self.spec else 'OFF'
-            )
+            yield self.define(
+                'HPX_WITH_{0}'.format(value.upper()), condition in self.spec)
 
     def cmake_args(self):
         spec, args = self.spec, []
 
-        # CXX Standard
-        args.append(self.cxx_standard())
+        args += [
+            self.define(
+                'HPX_WITH_CXX{0}'.format(spec.variants['cxxstd'].value), True),
+
+            self.define_from_variant('HPX_WITH_MALLOC', 'malloc'),
+            self.define_from_variant('HPX_WITH_CUDA', 'cuda'),
+            self.define_from_variant('HPX_WITH_TOOLS', 'tools'),
+            self.define_from_variant('HPX_WITH_EXAMPLES', 'examples'),
+            self.define('HPX_WITH_TESTS', self.run_tests),
+
+            self.define('HPX_WITH_NETWORKING', 'networking=none' not in spec),
+            self.define('HPX_WITH_PARCELPORT_TCP', 'networking=tcp' in spec),
+            self.define('HPX_WITH_PARCELPORT_MPI', 'networking=mpi' in spec),
+
+            self.define_from_variant(
+                'HPX_WITH_MAX_CPU_COUNT', 'max_cpu_count'),
+            self.define_from_variant(
+                'HPX_WITH_GENERIC_CONTEXT_COROUTINES', 'generic_coroutines'),
 
-        # Malloc
-        selected_malloc = spec.variants['malloc'].value
-        args.append('-DHPX_WITH_MALLOC={0}'.format(selected_malloc))
+            self.define('BOOST_ROOT', spec['boost'].prefix),
+            self.define('HWLOC_ROOT', spec['hwloc'].prefix),
+            self.define('HPX_WITH_BOOST_ALL_DYNAMIC_LINK', True),
+            self.define('BUILD_SHARED_LIBS', True),
+            self.define('HPX_DATASTRUCTURES_WITH_ADAPT_STD_TUPLE', False),
+        ]
 
         # Instrumentation
-        args.extend(self.instrumentation_args())
+        args += self.instrumentation_args()
 
         if 'instrumentation=apex' in spec:
-            args += ['-DAPEX_WITH_OTF2=ON',
-                     '-DOTF2_ROOT={0}'.format(spec['otf2'].prefix)]
-
-        # Networking
-        args.append('-DHPX_WITH_NETWORKING={0}'.format(
-            'OFF' if 'networking=none' in spec else 'ON'
-        ))
-        args.append('-DHPX_WITH_PARCELPORT_TCP={0}'.format(
-            'ON' if 'networking=tcp' in spec else 'OFF'
-        ))
-        args.append('-DHPX_WITH_PARCELPORT_MPI={0}'.format(
-            'ON' if 'networking=mpi' in spec else 'OFF'
-        ))
-
-        # Cuda support
-        args.append('-DHPX_WITH_CUDA={0}'.format(
-            'ON' if '+cuda' in spec else 'OFF'
-        ))
-
-        # Tests
-        args.append('-DHPX_WITH_TESTS={0}'.format(
-            'ON' if self.run_tests else 'OFF'
-        ))
-
-        # Tools
-        args.append('-DHPX_WITH_TOOLS={0}'.format(
-            'ON' if '+tools' in spec else 'OFF'
-        ))
-
-        # MAX_CPU_COUNT
-        args.append('-DHPX_WITH_MAX_CPU_COUNT={0}'.format(
-            spec.variants['max_cpu_count'].value
-        ))
-
-        # HPX_WITH_GENERIC_CONTEXT_COROUTINES
-        args.append(
-            self.define_with_variant(
-                'HPX_WITH_GENERIC_CONTEXT_COROUTINES', 'generic_coroutines')
-        )
-
-        # Examples
-        args.append('-DHPX_WITH_EXAMPLES={0}'.format(
-            'ON' if '+examples' in spec else 'OFF'
-        ))
-
-        args.extend([
-            '-DBOOST_ROOT={0}'.format(spec['boost'].prefix),
-            '-DHWLOC_ROOT={0}'.format(spec['hwloc'].prefix),
-            '-DHPX_WITH_BOOST_ALL_DYNAMIC_LINK=ON',
-            '-DBUILD_SHARED_LIBS=ON',
-            '-DHPX_DATASTRUCTURES_WITH_ADAPT_STD_TUPLE=OFF'
-        ])
+            args += [
+                self.define('APEX_WITH_OTF2', True),
+                self.define('OTF2_ROOT', spec['otf2'].prefix),
+            ]
 
         return args
-- 
GitLab