]> Creatis software - cpPlugins.git/blobdiff - lib/cpPlugins_Instances/CMakeLists.txt
New plugins added.
[cpPlugins.git] / lib / cpPlugins_Instances / CMakeLists.txt
index a70119b932c8b897cd0fe8139487ea91801143cd..d248386f17c213da486438b169e451963fd1254e 100644 (file)
-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)
-
-## Target links
-TARGET_LINK_LIBRARIES(cpPlugins_Base ${ITK_LIBRARIES} ${VTK_LIBRARIES})
-TARGET_LINK_LIBRARIES(cpPlugins_Image cpPlugins_Base)
-TARGET_LINK_LIBRARIES(cpPlugins_Mesh cpPlugins_Base)
-TARGET_LINK_LIBRARIES(cpPlugins_Transforms cpPlugins_Base)
-TARGET_LINK_LIBRARIES(cpPlugins_ImageIterators cpPlugins_Image)
-TARGET_LINK_LIBRARIES(cpPlugins_ImageFiltersBase cpPlugins_Image)
-TARGET_LINK_LIBRARIES(cpPlugins_InPlaceImageFiltersBase cpPlugins_ImageFiltersBase)
-TARGET_LINK_LIBRARIES(cpPlugins_ThresholdFilters cpPlugins_InPlaceImageFiltersBase cpPlugins_ImageIterators)
-TARGET_LINK_LIBRARIES(cpPlugins_DistanceMapFilters cpPlugins_ThresholdFilters)
-TARGET_LINK_LIBRARIES(cpPlugins_ImageIO cpPlugins_ImageFiltersBase)
-TARGET_LINK_LIBRARIES(cpPlugins_ImageITK2VTK cpPlugins_ImageFiltersBase)
-
-#TARGET_LINK_LIBRARIES(cpPlugins_Transforms
-#   cpPlugins_Base
-#   )
-# TARGET_LINK_LIBRARIES(
-#   cpPlugins_Image
-#   cpPlugins_Base
-#   )
-# TARGET_LINK_LIBRARIES(
-#   cpPlugins_Mesh
-#   cpPlugins_Base
-#   )
-# TARGET_LINK_LIBRARIES(
-#   cpPlugins_ImageFiltersBase
-#   cpPlugins_Image
-#   )
-# TARGET_LINK_LIBRARIES(
-#   cpPlugins_ImageITK2VTK
-#   cpPlugins_ImageFiltersBase
-#   )
-# TARGET_LINK_LIBRARIES(
-#   cpPlugins_ImageIterators
-#   cpPlugins_Image
-#   )
-# TARGET_LINK_LIBRARIES(
-#   cpPlugins_ImageIO
-#   cpPlugins_ImageFiltersBase
-#   cpPlugins_ImageIterators
-#   )
-# TARGET_LINK_LIBRARIES(
-#   cpPlugins_ThresholdFilters
-#   cpPlugins_ImageFiltersBase
-#   cpPlugins_ImageIterators
-#   )
-# TARGET_LINK_LIBRARIES(
-#   cpPlugins_DistanceMapFilters
-#   cpPlugins_ThresholdFilters
-#   )
-# TARGET_LINK_LIBRARIES(
-#   cpPlugins_ResamplingFilters
-#   cpPlugins_Transforms
-#   cpPlugins_ImageFiltersBase
-#   cpPlugins_ImageIterators
-#   )
-
-# # ===================================
-# # = Integrate all source file names =
-# # ===================================
-
-# SET(
-#   lib_HEADERS
-#   ${lib_HEADERS_H}
-#   ${lib_HEADERS_HPP}
-#   ${lib_HEADERS_HXX}
-#   )
+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)
 
-# SET(
-#   lib_SOURCES
-#   ${lib_SOURCES_C}
-#   ${lib_SOURCES_CPP}
-#   ${lib_SOURCES_CXX}
-#   )
+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
+  )
 
-# ## =====================
-# ## = Compilation rules =
-# ## =====================
+## ===================================
+## == Libraries to dynamically load ==
+## ===================================
 
-# ## ========================
-# ## == Installation rules ==
-# ## ========================
+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$