Skip to content

All #3

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 10,000 commits into
base: release-3.20
Choose a base branch
from
Open

Conversation

Marklovesmichelle69
Copy link

See the CONTRIBUTING guide. Specifically:

Start ITK commit messages with a standard prefix (and a space):

  • BUG: fix for runtime crash or incorrect result
  • COMP: compiler error or warning fix
  • DOC: documentation change
  • ENH: new functionality
  • PERF: performance improvement
  • STYLE: no logic impact (indentation, comments)
  • WIP: Work In Progress not ready for merge

Provide a short, meaningful message that describes the change you made.

When the PR is based on a single commit, the commit message is usually left as the PR message.

A reference to a related issue or pull request in your repository. You can automatically close a related issues using keywords

@mentions of the person or team responsible for reviewing proposed changes.

Thanks for contributing to ITK!

kwrobot pushed a commit that referenced this pull request Sep 6, 2018
cmake_minimum_required(VERSION 3.9.5 FATAL_ERROR)
foreach(p
    ## Only policies introduced after the cmake_minimum_required
    ## version need to explicitly be set to NEW.
    CMP0070 #3.10.0 Define ``file(GENERATE)`` behavior for relative paths.
    CMP0071 #3.10.0 Let ``AUTOMOC`` and ``AUTOUIC`` process ``GENERATED`` files.
    )
  if(POLICY ${p})
    cmake_policy(SET ${p} NEW)
  endif()
endforeach()

Change-Id: I30c9a4f2401bf83bcdb56ba89d44b24ca8342853
kwrobot pushed a commit that referenced this pull request Mar 4, 2021
…n metric

Fix uninitialized variable use in `ANTS` neighborhood correlation metric:
ensure that `fixedImageGradient` and `movingImageGradient` have valid
values before assigning them to the `scanMem` struct that scans over
images.

Fixes:
```
Run-Time Check Failure #3 - The variable 'fixedImageGradient' is being
used without being initialized.
```

The bug was affecting a number of tests in the
`ITKRegistrationMethodsv4Test` module.

Signaled at
https://open.cdash.org/viewTest.php?onlyfailed&buildid=7067466
and
https://open.cdash.org/viewTest.php?onlyfailed&buildid=7069241
kwrobot pushed a commit that referenced this pull request Apr 29, 2024
Found with thread sanitizer (TSan) running the `itkANTSNeighborhoodCorrelationImageToImageRegistrationTest` unit test.

There was already a `m_ANTSAssociateOnceFlag` flag for use with `std::call_once`, so I just used that in this place too (it's already used elsewhere).

Partial backtrace from TSan:

```
WARNING: ThreadSanitizer: data race (pid=79176)
  Write of size 8 at 0x000108f02240 by thread T2:
    #0 void itk::ANTSNeighborhoodCorrelationImageToImageMetricv4GetValueAndDerivativeThreader<itk::ThreadedIndexedContainerPartitioner, itk::ImageToImageMetricv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double, itk::DefaultImageToImageMetricTraitsv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double>>, itk::ANTSNeighborhoodCorrelationImageToImageMetricv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double, itk::DefaultImageToImageMetricTraitsv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double>>>::ThreadedExecution_impl<itk::ThreadedIndexedContainerPartitioner>(itk::IdentityHelper<itk::ThreadedIndexedContainerPartitioner>, itk::Index<2u> const&, unsigned int) itkANTSNeighborhoodCorrelationImageToImageMetricv4GetValueAndDerivativeThreader.hxx:118 (ITKMetricsv4TestDriver:arm64+0x1004bfe50)
    #1 itk::ANTSNeighborhoodCorrelationImageToImageMetricv4GetValueAndDerivativeThreader<itk::ThreadedIndexedContainerPartitioner, itk::ImageToImageMetricv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double, itk::DefaultImageToImageMetricTraitsv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double>>, itk::ANTSNeighborhoodCorrelationImageToImageMetricv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double, itk::DefaultImageToImageMetricTraitsv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double>>>::ThreadedExecution(itk::Index<2u> const&, unsigned int) itkANTSNeighborhoodCorrelationImageToImageMetricv4GetValueAndDerivativeThreader.h:235 (ITKMetricsv4TestDriver:arm64+0x1004bf9c0)
    #2 itk::DomainThreader<itk::ThreadedIndexedContainerPartitioner, itk::ImageToImageMetricv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double, itk::DefaultImageToImageMetricTraitsv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double>>>::ThreaderCallback(void*) itkDomainThreader.hxx:123 (ITKMetricsv4TestDriver:arm64+0x100259b6c)
    #3 std::__1::future<std::__1::invoke_result<void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*>::type> itk::ThreadPool::AddWork<void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*>(void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*&&)::'lambda'()::operator()() const itkThreadPool.h:92 (ITKMetricsv4TestDriver:arm64+0x1007d3228)
    #4 decltype(std::declval<void* (*&)(void*)>()(std::declval<itk::PoolMultiThreader::ThreadPoolInfoStruct*>())) std::__1::__invoke[abi:v160006]<std::__1::future<std::__1::invoke_result<void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*>::type> itk::ThreadPool::AddWork<void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*>(void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*&&)::'lambda'()&>(void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*&&) invoke.h:394 (ITKMetricsv4TestDriver:arm64+0x1007d31a4)

  Previous write of size 8 at 0x000108f02240 by thread T14:
    #0 void itk::ANTSNeighborhoodCorrelationImageToImageMetricv4GetValueAndDerivativeThreader<itk::ThreadedIndexedContainerPartitioner, itk::ImageToImageMetricv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double, itk::DefaultImageToImageMetricTraitsv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double>>, itk::ANTSNeighborhoodCorrelationImageToImageMetricv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double, itk::DefaultImageToImageMetricTraitsv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double>>>::ThreadedExecution_impl<itk::ThreadedIndexedContainerPartitioner>(itk::IdentityHelper<itk::ThreadedIndexedContainerPartitioner>, itk::Index<2u> const&, unsigned int) itkANTSNeighborhoodCorrelationImageToImageMetricv4GetValueAndDerivativeThreader.hxx:118 (ITKMetricsv4TestDriver:arm64+0x1004bfe50)
    #1 itk::ANTSNeighborhoodCorrelationImageToImageMetricv4GetValueAndDerivativeThreader<itk::ThreadedIndexedContainerPartitioner, itk::ImageToImageMetricv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double, itk::DefaultImageToImageMetricTraitsv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double>>, itk::ANTSNeighborhoodCorrelationImageToImageMetricv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double, itk::DefaultImageToImageMetricTraitsv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double>>>::ThreadedExecution(itk::Index<2u> const&, unsigned int) itkANTSNeighborhoodCorrelationImageToImageMetricv4GetValueAndDerivativeThreader.h:235 (ITKMetricsv4TestDriver:arm64+0x1004bf9c0)
    #2 itk::DomainThreader<itk::ThreadedIndexedContainerPartitioner, itk::ImageToImageMetricv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double, itk::DefaultImageToImageMetricTraitsv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double>>>::ThreaderCallback(void*) itkDomainThreader.hxx:123 (ITKMetricsv4TestDriver:arm64+0x100259b6c)
    #3 std::__1::future<std::__1::invoke_result<void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*>::type> itk::ThreadPool::AddWork<void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*>(void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*&&)::'lambda'()::operator()() const itkThreadPool.h:92 (ITKMetricsv4TestDriver:arm64+0x1007d3228)
    #4 decltype(std::declval<void* (*&)(void*)>()(std::declval<itk::PoolMultiThreader::ThreadPoolInfoStruct*>())) std::__1::__invoke[abi:v160006]<std::__1::future<std::__1::invoke_result<void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*>::type> itk::ThreadPool::AddWork<void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*>(void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*&&)::'lambda'()&>(void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*&&) invoke.h:394 (ITKMetricsv4TestDriver:arm64+0x1007d31a4)
```
kwrobot pushed a commit that referenced this pull request May 30, 2024
Found with thread sanitizer (TSan) running the `itkANTSNeighborhoodCorrelationImageToImageRegistrationTest` unit test.

There was already a `m_ANTSAssociateOnceFlag` flag for use with `std::call_once`, so I just used that in this place too (it's already used elsewhere).

Partial backtrace from TSan:

```
WARNING: ThreadSanitizer: data race (pid=79176)
  Write of size 8 at 0x000108f02240 by thread T2:
    #0 void itk::ANTSNeighborhoodCorrelationImageToImageMetricv4GetValueAndDerivativeThreader<itk::ThreadedIndexedContainerPartitioner, itk::ImageToImageMetricv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double, itk::DefaultImageToImageMetricTraitsv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double>>, itk::ANTSNeighborhoodCorrelationImageToImageMetricv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double, itk::DefaultImageToImageMetricTraitsv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double>>>::ThreadedExecution_impl<itk::ThreadedIndexedContainerPartitioner>(itk::IdentityHelper<itk::ThreadedIndexedContainerPartitioner>, itk::Index<2u> const&, unsigned int) itkANTSNeighborhoodCorrelationImageToImageMetricv4GetValueAndDerivativeThreader.hxx:118 (ITKMetricsv4TestDriver:arm64+0x1004bfe50)
    #1 itk::ANTSNeighborhoodCorrelationImageToImageMetricv4GetValueAndDerivativeThreader<itk::ThreadedIndexedContainerPartitioner, itk::ImageToImageMetricv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double, itk::DefaultImageToImageMetricTraitsv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double>>, itk::ANTSNeighborhoodCorrelationImageToImageMetricv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double, itk::DefaultImageToImageMetricTraitsv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double>>>::ThreadedExecution(itk::Index<2u> const&, unsigned int) itkANTSNeighborhoodCorrelationImageToImageMetricv4GetValueAndDerivativeThreader.h:235 (ITKMetricsv4TestDriver:arm64+0x1004bf9c0)
    #2 itk::DomainThreader<itk::ThreadedIndexedContainerPartitioner, itk::ImageToImageMetricv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double, itk::DefaultImageToImageMetricTraitsv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double>>>::ThreaderCallback(void*) itkDomainThreader.hxx:123 (ITKMetricsv4TestDriver:arm64+0x100259b6c)
    #3 std::__1::future<std::__1::invoke_result<void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*>::type> itk::ThreadPool::AddWork<void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*>(void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*&&)::'lambda'()::operator()() const itkThreadPool.h:92 (ITKMetricsv4TestDriver:arm64+0x1007d3228)
    #4 decltype(std::declval<void* (*&)(void*)>()(std::declval<itk::PoolMultiThreader::ThreadPoolInfoStruct*>())) std::__1::__invoke[abi:v160006]<std::__1::future<std::__1::invoke_result<void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*>::type> itk::ThreadPool::AddWork<void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*>(void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*&&)::'lambda'()&>(void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*&&) invoke.h:394 (ITKMetricsv4TestDriver:arm64+0x1007d31a4)

  Previous write of size 8 at 0x000108f02240 by thread T14:
    #0 void itk::ANTSNeighborhoodCorrelationImageToImageMetricv4GetValueAndDerivativeThreader<itk::ThreadedIndexedContainerPartitioner, itk::ImageToImageMetricv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double, itk::DefaultImageToImageMetricTraitsv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double>>, itk::ANTSNeighborhoodCorrelationImageToImageMetricv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double, itk::DefaultImageToImageMetricTraitsv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double>>>::ThreadedExecution_impl<itk::ThreadedIndexedContainerPartitioner>(itk::IdentityHelper<itk::ThreadedIndexedContainerPartitioner>, itk::Index<2u> const&, unsigned int) itkANTSNeighborhoodCorrelationImageToImageMetricv4GetValueAndDerivativeThreader.hxx:118 (ITKMetricsv4TestDriver:arm64+0x1004bfe50)
    #1 itk::ANTSNeighborhoodCorrelationImageToImageMetricv4GetValueAndDerivativeThreader<itk::ThreadedIndexedContainerPartitioner, itk::ImageToImageMetricv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double, itk::DefaultImageToImageMetricTraitsv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double>>, itk::ANTSNeighborhoodCorrelationImageToImageMetricv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double, itk::DefaultImageToImageMetricTraitsv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double>>>::ThreadedExecution(itk::Index<2u> const&, unsigned int) itkANTSNeighborhoodCorrelationImageToImageMetricv4GetValueAndDerivativeThreader.h:235 (ITKMetricsv4TestDriver:arm64+0x1004bf9c0)
    #2 itk::DomainThreader<itk::ThreadedIndexedContainerPartitioner, itk::ImageToImageMetricv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double, itk::DefaultImageToImageMetricTraitsv4<itk::Image<double, 2u>, itk::Image<double, 2u>, itk::Image<double, 2u>, double>>>::ThreaderCallback(void*) itkDomainThreader.hxx:123 (ITKMetricsv4TestDriver:arm64+0x100259b6c)
    #3 std::__1::future<std::__1::invoke_result<void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*>::type> itk::ThreadPool::AddWork<void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*>(void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*&&)::'lambda'()::operator()() const itkThreadPool.h:92 (ITKMetricsv4TestDriver:arm64+0x1007d3228)
    #4 decltype(std::declval<void* (*&)(void*)>()(std::declval<itk::PoolMultiThreader::ThreadPoolInfoStruct*>())) std::__1::__invoke[abi:v160006]<std::__1::future<std::__1::invoke_result<void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*>::type> itk::ThreadPool::AddWork<void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*>(void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*&&)::'lambda'()&>(void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*&&) invoke.h:394 (ITKMetricsv4TestDriver:arm64+0x1007d31a4)
```
thewtex and others added 26 commits February 13, 2025 14:22
ENH: Let `itk::Array` support class template argument deduction (CTAD)
Note: The 5.4.1 release announcement was skipped for a critical fix
added immediately after to be released in 5.4.2.
BUG:  Incorrect size for looping closed parametric dimension.
In BSplineScatteredDataPointSetToImageFilter.
convert MINC PositiveCoordinateOrientation RAS coordinates to ITK PositiveCoordinateOrientation LPS coordinates
during reading and writing
convert MINC PositiveCoordinateOrientation RAS coordinate system to ITK PositiveCoordinateOrientation LPS
Remove MINC IO RAS to LPS CMake flag. Commits f97618b and 9eb1b70
address the contrasting internal image orientation conventions used by
ITK and MINC, making MINC follow the same convetion as ITK.

Thus, the corresponding conversion CMake flag is no longer necessary.

Set the ivar `m_RAStoLPS` default value to `false` following the change.
Adopt ITK style conventions in MINC module code: adopt the recommended
variable naming conventions.
Remove empty end of file line in excess.

Fixes:
```
diff --git a/Documentation/docs/releases/5.4.2.md b/Documentation/docs/releases/5.4.2.md
index 64cb36c..78f5864 100644
--- a/Documentation/docs/releases/5.4.2.md
+++ b/Documentation/docs/releases/5.4.2.md
@@ -272,4 +272,3 @@ Remote Module Changes Since v5.4.0
 #### Bug Fixes

 - Bump Python package version for re-deploy ([9f6654d](InsightSoftwareConsortium/ITKTotalVariation@9f6654d))
-
```

raised for example in:
https://github.com/InsightSoftwareConsortium/ITK/actions/runs/13343048744/job/37270119146?pr=4864#step:5:133
Locally ran pixi at the root of ITK source tree, as follows:

    ./.git/hooks/pixi/bin/pixi.exe run pre-commit-run

Output:

    Pixi task (pre-commit-run in pre-commit): pre-commit run --all: (Run pre-commit hooks on all repository files)
    check for added large files..............................................Passed
    [...]
    fix end of files.........................................................Failed
    - hook id: end-of-file-fixer
    - exit code: 1
    - files were modified by this hook
STYLE: Remove empty line from doc file (pre-commit "fix end of files")
Replaced `std::pow(2.0, x)` with `1ULL << x` where `x` is either
`ImageDimension` or `ImageDimension + 1`. Declared a few more variables
`constexpr`.

In general, a left-shift may be faster than an `std::pow` call.
Aims to address test failures reported by Yuri Victorovich, at
#5245, saying:

```
/usr/ports/science/InsightToolkit/work/ITK-5.4.2/Modules/Core/Common/test/itkNumberToStringGTest.cxx:99: Failure
Expected equality of these values:
  numberToString(power_of_ten)
    Which is: "100000010000"
  '1' + std::string(exponent, '0')
    Which is: "100000000000"
Floating point type: float

...

/usr/ports/science/InsightToolkit/work/ITK-5.4.2/Modules/Core/Common/test/itkNumberToStringGTest.cxx:109: Failure
Expected equality of these values:
  numberToString(-power_of_ten)
    Which is: "-0.000009999999999999999"
  "-0." + std::string(-1 - exponent, '0') + '1'
    Which is: "-0.00001"
Floating point type: double/usr/ports/science/InsightToolkit/work/ITK-5.4.2/Modules/Core/Common/test/itkNumberToStringGTest.cxx:109: Failure
Expected equality of these values:
  numberToString(-power_of_ten)
    Which is: "-0.000009999999999999999"
  "-0." + std::string(-1 - exponent, '0') + '1'
    Which is: "-0.00001"
Floating point type: double
```

Using clang-19 on FreeBSD 14.2.

Sean McBride confirmed that this commit would solve the issue on his FreeBSD VM.
On a number of lines the `\cite` command and the cite label were on different lines and that is currently not allowed in doxygen.
…tring

BUG: Replace `pow` with `Math::UnsignedPower` in NumberToString GTest
STYLE: Replace `std::pow(2, dim)` calls with `1 << dim`
`Math::sqr(x)` appears slightly more readable than `std::pow(x, 2)`.
Code extracted from:

    https://github.com/BIC-MNI/libminc.git

at commit 3b8d9c7edb313bb33419338f3de89e4fc1aaf14f (master).
jhlegarreta and others added 30 commits May 27, 2025 17:07
Clarify further remote module major version bumps with ITK minor
releases.
Reusing a TIFFImageIO object in the image series reader causes the
incorrect slice to be read.
Reusing a TIFFImageIO for reading multiple files, may not trigger the
update of open file in the internal tiff class. Add check that the
open file name matches that with the imageIO before continuing.
Change `IOScanco` remote module GitHub organization to
`InsightSoftwareConsortium` after transferring it from `KitwareMedical`
by Dženan Zukić on May, 27 2025.
Replace 'assert' with `return false' for file with erroneous BitsAllocated=12
value.
Also update repository capitalization.
cmake 3.31 does an implicit conversion of paths like:
```
/myvenv/site-packages//itk --> /myvenv/site-packages/itk
                     ^^                             ^
```

which produces many warnings like:

```txt
ITKCommon: Creating itkAnatomicalOrientation submodule.
 CMake Warning (dev) at Wrapping/Generators/Python/CMakeLists.txt:88 (install):
   Policy CMP0177 is not set: install() DESTINATION paths are normalized.  Run
   "cmake --help-policy CMP0177" for policy details.  Use the cmake_policy
   command to set the policy and suppress this warning.
 Call Stack (most recent call first):
   Wrapping/Generators/Python/CMakeLists.txt:305 (wrap_itk_python_bindings_install)
   Wrapping/Generators/Python/CMakeLists.txt:380 (itk_setup_swig_python)
   Wrapping/macro_files/itk_auto_load_submodules.cmake:328 (itk_end_wrap_submodule_python)
   Wrapping/TypedefMacros.cmake:1331 (itk_auto_load_submodules)
   Modules/Core/Common/wrapping/CMakeLists.txt:63 (itk_auto_load_and_end_wrap_submodules)
```

Explicitly normalizing the path before calling the install command suppresses the message.
Update remote modules to allow building
with ITK_LEGACY_REMOVE and ITK_FUTURE_LEGACY_REMOVE
flags turned on with ITKv6.

```bash
for i in $(pwd)/*.remote.cmake; do
  remote_dir_name=$(echo $(basename $i) | sed 's/\.remote\.cmake//g')
  REMOTESDIR=$(pwd)
  pushd ${REMOTESDIR}/${remote_dir_name}
  git fetch origin
  branch_name=$(git symbolic-ref refs/remotes/origin/HEAD | sed 's@^refs/remotes/origin/@@')
  git_hash=$(cd ${REMOTESDIR}/${remote_dir_name} && git rev-parse origin/${branch_name} )
  echo "Update $i with $git_hash"
  popd
  gsed -i "s/GIT_TAG *[0-9a-f]*/GIT_TAG ${git_hash}/g" $i
done

```
ENH: Update WebAssemblyInterface remote to 2025-05-28
BUG: fix GDCM crash due to malformed file
Replace 'assert' with `return false' for file with erroneous BitsAllocated=12
value.
Fix reusing TIFFImageIO with series reader
Reusing a TIFFImageIO object in the image series reader causes the
incorrect slice to be read.
Reusing a TIFFImageIO for reading multiple files, may not trigger the
update of open file in the internal tiff class. Add check that the
open file name matches that with the imageIO before continuing.
backport COMP: Improve path management for python package install to release-5.4
When preparing for the future with ITK by setting
ITK_FUTURE_LEGACY_REMOVE:BOOL=ON
ITK_LEGACY_REMOVEBOOL=ON

The future preferred macro should be used
│ -  itkTypeMacro
│ +  itkOverrideGetNameOfClassMacro

Remove unnecessary "," for single argument macro.

Co-authored-by: Dženan Zukić <dzenan.zukic@kitware.com>
Here is output before and after this change:

Dzenan@Ryzenator MINGW64 /c/Misc/ITK-patches (master)
$ ./Utilities/Maintenance/UpdateRemoteModules.sh
..........................fatal: remote error:
  is not a valid repository name
Visit https://support.github.com/ for help
fatal: remote error:
  is not a valid repository name
Visit https://support.github.com/ for help
 has neither branch named master nor main
..................................
All modules are up to date

Dzenan@Ryzenator MINGW64 /c/Misc/ITK-patches (master)
$ ./Utilities/Maintenance/UpdateRemoteModules.sh
/c/Misc/ITK-patches/Modules/Remote/AdaptiveDenoising.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/AnalyzeObjectLabelMap.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/AnisotropicDiffusionLBR.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/BSplineGradient.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/BioCell.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/BoneEnhancement.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/BoneMorphometry.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/Cleaver.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/Cuberille.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/CudaCommon.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/FPFH.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/FastBilateral.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/FixedPointInverseDisplacementField.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/GenericLabelInterpolator.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/GrowCut.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/HASI.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/HigherOrderAccurateGradient.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/IOFDF.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/IOMeshMZ3.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/IOMeshSTL.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/IOMeshSWC.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/IOOpenSlide.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/IOScanco.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/IOTransformDCMTK.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/IsotropicWavelets.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/LabelErodeDilate.remote.cmake
fatal: remote error:
  is not a valid repository name
Visit https://support.github.com/ for help
fatal: remote error:
  is not a valid repository name
Visit https://support.github.com/ for help
 has neither branch named master nor main
/c/Misc/ITK-patches/Modules/Remote/LesionSizingToolkit.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/MGHIO.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/MeshNoise.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/MeshToPolyData.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/MinimalPathExtraction.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/Montage.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/MorphologicalContourInterpolation.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/MultipleImageIterator.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/ParabolicMorphology.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/PerformanceBenchmarking.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/PhaseSymmetry.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/PolarTransform.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/PrincipalComponentsAnalysis.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/RANSAC.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/RLEImage.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/RTK.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/SCIFIO.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/Shape.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/SimpleITKFilters.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/SkullStrip.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/SmoothingRecursiveYvvGaussianFilter.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/SphinxExamples.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/SplitComponents.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/Strain.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/SubdivisionQuadEdgeMeshFilter.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/TextureFeatures.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/Thickness3D.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/TotalVariation.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/TubeTK.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/TwoProjectionRegistration.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/Ultrasound.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/VariationalRegistration.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/VkFFTBackend.remote.cmake
/c/Misc/ITK-patches/Modules/Remote/WebAssemblyInterface.remote.cmake

All modules are up to date

Dzenan@Ryzenator MINGW64 /c/Misc/ITK-patches (master)
Fix GIT_REPOSITORY value to be on same line as script expects.
Enables addressing the following warning:
TIFFWriteDirectorySec: Warning, Creating TIFF with legacy Deflate codec identifier, COMPRESSION_ADOBE_DEFLATE is more widely supported.
In addressing the following warning:
note: parameter passing for argument of type 'std::pair<double,
double>' when C++17 is enabled changed to match C++14 in GCC 10.

due to one argment being const and the other not. Code is updated to
do only one search.
Improve efficiency and address warning
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.