-FILE(
- GLOB libs_DEFS RELATIVE
- "${CMAKE_CURRENT_SOURCE_DIR}"
- "${CMAKE_CURRENT_SOURCE_DIR}/*.i"
- )
+## =================================
+## == Compile instances libraries ==
+## =================================
-FOREACH(i ${libs_DEFS})
- GET_FILENAME_COMPONENT(l_DEF ${i} NAME_WE)
- SET(i_FILE "${CMAKE_CURRENT_SOURCE_DIR}/${l_DEF}.i")
- SET(h_FILE "${CMAKE_CURRENT_BINARY_DIR}/${l_DEF}.h")
- SET(s_FILE "${CMAKE_CURRENT_BINARY_DIR}/${l_DEF}.cxx")
- SET(o_FILE "${CMAKE_CURRENT_SOURCE_DIR}/${l_DEF}_extra.cxx")
- SET(l_NAME "cpPlugins_${l_DEF}")
- ADD_CUSTOM_COMMAND(
- OUTPUT ${h_FILE} ${s_FILE}
- DEPENDS cpPlugins_CreateInstances ${i_FILE}
- COMMAND cpPlugins_CreateInstances ${i_FILE} ${l_NAME} ${h_FILE} ${s_FILE}
- )
- IF(EXISTS ${o_FILE})
- ADD_LIBRARY(${l_NAME} SHARED ${s_FILE} ${o_FILE})
- ELSE(EXISTS ${o_FILE})
- ADD_LIBRARY(${l_NAME} SHARED ${s_FILE})
- ENDIF(EXISTS ${o_FILE})
- SET_TARGET_PROPERTIES(
- ${l_NAME} PROPERTIES
- VERSION "${prj_VER}"
- SOVERSION "${prj_sVER}"
+SET(pfx "cpPlugins_Instances_")
+SET(arg ${pfx} ${prj_VER} ${prj_sVER})
+
+IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+ cpPlugins_WrapInstances(BaseObjects ${arg})
+ cpPlugins_WrapInstances(Decorators ${arg})
+ELSE(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+ cpPlugins_WrapInstances(BaseObjects ${arg} ${ITK_LIBRARIES})
+ cpPlugins_WrapInstances(Decorators ${arg} ${ITK_LIBRARIES})
+ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+cpPlugins_WrapInstances(Mesh ${arg} ${pfx}BaseObjects)
+cpPlugins_WrapInstances(Transforms ${arg} ${pfx}BaseObjects)
+cpPlugins_WrapInstances(ColorPixels ${arg} ${pfx}BaseObjects)
+cpPlugins_WrapInstances(ScalarImages ${arg} ${pfx}BaseObjects)
+cpPlugins_WrapInstances(ColorImages ${arg} ${pfx}ColorPixels ${pfx}ScalarImages)
+cpPlugins_WrapInstances(VectorImages ${arg} ${pfx}ScalarImages)
+IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+ cpPlugins_WrapInstances(Paths ${arg} ${pfx}ScalarImages)
+ELSE(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+ cpPlugins_WrapInstances(Paths ${arg} ${pfx}ScalarImages ${VTK_LIBRARIES})
+ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+cpPlugins_WrapInstances(NeighborhoodIterators ${arg} ${pfx}ScalarImages)
+IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+ cpPlugins_WrapInstances(
+ ImageITK2VTK ${arg} ${pfx}ScalarImages ${pfx}ColorImages ${pfx}VectorImages
)
- GENERATE_EXPORT_HEADER(
- ${l_NAME}
- BASE_NAME ${l_NAME}
- EXPORT_MACRO_NAME ${l_NAME}_EXPORT
- EXPORT_FILE_NAME ${CMAKE_CURRENT_BINARY_DIR}/${l_NAME}_Export.h
- STATIC_DEFINE ${l_NAME}_BUILT_AS_STATIC
+ELSE(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+ cpPlugins_WrapInstances(
+ ImageITK2VTK ${arg} ${pfx}ScalarImages ${pfx}ColorImages ${pfx}VectorImages ${VTK_LIBRARIES}
)
-ENDFOREACH(i)
+ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+cpPlugins_WrapInstances(
+ ImagesIO ${arg} ${pfx}ScalarImages ${pfx}ColorImages ${pfx}VectorImages ${pfx}Decorators
+ )
+cpPlugins_WrapInstances(ScalarImagesBaseFilters ${arg} ${pfx}ScalarImages)
+cpPlugins_WrapInstances(ScalarVectorImagesBaseFilters ${arg} ${pfx}ScalarImages ${pfx}VectorImages)
+cpPlugins_WrapInstances(BitwiseImageFilters ${arg} ${pfx}ScalarImagesBaseFilters ${pfx}Decorators)
+cpPlugins_WrapInstances(ThresholdFilters ${arg} ${pfx}ScalarImagesBaseFilters)
+cpPlugins_WrapInstances(ImageMeshFilters ${arg} ${pfx}ScalarImagesBaseFilters ${pfx}Mesh)
+cpPlugins_WrapInstances(ResamplingFilters ${arg} ${pfx}ScalarImagesBaseFilters ${pfx}Transforms)
+cpPlugins_WrapInstances(
+ DistanceMapFilters ${arg}
+ ${pfx}ScalarImagesBaseFilters ${pfx}NeighborhoodIterators ${pfx}ThresholdFilters
+ )
+cpPlugins_WrapInstances(
+ GaussianImageFilters ${arg}
+ ${pfx}ScalarImagesBaseFilters ${pfx}ScalarVectorImagesBaseFilters
+ )
+cpPlugins_WrapInstances(MorphologicalImageFilters ${arg} ${pfx}ScalarImagesBaseFilters)
+cpPlugins_WrapInstances(ExtractImageFilters ${arg} ${pfx}ScalarImages)
-## Target links
-TARGET_LINK_LIBRARIES(cpPlugins_Base ${ITK_LIBRARIES})
-TARGET_LINK_LIBRARIES(cpPlugins_Transforms ${ITK_LIBRARIES} cpPlugins_Base)
-TARGET_LINK_LIBRARIES(cpPlugins_Paths cpPlugins_Base)
-TARGET_LINK_LIBRARIES(cpPlugins_Mesh cpPlugins_Base)
-TARGET_LINK_LIBRARIES(cpPlugins_Image cpPlugins_Base)
-TARGET_LINK_LIBRARIES(cpPlugins_ImageIterators ${ITK_LIBRARIES} cpPlugins_Image)
-TARGET_LINK_LIBRARIES(cpPlugins_ImageFiltersBase cpPlugins_Image)
-TARGET_LINK_LIBRARIES(cpPlugins_InPlaceImageFiltersBase cpPlugins_ImageFiltersBase)
-TARGET_LINK_LIBRARIES(cpPlugins_ImageITK2VTK cpPlugins_ImageFiltersBase ${VTK_LIBRARIES})
-TARGET_LINK_LIBRARIES(cpPlugins_ThresholdFilters cpPlugins_InPlaceImageFiltersBase cpPlugins_ImageIterators)
-TARGET_LINK_LIBRARIES(cpPlugins_DistanceMapFilters cpPlugins_ThresholdFilters)
-TARGET_LINK_LIBRARIES(cpPlugins_ResamplingFilters cpPlugins_ImageFiltersBase cpPlugins_ImageIterators cpPlugins_Transforms)
-TARGET_LINK_LIBRARIES(cpPlugins_GaussianImageFilters cpPlugins_ImageFiltersBase cpPlugins_ImageIterators)
-TARGET_LINK_LIBRARIES(cpPlugins_ImageIO cpPlugins_ImageFiltersBase cpPlugins_ImageIterators)
+SET(
+ cpPlugins_LIBRARIES
+ ${pfx}BaseObjects
+ ${pfx}Decorators
+ ${pfx}Mesh
+ ${pfx}Transforms
+ ${pfx}ColorPixels
+ ${pfx}ScalarImages
+ ${pfx}ColorImages
+ ${pfx}VectorImages
+ ${pfx}Paths
+ ${pfx}NeighborhoodIterators
+ ${pfx}ImageITK2VTK
+ ${pfx}ImagesIO
+ ${pfx}ScalarImagesBaseFilters
+ ${pfx}ScalarVectorImagesBaseFilters
+ ${pfx}BitwiseImageFilters
+ ${pfx}ThresholdFilters
+ ${pfx}ImageMeshFilters
+ ${pfx}ResamplingFilters
+ ${pfx}DistanceMapFilters
+ ${pfx}GaussianImageFilters
+ ${pfx}MorphologicalImageFilters
+ ${pfx}ExtractImageFilters
+ CACHE INTERNAL "All valid instances." FORCE
+ )
+
+## ===================================
+## == Libraries to dynamically load ==
+## ===================================
+
+SET(cpPlugins_DynLibs)
+FOREACH(i ${VTK_LIBRARIES})
+ GET_TARGET_PROPERTY(lib_${i} ${i} LOCATION)
+ GET_FILENAME_COMPONENT(lib_name_${i} ${lib_${i}} NAME)
+ LIST(APPEND cpPlugins_DynLibs ${lib_name_${i}})
+ENDFOREACH(i)
+FOREACH(i ${ITK_LIBRARIES})
+ GET_TARGET_PROPERTY(lib_${i} ${i} LOCATION)
+ GET_FILENAME_COMPONENT(lib_name_${i} ${lib_${i}} NAME)
+ LIST(APPEND cpPlugins_DynLibs ${lib_name_${i}})
+ENDFOREACH(i)
-# INSTALL(
-# TARGETS ${l_NAME}
-# RUNTIME DESTINATION bin
-# LIBRARY DESTINATION lib
-# ARCHIVE DESTINATION lib/static
-# )
-# INSTALL(
-# FILES
-# ${lib_HEADERS}
-# DESTINATION include/${lib_DIR}
-# )
+CONFIGURE_FILE(
+ cpPlugins_DynLibs.h.in
+ ${PROJECT_BINARY_DIR}/lib/cpPlugins_Instances/cpPlugins_DynLibs.h
+ @ONLY
+ )
## eof - $RCSfile$