Support of ITK 5.x in OTB
-
Review changes -
-
Download -
Patches
-
Plain diff
Summary
ITK 5.0 has been released !
This merge request is based on the work done in !194 (closed), the original branch ( cs-si:itk5_preperation
) has been rebased on top of develop, and additional changes have been made to make the branch compatible with the release.
Rationale
See the ITK 5 migration guidelines
Prior to ITK 5.0, only a subset of C+11 functionality was used, when available, through backports and macros. ITK now requires a C+11 standard compiler. And this get rid of lot of macros. Move to C++11 does not affect OTB since it has already moved to a higher standard (C++14). Meanwhile in this MR we introduce some C++17 concepts, as ITK 5.4 will be the first release to fully support C++17
Another important API change in ITK is its threading model. This affects OTB , Remote Modules and projects depending on OTB (both official and unofficial) in large scale. This merge request covers the use of the new threading model introduced with ITK 5.0.
This MR is fully compatible with ITK 5 and drops compatibility with ITK 4.
With this MR, debian, openSuse and other distros can now provide a distribution package for OTB.
Implementation Details
- Rebase the 5 years branch to the current develop branch
- Use the new Threading model when possible ThreadedGenerateData => DynamicThreadedGenerateData
- Migrate ITK mutexes to std::mutex
- Migrate ITKTree to Boost Graph implementation for Vector Data handling
- Migrate ProgressReporter to ProgressReportManager
- Remove ITK 4 compatibility
- 100% tests pass
- Functional tests
- Performance tests
Copyright
The copyright owner is CNES and has signed the ORFEO ToolBox Contributor License Agreement.
Check before merging:
- All discussions are resolved
- At least 2
votes from core developers, no vote. - The feature branch is (reasonably) up-to-date with the base branch
- Dashboard is green
- Copyright owner has signed the ORFEO ToolBox Contributor License Agreement
- Optionally, run
git diff develop... -U0 --no-color | clang-format-diff.py -p1 -i
on latest changes and commit
Merge request reports
- version 19111e1d4ed
- version 19011e1d4ed
- version 18911e1d4ed
- version 1885d7347e2
- version 187cdb55384
- version 186dc21b5d0
- version 185e4f99b31
- version 184cd82fc5a
- version 183ab19bd39
- version 182868e481c
- version 1815b2d6f0e
- version 180164dc73e
- version 179ed4bf820
- version 178b6308db8
- version 17798b3bf4c
- version 176c654126d
- version 17523a8c013
- version 17423a8c013
- version 173974766ed
- version 172d6c2c52d
- version 171a73c5d62
- version 1701465493f
- version 169297867d8
- version 168261d5ec5
- version 167aebfd936
- version 166294c3eee
- version 1655990ace5
- version 164295f10a0
- version 1637683d34f
- version 16289e64613
- version 161d4dc5c29
- version 160d4dc5c29
- version 159d4dc5c29
- version 158d4dc5c29
- version 1576b73d4b3
- version 1566b73d4b3
- version 1556b73d4b3
- version 1546b73d4b3
- version 153cea3fde6
- version 152cea3fde6
- version 151cea3fde6
- version 150cea3fde6
- version 1490e231d54
- version 1480e231d54
- version 1470e231d54
- version 1460e231d54
- version 145bf4ece75
- version 144bf4ece75
- version 143bf4ece75
- version 142bf4ece75
- version 1417ac898d7
- version 1407ac898d7
- version 1397ac898d7
- version 1387ac898d7
- version 1377ac898d7
- version 1367ac898d7
- version 1350b307e3a
- version 1340b307e3a
- version 13324806f33
- version 13224806f33
- version 13124806f33
- version 13024806f33
- version 129d1a29279
- version 128d1a29279
- version 127d1a29279
- version 126d1a29279
- version 125dc7eaadf
- version 124dc7eaadf
- version 123dc7eaadf
- version 122dc7eaadf
- version 121149c859a
- version 120149c859a
- version 119149c859a
- version 118149c859a
- version 1171e03c1e2
- version 1161e03c1e2
- version 1151e03c1e2
- version 1141e03c1e2
- version 1134a797e62
- version 1124a797e62
- version 1114a797e62
- version 1104a797e62
- version 10911cf4985
- version 10811cf4985
- version 10711cf4985
- version 10611cf4985
- version 1059c4deece
- version 1049c4deece
- version 1039c4deece
- version 1029c4deece
- version 101e14f4a23
- version 100e14f4a23
- version 99e14f4a23
- version 98e14f4a23
- version 977048311f
- version 967048311f
- version 957048311f
- version 947048311f
- version 93866f4832
- version 92866f4832
- version 91866f4832
- version 90866f4832
- version 89866f4832
- version 88866f4832
- version 87724b9851
- version 86724b9851
- version 857b49a138
- version 847b49a138
- version 837b49a138
- version 827b49a138
- version 81a1bea243
- version 80a1bea243
- version 79a1bea243
- version 78a1bea243
- version 771ee5d3d2
- version 761ee5d3d2
- version 751ee5d3d2
- version 741ee5d3d2
- version 7380a8cde5
- version 7280a8cde5
- version 7180a8cde5
- version 7080a8cde5
- version 69d5e35c86
- version 68d5e35c86
- version 67d5e35c86
- version 66d5e35c86
- version 65fc865e83
- version 64fc865e83
- version 63fc865e83
- version 62fc865e83
- version 61b9afe0d9
- version 60b9afe0d9
- version 59b9afe0d9
- version 58b9afe0d9
- version 57b15d836e
- version 56b15d836e
- version 55b15d836e
- version 54b15d836e
- version 535adcadf8
- version 525adcadf8
- version 515adcadf8
- version 505adcadf8
- version 49dd3e3f9a
- version 48dd3e3f9a
- version 47dd3e3f9a
- version 46dd3e3f9a
- version 4550b0cd71
- version 44ff0975b0
- version 43f1062c0a
- version 429e8f43a7
- version 41b4c1d6d8
- version 4026766cd0
- version 39cf2e61ff
- version 38492d76e1
- version 37f3fe4c59
- version 36b7c59812
- version 35737eb28e
- version 344ba0afb1
- version 338713a33b
- version 32c5ca0238
- version 31a08391af
- version 30fe381e32
- version 292fd72c5b
- version 2879781252
- version 27c5295365
- version 26574115fc
- version 254a5aa200
- version 24f36184c0
- version 23ea942e0d
- version 22edc38b35
- version 21b5edd716
- version 20a97eb762
- version 190a38ae8e
- version 18d8986b23
- version 1768768635
- version 16a60e712f
- version 15bb80940d
- version 1435edbf03
- version 13475404d2
- version 12dc0ebb96
- version 113c79c627
- version 1029fd60ce
- version 9aa0bbd11
- version 861537c27
- version 7656c63fe
- version 61ebeb806
- version 5d67cbae0
- version 45150d4c5
- version 3e236d64e
- version 24ad78a4c
- version 1ab730d5e
- develop (base)
- latest version11e1d4ed170 commits,
- version 19111e1d4ed170 commits,
- version 19011e1d4ed170 commits,
- version 18911e1d4ed170 commits,
- version 1885d7347e2169 commits,
- version 187cdb55384168 commits,
- version 186dc21b5d0167 commits,
- version 185e4f99b31166 commits,
- version 184cd82fc5a164 commits,
- version 183ab19bd39163 commits,
- version 182868e481c161 commits,
- version 1815b2d6f0e160 commits,
- version 180164dc73e159 commits,
- version 179ed4bf820158 commits,
- version 178b6308db8156 commits,
- version 17798b3bf4c155 commits,
- version 176c654126d153 commits,
- version 17523a8c013151 commits,
- version 17423a8c013151 commits,
- version 173974766ed150 commits,
- version 172d6c2c52d149 commits,
- version 171a73c5d62148 commits,
- version 1701465493f144 commits,
- version 169297867d8142 commits,
- version 168261d5ec5141 commits,
- version 167aebfd936140 commits,
- version 166294c3eee139 commits,
- version 1655990ace5138 commits,
- version 164295f10a0138 commits,
- version 1637683d34f136 commits,
- version 16289e64613134 commits,
- version 161d4dc5c29133 commits,
- version 160d4dc5c29133 commits,
- version 159d4dc5c29133 commits,
- version 158d4dc5c29133 commits,
- version 1576b73d4b3131 commits,
- version 1566b73d4b3131 commits,
- version 1556b73d4b3131 commits,
- version 1546b73d4b3131 commits,
- version 153cea3fde6130 commits,
- version 152cea3fde6130 commits,
- version 151cea3fde6130 commits,
- version 150cea3fde6130 commits,
- version 1490e231d54129 commits,
- version 1480e231d54129 commits,
- version 1470e231d54129 commits,
- version 1460e231d54129 commits,
- version 145bf4ece75128 commits,
- version 144bf4ece75128 commits,
- version 143bf4ece75128 commits,
- version 142bf4ece75128 commits,
- version 1417ac898d7127 commits,
- version 1407ac898d7127 commits,
- version 1397ac898d7127 commits,
- version 1387ac898d7127 commits,
- version 1377ac898d7127 commits,
- version 1367ac898d7127 commits,
- version 1350b307e3a126 commits,
- version 1340b307e3a126 commits,
- version 13324806f33125 commits,
- version 13224806f33125 commits,
- version 13124806f33125 commits,
- version 13024806f33125 commits,
- version 129d1a29279124 commits,
- version 128d1a29279124 commits,
- version 127d1a29279124 commits,
- version 126d1a29279124 commits,
- version 125dc7eaadf123 commits,
- version 124dc7eaadf123 commits,
- version 123dc7eaadf123 commits,
- version 122dc7eaadf123 commits,
- version 121149c859a122 commits,
- version 120149c859a122 commits,
- version 119149c859a122 commits,
- version 118149c859a122 commits,
- version 1171e03c1e2121 commits,
- version 1161e03c1e2121 commits,
- version 1151e03c1e2121 commits,
- version 1141e03c1e2121 commits,
- version 1134a797e62120 commits,
- version 1124a797e62120 commits,
- version 1114a797e62120 commits,
- version 1104a797e62120 commits,
- version 10911cf4985119 commits,
- version 10811cf4985119 commits,
- version 10711cf4985119 commits,
- version 10611cf4985119 commits,
- version 1059c4deece118 commits,
- version 1049c4deece118 commits,
- version 1039c4deece118 commits,
- version 1029c4deece118 commits,
- version 101e14f4a23117 commits,
- version 100e14f4a23117 commits,
- version 99e14f4a23117 commits,
- version 98e14f4a23117 commits,
- version 977048311f116 commits,
- version 967048311f116 commits,
- version 957048311f116 commits,
- version 947048311f116 commits,
- version 93866f4832115 commits,
- version 92866f4832115 commits,
- version 91866f4832115 commits,
- version 90866f4832115 commits,
- version 89866f4832115 commits,
- version 88866f4832115 commits,
- version 87724b9851114 commits,
- version 86724b9851114 commits,
- version 857b49a138120 commits,
- version 847b49a138120 commits,
- version 837b49a138120 commits,
- version 827b49a138120 commits,
- version 81a1bea243119 commits,
- version 80a1bea243119 commits,
- version 79a1bea243119 commits,
- version 78a1bea243119 commits,
- version 771ee5d3d2118 commits,
- version 761ee5d3d2118 commits,
- version 751ee5d3d2118 commits,
- version 741ee5d3d2118 commits,
- version 7380a8cde5117 commits,
- version 7280a8cde5117 commits,
- version 7180a8cde5117 commits,
- version 7080a8cde5117 commits,
- version 69d5e35c86116 commits,
- version 68d5e35c86116 commits,
- version 67d5e35c86116 commits,
- version 66d5e35c86116 commits,
- version 65fc865e83115 commits,
- version 64fc865e83115 commits,
- version 63fc865e83115 commits,
- version 62fc865e83115 commits,
- version 61b9afe0d9114 commits,
- version 60b9afe0d9114 commits,
- version 59b9afe0d9114 commits,
- version 58b9afe0d9114 commits,
- version 57b15d836e113 commits,
- version 56b15d836e113 commits,
- version 55b15d836e113 commits,
- version 54b15d836e113 commits,
- version 535adcadf8112 commits,
- version 525adcadf8112 commits,
- version 515adcadf8112 commits,
- version 505adcadf8112 commits,
- version 49dd3e3f9a111 commits,
- version 48dd3e3f9a111 commits,
- version 47dd3e3f9a111 commits,
- version 46dd3e3f9a111 commits,
- version 4550b0cd71110 commits,
- version 44ff0975b0109 commits,
- version 43f1062c0a108 commits,
- version 429e8f43a7104 commits,
- version 41b4c1d6d8103 commits,
- version 4026766cd0102 commits,
- version 39cf2e61ff101 commits,
- version 38492d76e1100 commits,
- version 37f3fe4c5999 commits,
- version 36b7c5981298 commits,
- version 35737eb28e97 commits,
- version 344ba0afb196 commits,
- version 338713a33b95 commits,
- version 32c5ca023894 commits,
- version 31a08391af93 commits,
- version 30fe381e3292 commits,
- version 292fd72c5b91 commits,
- version 287978125290 commits,
- version 27c529536589 commits,
- version 26574115fc88 commits,
- version 254a5aa20087 commits,
- version 24f36184c085 commits,
- version 23ea942e0d83 commits,
- version 22edc38b3582 commits,
- version 21b5edd71681 commits,
- version 20a97eb76279 commits,
- version 190a38ae8e78 commits,
- version 18d8986b2377 commits,
- version 176876863576 commits,
- version 16a60e712f75 commits,
- version 15bb80940d74 commits,
- version 1435edbf0373 commits,
- version 13475404d272 commits,
- version 12dc0ebb9671 commits,
- version 113c79c62770 commits,
- version 1029fd60ce67 commits,
- version 9aa0bbd1166 commits,
- version 861537c2765 commits,
- version 7656c63fe64 commits,
- version 61ebeb80663 commits,
- version 5d67cbae062 commits,
- version 45150d4c557 commits,
- version 3e236d64e56 commits,
- version 24ad78a4c55 commits,
- version 1ab730d5e51 commits,
- Side-by-side
- Inline