From 7c4c6e72ad55d5618e90ab831a93e7d2553bb8c5 Mon Sep 17 00:00:00 2001 From: Geoffrey Malcolm Oxberry Date: Tue, 16 Jan 2018 03:34:41 -0800 Subject: vtk@:6.1.0 : disable Obj-C gc for XCode >= 5.1 Apple removed support for Objective-C garbage collection in binaries in XCode 5.1, but VTK 6.1.0 and earlier set flags for garbage collection, resulting in a compile-time bug when compiling VTK using any recent version of XCode (i.e., Apple Clang). This commit fixes this bug by removing the garbage collection flags via setting the variable `VTK_REQUIRED_OBJCXX_FLAGS` to the empty string. This variable has the same value (i.e., the empty string) in the root-level CMakeLists.txt file for VTK 6.2.0 and later. --- var/spack/repos/builtin/packages/vtk/package.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/var/spack/repos/builtin/packages/vtk/package.py b/var/spack/repos/builtin/packages/vtk/package.py index bce6cc2475..caf11b1fc7 100644 --- a/var/spack/repos/builtin/packages/vtk/package.py +++ b/var/spack/repos/builtin/packages/vtk/package.py @@ -114,4 +114,16 @@ class Vtk(CMakePackage): '-DNETCDF_CXX_LIBRARY={0}'.format(netcdf_cxx_lib), ]) + # Garbage collection is unsupported in Xcode starting with + # version 5.1; if the Apple clang version of the compiler + # is 5.1.0 or later, unset the required Objective-C flags + # to remove the garbage collection flags. Versions of VTK + # after 6.1.0 set VTK_REQUIRED_OBJCXX_FLAGS to the empty + # string. This fix was recommended on the VTK mailing list + # in March 2014 (see + # https://public.kitware.com/pipermail/vtkusers/2014-March/083368.html) + if (self.compiler.is_apple and + self.compiler.version >= Version('5.1.0')): + cmake_args.extend(['-DVTK_REQUIRED_OBJCXX_FLAGS=""']) + return cmake_args -- cgit v1.2.3-70-g09d2