aboutsummaryrefslogtreecommitdiff
blob: 2af8c49981c57896937ce69136887a6c437308ef (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
https://github.com/InsightSoftwareConsortium/ITK/commit/2a7f5ed199926999b67f61a97c2c9a2595a11558.patch
https://github.com/InsightSoftwareConsortium/ITK/commit/0c31aa688e82a34e5430873bc6176740fd09ad75.patch
https://github.com/InsightSoftwareConsortium/ITK/commit/28325d921a9b8793e6aaefd612f53989f951d19c.patch
https://github.com/InsightSoftwareConsortium/ITK/commit/aafd1f9631d0fad60e1b6f53e049e95a50c48bd1.patch

From 2a7f5ed199926999b67f61a97c2c9a2595a11558 Mon Sep 17 00:00:00 2001
From: Niels Dekker <N.Dekker@lumc.nl>
Date: Thu, 24 Jun 2021 18:00:01 +0200
Subject: [PATCH] COMP: Add missing `#include <iostream>` to Deprecated module
 test

Fixed a Visual C++ 2019 error, saying:

> Deprecated\test\itkSimpleFastMutexLockTest.cxx(48,12): error C2039: 'cout': is not a member of 'std'
---
 .../Deprecated/test/itkSimpleFastMutexLockTest.cxx              | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/Modules/Compatibility/Deprecated/test/itkSimpleFastMutexLockTest.cxx b/Modules/Compatibility/Deprecated/test/itkSimpleFastMutexLockTest.cxx
index 11ad0c52700..60aa1c065b4 100644
--- a/Modules/Compatibility/Deprecated/test/itkSimpleFastMutexLockTest.cxx
+++ b/Modules/Compatibility/Deprecated/test/itkSimpleFastMutexLockTest.cxx
@@ -19,6 +19,8 @@
 
 #include "itkSimpleFastMutexLock.h"
 
+#include <iostream> // For cout.
+
 
 int
 itkSimpleFastMutexLockTest(int, char *[])
From 0c31aa688e82a34e5430873bc6176740fd09ad75 Mon Sep 17 00:00:00 2001
From: Pablo Hernandez-Cerdan <pablo.hernandez.cerdan@outlook.com>
Date: Tue, 20 Apr 2021 17:21:21 +0200
Subject: [PATCH] COMP: CastXML, ITKVtkGlue, include only when property exists

Some targets (VTK libraries) didn't have the property INTERFACE_INCLUDE_DIRECTORIES

```bash
CMake Error in Modules/Bridge/VtkGlue/wrapping/CMakeLists.txt:
  Found relative path while evaluating include directories of
  "ITKVtkGluePython":

    "_vtk_lib_include_dirs-NOTFOUND"
```

Triggered when compiling Slicer with `Slicer_BUILD_ITKPython:BOOL=ON`
aka `ITK_WRAP_PYTHON:BOOL=ON`.

Full error log with extra printing:

```bash

CMake Warning at Modules/Bridge/VtkGlue/wrapping/CMakeLists.txt:3 (message):
  ITKVtkGlue_VTK_LIBRARIES:
  VTK::IOImage;VTK::ImagingSources;VTK::WrappingPythonCore;VTK::CommonCore;VTK::CommonDataModel;VTK::kwiml;VTK::CommonExecutionModel;VTK::RenderingOpenGL2;VTK::RenderingFreeType;VTK::InteractionStyle;VTK::InteractionWidgets

CMake Warning at Modules/Bridge/VtkGlue/wrapping/CMakeLists.txt:6 (message):
  _vtk_lib_include_dirs: _vtk_lib_include_dirs-NOTFOUND

CMake Warning at Modules/Bridge/VtkGlue/wrapping/CMakeLists.txt:6 (message):
  _vtk_lib_include_dirs: _vtk_lib_include_dirs-NOTFOUND

CMake Warning at Modules/Bridge/VtkGlue/wrapping/CMakeLists.txt:6 (message):
  _vtk_lib_include_dirs:
  build/VTK-build/Wrapping/PythonCore;build/VTK/Wrapping/PythonCore

CMake Warning at Modules/Bridge/VtkGlue/wrapping/CMakeLists.txt:6 (message):
  _vtk_lib_include_dirs: _vtk_lib_include_dirs-NOTFOUND

CMake Warning at Modules/Bridge/VtkGlue/wrapping/CMakeLists.txt:6 (message):
  _vtk_lib_include_dirs: _vtk_lib_include_dirs-NOTFOUND

CMake Warning at Modules/Bridge/VtkGlue/wrapping/CMakeLists.txt:6 (message):
  _vtk_lib_include_dirs:
  build/VTK-build/Utilities/KWIML;build/VTK/Utilities/KWIML

CMake Warning at Modules/Bridge/VtkGlue/wrapping/CMakeLists.txt:6 (message):
  _vtk_lib_include_dirs: _vtk_lib_include_dirs-NOTFOUND

CMake Warning at Modules/Bridge/VtkGlue/wrapping/CMakeLists.txt:6 (message):
  _vtk_lib_include_dirs: _vtk_lib_include_dirs-NOTFOUND

CMake Warning at Modules/Bridge/VtkGlue/wrapping/CMakeLists.txt:6 (message):
  _vtk_lib_include_dirs: _vtk_lib_include_dirs-NOTFOUND

CMake Warning at Modules/Bridge/VtkGlue/wrapping/CMakeLists.txt:6 (message):
  _vtk_lib_include_dirs: _vtk_lib_include_dirs-NOTFOUND

CMake Warning at Modules/Bridge/VtkGlue/wrapping/CMakeLists.txt:6 (message):
  _vtk_lib_include_dirs: _vtk_lib_include_dirs-NOTFOUND

-- ITKVtkGlue: Creating module.
-- ITKVtkGlue: Creating itkImageToVTKImageFilter submodule.
-- ITKVtkGlue: Creating itkVTKImageToImageFilter submodule.
-- ITKVtkGlue: Creating itkViewImage submodule.
-- MGHIO: Creating module.
-- MGHIO: Creating itkMGHImageIO submodule.
-- MorphologicalContourInterpolation: Creating module.
-- MorphologicalContourInterpolation: Creating itkMorphologicalContourInterpolator submodule.
-- ITKPyUtils: Creating module.
-- ITKPyUtils: Creating itkPyCommand submodule.
-- ITKPyUtils: Creating itkPyImageFilter submodule.
-- Configuring done
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
_vtk_lib_include_dirs
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
   used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping

CMake Error in Modules/Bridge/VtkGlue/wrapping/CMakeLists.txt:
  Found relative path while evaluating include directories of
  "ITKVtkGluePython":

    "_vtk_lib_include_dirs-NOTFOUND"

```
---
 Modules/Bridge/VtkGlue/wrapping/CMakeLists.txt | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/Modules/Bridge/VtkGlue/wrapping/CMakeLists.txt b/Modules/Bridge/VtkGlue/wrapping/CMakeLists.txt
index 3f3322957e1..2fd6a5af8f6 100644
--- a/Modules/Bridge/VtkGlue/wrapping/CMakeLists.txt
+++ b/Modules/Bridge/VtkGlue/wrapping/CMakeLists.txt
@@ -2,7 +2,9 @@
 if(NOT VTK_RENDERING_BACKEND STREQUAL "None")
   foreach(_vtk_lib IN LISTS ITKVtkGlue_VTK_LIBRARIES)
     get_target_property(_vtk_lib_include_dirs ${_vtk_lib} INTERFACE_INCLUDE_DIRECTORIES)
-    include_directories(${_vtk_lib_include_dirs})
+    if(_vtk_lib_include_dirs)
+      include_directories(${_vtk_lib_include_dirs})
+    endif()
   endforeach()
 endif()
 
From 28325d921a9b8793e6aaefd612f53989f951d19c Mon Sep 17 00:00:00 2001
From: Butui Hu <hot123tea123@gmail.com>
Date: Mon, 1 Aug 2022 14:26:39 +0800
Subject: [PATCH] COMP: use sysconfig.get_path as PEP 632 deprecate distutils
 module

---
 Wrapping/Generators/Python/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Wrapping/Generators/Python/CMakeLists.txt b/Wrapping/Generators/Python/CMakeLists.txt
index fca3d999b87..3b7a1d37334 100644
--- a/Wrapping/Generators/Python/CMakeLists.txt
+++ b/Wrapping/Generators/Python/CMakeLists.txt
@@ -36,7 +36,7 @@ file(MAKE_DIRECTORY ${WRAPPER_MASTER_INDEX_OUTPUT_DIR}/python)
 ###############################################################################
 # Configure Python wrapping installation
 if(Python3_EXECUTABLE AND NOT PY_SITE_PACKAGES_PATH)
-  set(python_check "try:\n    import distutils.sysconfig\n    print(distutils.sysconfig.get_python_lib(plat_specific=1, prefix=''))\nexcept:\n    pass")
+  set(python_check "try:\n    import sysconfig\n    print(sysconfig.get_path('platlib'))\nexcept:\n    pass")
   file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/detect_site_package_path.py ${python_check})
   execute_process(COMMAND "${Python3_EXECUTABLE}" "${CMAKE_CURRENT_BINARY_DIR}/detect_site_package_path.py"
     OUTPUT_VARIABLE py_spp
From aafd1f9631d0fad60e1b6f53e049e95a50c48bd1 Mon Sep 17 00:00:00 2001
From: Hans Johnson <hans-johnson@uiowa.edu>
Date: Wed, 15 Dec 2021 08:10:58 -0600
Subject: [PATCH] COMP: Remove inclusion of .hxx files as headers

The ability to include either .h or .hxx files as
header files required recursively reading the
.h files twice.  The added complexity is
unnecessary, costly, and can confuse static
analysis tools that monitor header guardes (due
to reaching the maximum depth of recursion
limits for nested #ifdefs in checking).

Co-authored-by: Simon Rit <simon.rit@creatis.insa-lyon.fr>
---
 CMake/ITKModuleHeaderTest.cmake          | 3 +--
 Utilities/Maintenance/BuildHeaderTest.py | 4 ----
 2 files changed, 1 insertion(+), 6 deletions(-)

diff --git a/CMake/ITKModuleHeaderTest.cmake b/CMake/ITKModuleHeaderTest.cmake
index eb809d7e93d..82ad192a6f8 100644
--- a/CMake/ITKModuleHeaderTest.cmake
+++ b/CMake/ITKModuleHeaderTest.cmake
@@ -36,8 +36,7 @@ macro( itk_module_headertest _name )
     # effected.
     set( _include ${${_name}_SOURCE_DIR}/include )
     file( GLOB _h_files ${_include}/*.h )
-    file( GLOB _hxx_files ${_include}/*.hxx )
-    set( _header_files ${_h_files} ${_hxx_files} )
+    set( _header_files ${_h_files} )
     list( LENGTH _h_files _num_headers )
     set( _outputs ${${_name}_BINARY_DIR}/test/${_name}HeaderTest1.cxx )
     set( _test_num 1 )
diff --git a/Utilities/Maintenance/BuildHeaderTest.py b/Utilities/Maintenance/BuildHeaderTest.py
index 26a4b6ccb3f..f8ed9f7901e 100755
--- a/Utilities/Maintenance/BuildHeaderTest.py
+++ b/Utilities/Maintenance/BuildHeaderTest.py
@@ -130,15 +130,11 @@ def main():
         else:
             max_idx = added_header_idx + maximum_number_of_headers
         for i in range(added_header_idx, max_idx):
-            # Use the .hxx if possible.
-            hxx_file = h_files[i][:-1] + "hxx"
             # Files that include VTK headers need to link to VTK.
             if h_files[i] in BANNED_HEADERS or h_files[i].lower().find("vtk") != -1:
                 to_include = (
                     '// #include "' + h_files[i] + '" // Banned in BuildHeaderTest.py\n'
                 )
-            elif os.path.exists(os.path.join(module_source_path, "include", hxx_file)):
-                to_include = '#include "' + hxx_file + '"\n'
             else:
                 to_include = '#include "' + h_files[i] + '"\n'