Skip to content

Commit 52f37c8

Browse files
committed
BUG: Add DCMTK support for namespace targets
The External Project based DCMTK build has manually exported targets in the Module file that need to be explicitly specified for the ITK namespace.
1 parent 46fa889 commit 52f37c8

1 file changed

Lines changed: 17 additions & 16 deletions

File tree

Modules/ThirdParty/DCMTK/CMakeLists.txt

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,8 @@ else(ITK_USE_SYSTEM_DCMTK)
129129
endif()
130130
foreach(lib ${_ITKDCMTK_LIB_NAMES})
131131
# add it as an imported library target
132-
add_library(${lib} ${_ITKDCMTK_LIB_LINKAGE} IMPORTED GLOBAL)
132+
# Note: because of the manual export, we can not use an ALIAS target for the namespace
133+
add_library(${ITK_MODULE_${itk-module}_TARGETS_NAMESPACE}${lib} ${_ITKDCMTK_LIB_LINKAGE} IMPORTED GLOBAL)
133134
endforeach()
134135

135136
# Use DCMTK include files in place in the build directory.
@@ -161,13 +162,13 @@ set(ITKDCMTK_LINK_DEPENDENCIES ${ITKDCMTK_LIBDEP_WIN})
161162
set(ITKDCMTK_EXPORT_CODE_BUILD "
162163
${ITKDCMTK_EXPORT_CODE_BUILD}
163164
foreach(lib ${_ITKDCMTK_LIB_NAMES})
164-
if(NOT TARGET \${lib})
165-
add_library(\${lib} ${_ITKDCMTK_LIB_LINKAGE} IMPORTED)
165+
if(NOT TARGET ${ITK_MODULE_${itk-module}_TARGETS_NAMESPACE}\${lib})
166+
add_library(${ITK_MODULE_${itk-module}_TARGETS_NAMESPACE}\${lib} ${_ITKDCMTK_LIB_LINKAGE} IMPORTED)
166167
foreach(c ${CMAKE_CONFIGURATION_TYPES})
167168
string(TOUPPER \"\${c}\" C)
168-
set_property(TARGET \${lib} PROPERTY IMPORTED_LOCATION_\${C}
169+
set_property(TARGET ${ITK_MODULE_${itk-module}_TARGETS_NAMESPACE}\${lib} PROPERTY IMPORTED_LOCATION_\${C}
169170
\"${lib_dir}/\${c}/${lib_prefix}\${lib}${lib_suffix}\")
170-
set_property(TARGET \${lib} PROPERTY
171+
set_property(TARGET ${ITK_MODULE_${itk-module}_TARGETS_NAMESPACE}\${lib} PROPERTY
171172
IMPORTED_LINK_INTERFACE_LIBRARIES
172173
${ITKDCMTK_LINK_DEPENDENCIES})
173174
endforeach()
@@ -178,11 +179,11 @@ endforeach()
178179
set(ITKDCMTK_EXPORT_CODE_BUILD "
179180
${ITKDCMTK_EXPORT_CODE_BUILD}
180181
foreach(lib ${_ITKDCMTK_LIB_NAMES})
181-
if(NOT TARGET \${lib})
182-
add_library(\${lib} ${_ITKDCMTK_LIB_LINKAGE} IMPORTED)
183-
set_property(TARGET \${lib} PROPERTY IMPORTED_LOCATION
182+
if(NOT TARGET ${ITK_MODULE_${itk-module}_TARGETS_NAMESPACE}\${lib})
183+
add_library(${ITK_MODULE_${itk-module}_TARGETS_NAMESPACE}\${lib} ${_ITKDCMTK_LIB_LINKAGE} IMPORTED)
184+
set_property(TARGET ${ITK_MODULE_${itk-module}_TARGETS_NAMESPACE}\${lib} PROPERTY IMPORTED_LOCATION
184185
\"${lib_dir}/${lib_prefix}\${lib}${lib_suffix}\")
185-
set_property(TARGET \${lib} PROPERTY
186+
set_property(TARGET ${ITK_MODULE_${itk-module}_TARGETS_NAMESPACE}\${lib} PROPERTY
186187
IMPORTED_LINK_INTERFACE_LIBRARIES
187188
${ITKDCMTK_LINK_DEPENDENCIES})
188189
endif()
@@ -192,11 +193,11 @@ endforeach()
192193
# create imported targets when module is loaded from install tree
193194
set(ITKDCMTK_EXPORT_CODE_INSTALL "
194195
foreach(lib ${_ITKDCMTK_LIB_NAMES})
195-
if(NOT TARGET \${lib})
196-
add_library(\${lib} ${_ITKDCMTK_LIB_LINKAGE} IMPORTED)
197-
set_property(TARGET \${lib} PROPERTY IMPORTED_LOCATION
196+
if(NOT TARGET ${ITK_MODULE_${itk-module}_TARGETS_NAMESPACE}\${lib})
197+
add_library(${ITK_MODULE_${itk-module}_TARGETS_NAMESPACE}\${lib} ${_ITKDCMTK_LIB_LINKAGE} IMPORTED)
198+
set_property(TARGET ${ITK_MODULE_${itk-module}_TARGETS_NAMESPACE}\${lib} PROPERTY IMPORTED_LOCATION
198199
\"\${ITK_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/${lib_prefix}\${lib}${lib_suffix}\")
199-
set_property(TARGET \${lib} PROPERTY
200+
set_property(TARGET ${ITK_MODULE_${itk-module}_TARGETS_NAMESPACE}\${lib} PROPERTY
200201
IMPORTED_LINK_INTERFACE_LIBRARIES
201202
${ITKDCMTK_LINK_DEPENDENCIES})
202203
endif()
@@ -273,14 +274,14 @@ endforeach()
273274
list(APPEND DCMTK_BYPRODUCTS "${lib_dir}/${c}/${lib_prefix}${lib}${lib_suffix}")
274275
endforeach()
275276
else()
276-
set_property(TARGET ${lib} PROPERTY IMPORTED_LOCATION
277+
set_property(TARGET ${ITK_MODULE_${itk-module}_TARGETS_NAMESPACE}${lib} PROPERTY IMPORTED_LOCATION
277278
${lib_dir}/${lib_prefix}${lib}${lib_suffix})
278279
list(APPEND DCMTK_BYPRODUCTS "${lib_dir}/${lib_prefix}${lib}${lib_suffix}")
279280
endif()
280281

281282
# make the imported library depend on its prerequisite
282283
# libraries
283-
set_property(TARGET ${lib} PROPERTY
284+
set_property(TARGET ${ITK_MODULE_${itk-module}_TARGETS_NAMESPACE}${lib} PROPERTY
284285
IMPORTED_LINK_INTERFACE_LIBRARIES
285286
${ITKDCMTK_LIBDEP} )
286287
endforeach()
@@ -343,7 +344,7 @@ endforeach()
343344
)
344345
foreach(lib ${_ITKDCMTK_LIB_NAMES})
345346
# make imported library target depend on external project target
346-
add_dependencies(${lib} ${DCMTK_EPNAME})
347+
add_dependencies(${ITK_MODULE_${itk-module}_TARGETS_NAMESPACE}${lib} ${DCMTK_EPNAME})
347348
endforeach()
348349

349350
# Tell CPack to install DCMTK stuff

0 commit comments

Comments
 (0)