X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcpPlugins_Instances%2FCMakeLists.txt;h=d248386f17c213da486438b169e451963fd1254e;hb=17f052241f7ab67015e3a34f7564da17da8a0e07;hp=8042a986664f07e8b9d45a56680011656867768e;hpb=a45c494fd214d02909f227909db3d9e04986b130;p=cpPlugins.git diff --git a/lib/cpPlugins_Instances/CMakeLists.txt b/lib/cpPlugins_Instances/CMakeLists.txt index 8042a98..d248386 100644 --- a/lib/cpPlugins_Instances/CMakeLists.txt +++ b/lib/cpPlugins_Instances/CMakeLists.txt @@ -1,72 +1,105 @@ -## ============================ -## == Configure source files == -## ============================ - -FILE( - GLOB all_INSTANCES_FILES RELATIVE - "${CMAKE_CURRENT_SOURCE_DIR}" - "${CMAKE_CURRENT_SOURCE_DIR}/*.i" - ) - ## ================================= ## == Compile instances libraries == ## ================================= -SET(all_INSTANCES_LIBS "") -FOREACH(libID ${all_INSTANCES_FILES}) - GET_FILENAME_COMPONENT(name ${libID} NAME_WE) - SET(instances "${CMAKE_CURRENT_SOURCE_DIR}/${name}.i") - SET(header "${CMAKE_CURRENT_BINARY_DIR}/${name}.h") - SET(source "${CMAKE_CURRENT_BINARY_DIR}/${name}.cxx") - SET(extra "${CMAKE_CURRENT_SOURCE_DIR}/${name}_extra.cxx") - SET(libname cpPlugins_Instances_${name}) - ADD_CUSTOM_COMMAND( - OUTPUT ${header} ${source} - DEPENDS "${cpPluginsInstances_APP}" ${instances} - COMMAND "${cpPluginsInstances_APP}" ${instances} ${libname} ${header} ${source} - ) - IF(EXISTS ${extra}) - ADD_LIBRARY(${libname} SHARED ${source} ${extra}) - ELSE(EXISTS ${extra}) - ADD_LIBRARY(${libname} SHARED ${source}) - ENDIF(EXISTS ${extra}) - SET_TARGET_PROPERTIES( - ${libname} 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( - ${libname} - BASE_NAME ${libname} - EXPORT_MACRO_NAME ${libname}_EXPORT - EXPORT_FILE_NAME ${CMAKE_CURRENT_BINARY_DIR}/${libname}_Export.h - STATIC_DEFINE ${libname}_BUILT_AS_STATIC +ELSE(${CMAKE_SYSTEM_NAME} MATCHES "Linux") + cpPlugins_WrapInstances( + ImageITK2VTK ${arg} ${pfx}ScalarImages ${pfx}ColorImages ${pfx}VectorImages ${VTK_LIBRARIES} ) - SET(all_INSTANCES_LIBS "${all_INSTANCES_LIBS};${libname}") -ENDFOREACH(libID) -SET(cpPlugins_LIBRARIES ${all_INSTANCES_LIBS} CACHE INTERNAL "All libraries" FORCE) +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_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 == +## =================================== -## ============= -## == Linking == -## ============= +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) -TARGET_LINK_LIBRARIES(cpPlugins_Instances_BaseObjects ${ITK_LIBRARIES}) -TARGET_LINK_LIBRARIES(cpPlugins_Instances_Decorators ${ITK_LIBRARIES}) -TARGET_LINK_LIBRARIES(cpPlugins_Instances_ColorPixels cpPlugins_Instances_BaseObjects) -TARGET_LINK_LIBRARIES(cpPlugins_Instances_ScalarImages cpPlugins_Instances_BaseObjects) -TARGET_LINK_LIBRARIES(cpPlugins_Instances_ColorImages cpPlugins_Instances_ColorPixels cpPlugins_Instances_ScalarImages) -TARGET_LINK_LIBRARIES(cpPlugins_Instances_VectorImages cpPlugins_Instances_ColorPixels cpPlugins_Instances_ScalarImages) -TARGET_LINK_LIBRARIES(cpPlugins_Instances_ScalarImagesBaseFilters cpPlugins_Instances_ScalarImages) -TARGET_LINK_LIBRARIES(cpPlugins_Instances_ImagesIO cpPlugins_Instances_ScalarImages cpPlugins_Instances_ColorImages cpPlugins_Instances_VectorImages cpPlugins_Instances_Decorators) -TARGET_LINK_LIBRARIES(cpPlugins_Instances_ImageITK2VTK cpPlugins_Instances_ScalarImages cpPlugins_Instances_ColorImages cpPlugins_Instances_VectorImages ${VTK_LIBRARIES}) -TARGET_LINK_LIBRARIES(cpPlugins_Instances_Paths cpPlugins_Instances_ScalarImages ${VTK_LIBRARIES}) -TARGET_LINK_LIBRARIES(cpPlugins_Instances_Mesh cpPlugins_Instances_BaseObjects) -TARGET_LINK_LIBRARIES(cpPlugins_Instances_Transforms cpPlugins_Instances_BaseObjects) -TARGET_LINK_LIBRARIES(cpPlugins_Instances_ScalarVectorImagesBaseFilters cpPlugins_Instances_ScalarImages cpPlugins_Instances_VectorImages) -TARGET_LINK_LIBRARIES(cpPlugins_Instances_GaussianImageFilters cpPlugins_Instances_ScalarImagesBaseFilters cpPlugins_Instances_ScalarVectorImagesBaseFilters) -TARGET_LINK_LIBRARIES(cpPlugins_Instances_ThresholdFilters cpPlugins_Instances_ScalarImagesBaseFilters) -TARGET_LINK_LIBRARIES(cpPlugins_Instances_ResamplingFilters cpPlugins_Instances_ScalarImagesBaseFilters cpPlugins_Instances_Transforms) -TARGET_LINK_LIBRARIES(cpPlugins_Instances_ImageMeshFilters cpPlugins_Instances_ScalarImagesBaseFilters cpPlugins_Instances_Mesh) -TARGET_LINK_LIBRARIES(cpPlugins_Instances_NeighborhoodIterators cpPlugins_Instances_ScalarImages) -TARGET_LINK_LIBRARIES(cpPlugins_Instances_DistanceMapFilters cpPlugins_Instances_ScalarImagesBaseFilters cpPlugins_Instances_NeighborhoodIterators cpPlugins_Instances_ThresholdFilters) +CONFIGURE_FILE( + cpPlugins_DynLibs.h.in + ${PROJECT_BINARY_DIR}/lib/cpPlugins_Instances/cpPlugins_DynLibs.h + @ONLY + ) ## eof - $RCSfile$