X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=lib%2FcpPlugins_Instances%2FCMakeLists.txt;h=d248386f17c213da486438b169e451963fd1254e;hb=17f052241f7ab67015e3a34f7564da17da8a0e07;hp=f040a22975d3f7e4d962b1e2a5a6e2b6e00902b0;hpb=e8aa06dcf9c9fe4391ece860ffd2d4e9c80e289d;p=cpPlugins.git diff --git a/lib/cpPlugins_Instances/CMakeLists.txt b/lib/cpPlugins_Instances/CMakeLists.txt index f040a22..d248386 100644 --- a/lib/cpPlugins_Instances/CMakeLists.txt +++ b/lib/cpPlugins_Instances/CMakeLists.txt @@ -1,74 +1,105 @@ -FILE( - GLOB libs_DEFS RELATIVE - "${CMAKE_CURRENT_SOURCE_DIR}" - "${CMAKE_CURRENT_SOURCE_DIR}/*.i" - ) +## ================================= +## == Compile instances libraries == +## ================================= -SET(aux_ALL_INSTANCES) -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}") - SET(aux_ALL_INSTANCES ${aux_ALL_INSTANCES} ${l_NAME}) - 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) SET( - cpPlugins_ALL_INSTANCES - ${aux_ALL_INSTANCES} - CACHE STRING "All instances libraries." + 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 ) -## 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 ${VTK_LIBRARIES}) -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) +## =================================== +## == Libraries to dynamically load == +## =================================== -# INSTALL( -# TARGETS ${l_NAME} -# RUNTIME DESTINATION bin -# LIBRARY DESTINATION lib -# ARCHIVE DESTINATION lib/static -# ) -# INSTALL( -# FILES -# ${lib_HEADERS} -# DESTINATION include/${lib_DIR} -# ) +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) + +CONFIGURE_FILE( + cpPlugins_DynLibs.h.in + ${PROJECT_BINARY_DIR}/lib/cpPlugins_Instances/cpPlugins_DynLibs.h + @ONLY + ) ## eof - $RCSfile$