]> Creatis software - cpPlugins.git/blob - lib/cpPlugins_Instances/CMakeLists.txt
2be6bd84b640d2baaab9acbf3731108ca70874e9
[cpPlugins.git] / lib / cpPlugins_Instances / CMakeLists.txt
1 FILE(
2   GLOB libs_DEFS RELATIVE
3   "${CMAKE_CURRENT_SOURCE_DIR}"
4   "${CMAKE_CURRENT_SOURCE_DIR}/*.i"
5   )
6
7 FOREACH(i ${libs_DEFS})
8   GET_FILENAME_COMPONENT(l_DEF ${i} NAME_WE)
9   SET(i_FILE "${CMAKE_CURRENT_SOURCE_DIR}/${l_DEF}.i")
10   SET(h_FILE "${CMAKE_CURRENT_BINARY_DIR}/${l_DEF}.h")
11   SET(s_FILE "${CMAKE_CURRENT_BINARY_DIR}/${l_DEF}.cxx")
12   SET(o_FILE "${CMAKE_CURRENT_SOURCE_DIR}/${l_DEF}_extra.cxx")
13   SET(l_NAME "cpPlugins_${l_DEF}")
14   ADD_CUSTOM_COMMAND(
15     OUTPUT ${h_FILE} ${s_FILE}
16     DEPENDS cpPlugins_CreateInstances ${i_FILE}
17     COMMAND cpPlugins_CreateInstances ${i_FILE} ${l_NAME} ${h_FILE} ${s_FILE}
18     )
19   IF(EXISTS ${o_FILE})
20     ADD_LIBRARY(${l_NAME} SHARED ${s_FILE} ${o_FILE})
21   ELSE(EXISTS ${o_FILE})
22     ADD_LIBRARY(${l_NAME} SHARED ${s_FILE})
23   ENDIF(EXISTS ${o_FILE})
24   SET_TARGET_PROPERTIES(
25     ${l_NAME} PROPERTIES
26     VERSION "${prj_VER}"
27     SOVERSION "${prj_sVER}"
28     )
29   GENERATE_EXPORT_HEADER(
30     ${l_NAME}
31     BASE_NAME ${l_NAME}
32     EXPORT_MACRO_NAME ${l_NAME}_EXPORT
33     EXPORT_FILE_NAME ${CMAKE_CURRENT_BINARY_DIR}/${l_NAME}_Export.h
34     STATIC_DEFINE ${l_NAME}_BUILT_AS_STATIC
35     )
36 ENDFOREACH(i)
37
38 ## Target links
39 TARGET_LINK_LIBRARIES(cpPlugins_Base ${ITK_LIBRARIES} ${VTK_LIBRARIES})
40 TARGET_LINK_LIBRARIES(cpPlugins_Image cpPlugins_Base)
41 TARGET_LINK_LIBRARIES(cpPlugins_Mesh cpPlugins_Base)
42 TARGET_LINK_LIBRARIES(cpPlugins_Paths cpPlugins_Base)
43 TARGET_LINK_LIBRARIES(cpPlugins_Transforms cpPlugins_Base)
44 TARGET_LINK_LIBRARIES(cpPlugins_ImageIterators cpPlugins_Image)
45 TARGET_LINK_LIBRARIES(cpPlugins_ImageFiltersBase cpPlugins_Image)
46 TARGET_LINK_LIBRARIES(cpPlugins_InPlaceImageFiltersBase cpPlugins_ImageFiltersBase)
47 TARGET_LINK_LIBRARIES(cpPlugins_ThresholdFilters cpPlugins_InPlaceImageFiltersBase cpPlugins_ImageIterators)
48 TARGET_LINK_LIBRARIES(cpPlugins_DistanceMapFilters cpPlugins_ThresholdFilters)
49 TARGET_LINK_LIBRARIES(cpPlugins_ImageIO cpPlugins_ImageFiltersBase cpPlugins_ImageIterators)
50 TARGET_LINK_LIBRARIES(cpPlugins_ImageITK2VTK cpPlugins_ImageFiltersBase)
51 TARGET_LINK_LIBRARIES(cpPlugins_ResamplingFilters cpPlugins_ImageFiltersBase cpPlugins_ImageIterators cpPlugins_Transforms)
52 TARGET_LINK_LIBRARIES(cpPlugins_GaussianImageFilters cpPlugins_ImageFiltersBase cpPlugins_ImageIterators)
53
54 #TARGET_LINK_LIBRARIES(cpPlugins_Transforms
55 #   cpPlugins_Base
56 #   )
57 # TARGET_LINK_LIBRARIES(
58 #   cpPlugins_Image
59 #   cpPlugins_Base
60 #   )
61 # TARGET_LINK_LIBRARIES(
62 #   cpPlugins_Mesh
63 #   cpPlugins_Base
64 #   )
65 # TARGET_LINK_LIBRARIES(
66 #   cpPlugins_ImageFiltersBase
67 #   cpPlugins_Image
68 #   )
69 # TARGET_LINK_LIBRARIES(
70 #   cpPlugins_ImageITK2VTK
71 #   cpPlugins_ImageFiltersBase
72 #   )
73 # TARGET_LINK_LIBRARIES(
74 #   cpPlugins_ImageIterators
75 #   cpPlugins_Image
76 #   )
77 # TARGET_LINK_LIBRARIES(
78 #   cpPlugins_ImageIO
79 #   cpPlugins_ImageFiltersBase
80 #   cpPlugins_ImageIterators
81 #   )
82 # TARGET_LINK_LIBRARIES(
83 #   cpPlugins_ThresholdFilters
84 #   cpPlugins_ImageFiltersBase
85 #   cpPlugins_ImageIterators
86 #   )
87 # TARGET_LINK_LIBRARIES(
88 #   cpPlugins_DistanceMapFilters
89 #   cpPlugins_ThresholdFilters
90 #   )
91 # TARGET_LINK_LIBRARIES(
92 #   cpPlugins_ResamplingFilters
93 #   cpPlugins_Transforms
94 #   cpPlugins_ImageFiltersBase
95 #   cpPlugins_ImageIterators
96 #   )
97
98 # # ===================================
99 # # = Integrate all source file names =
100 # # ===================================
101
102 # SET(
103 #   lib_HEADERS
104 #   ${lib_HEADERS_H}
105 #   ${lib_HEADERS_HPP}
106 #   ${lib_HEADERS_HXX}
107 #   )
108
109 # SET(
110 #   lib_SOURCES
111 #   ${lib_SOURCES_C}
112 #   ${lib_SOURCES_CPP}
113 #   ${lib_SOURCES_CXX}
114 #   )
115
116 # ## =====================
117 # ## = Compilation rules =
118 # ## =====================
119
120 # ## ========================
121 # ## == Installation rules ==
122 # ## ========================
123
124 # INSTALL(
125 #   TARGETS ${l_NAME}
126 #   RUNTIME DESTINATION bin
127 #   LIBRARY DESTINATION lib
128 #   ARCHIVE DESTINATION lib/static
129 #   )
130 # INSTALL(
131 #   FILES
132 #   ${lib_HEADERS}
133 #   DESTINATION include/${lib_DIR}
134 #   )
135
136 ## eof - $RCSfile$