X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcpPlugins_Instances%2FCMakeLists.txt;h=d248386f17c213da486438b169e451963fd1254e;hb=17f052241f7ab67015e3a34f7564da17da8a0e07;hp=a70119b932c8b897cd0fe8139487ea91801143cd;hpb=2d72a27d8004ff64cc1ba93b35eddff978c916c3;p=cpPlugins.git diff --git a/lib/cpPlugins_Instances/CMakeLists.txt b/lib/cpPlugins_Instances/CMakeLists.txt index a70119b..d248386 100644 --- a/lib/cpPlugins_Instances/CMakeLists.txt +++ b/lib/cpPlugins_Instances/CMakeLists.txt @@ -1,133 +1,105 @@ -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$