]> Creatis software - cpPlugins.git/blob - lib/cpPlugins/CMakeLists.txt
...
[cpPlugins.git] / lib / cpPlugins / CMakeLists.txt
1
2 ## =============================
3 ## = Set names and directories =
4 ## =============================
5
6 SET(lib_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
7 SET(lib_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR})
8 GET_FILENAME_COMPONENT(lib_NAME ${lib_SOURCE_DIR} NAME)
9
10 ## =========================
11 ## = Configure local files =
12 ## =========================
13
14 FILE(GLOB lib_CONFIG_FILES "${lib_SOURCE_DIR}/*.in")
15 FOREACH(_file ${lib_CONFIG_FILES})
16   GET_FILENAME_COMPONENT(_filename ${_file} NAME)
17   STRING(REGEX REPLACE ".in" "" _outfile ${_filename})
18   CONFIGURE_FILE(${_filename} ${lib_BUILD_DIR}/${_outfile} @ONLY)
19 ENDFOREACH(_file)
20
21 ## ===============
22 ## = Source code =
23 ## ===============
24
25 FILE(GLOB lib_SOURCE_HEADERS_H   "${lib_SOURCE_DIR}/*.h")
26 FILE(GLOB lib_SOURCE_HEADERS_HPP "${lib_SOURCE_DIR}/*.hpp")
27 FILE(GLOB lib_SOURCE_HEADERS_HXX "${lib_SOURCE_DIR}/*.hxx")
28 FILE(GLOB lib_SOURCE_CODE_C      "${lib_SOURCE_DIR}/*.c")
29 FILE(GLOB lib_SOURCE_CODE_CPP    "${lib_SOURCE_DIR}/*.cpp")
30 FILE(GLOB lib_SOURCE_CODE_CXX    "${lib_SOURCE_DIR}/*.cxx")
31 FILE(GLOB lib_SOURCE_QT_UI       "${lib_SOURCE_DIR}/*.ui")
32 FILE(GLOB lib_BUILD_HEADERS_H    "${lib_BUILD_DIR}/*.h")
33 FILE(GLOB lib_BUILD_HEADERS_HPP  "${lib_BUILD_DIR}/*.hpp")
34 FILE(GLOB lib_BUILD_HEADERS_HXX  "${lib_BUILD_DIR}/*.hxx")
35 FILE(GLOB lib_BUILD_CODE_C       "${lib_BUILD_DIR}/*.c")
36 FILE(GLOB lib_BUILD_CODE_CPP     "${lib_BUILD_DIR}/*.cpp")
37 FILE(GLOB lib_BUILD_CODE_CXX     "${lib_BUILD_DIR}/*.cxx")
38
39 # ===================================
40 # = Integrate all source file names =
41 # ===================================
42
43 SET(
44   lib_CODE
45   ${lib_SOURCE_CODE_C}
46   ${lib_SOURCE_CODE_CPP}
47   ${lib_SOURCE_CODE_CXX}
48   ${lib_BUILD_CODE_C}
49   ${lib_BUILD_CODE_CPP}
50   ${lib_BUILD_CODE_CXX}
51   )
52
53 SET(
54   lib_HEADERS
55   ${lib_SOURCE_HEADERS_H}
56   ${lib_SOURCE_HEADERS_HPP}
57   ${lib_SOURCE_HEADERS_HXX}
58   ${lib_BUILD_HEADERS_H}
59   ${lib_BUILD_HEADERS_HPP}
60   ${lib_BUILD_HEADERS_HXX}
61   )
62
63 IF(USE_QT4)
64   SET(_hdr_to_wrap)
65   FOREACH(_h ${lib_SOURCE_HEADERS_H})
66     FILE(READ ${_h} _txt)
67     STRING(FIND "${_txt}" "Q_OBJECT" _res)
68     IF(NOT ${_res} EQUAL -1)
69       LIST(APPEND _hdr_to_wrap ${_h})
70     ENDIF(NOT ${_res} EQUAL -1)
71   ENDFOREACH(_h)
72   IF(_hdr_to_wrap)
73     QT4_WRAP_CPP(_src_qt_moc ${_hdr_to_wrap})
74   ENDIF(_hdr_to_wrap)
75   QT4_WRAP_UI(_hdr_qt_ui ${lib_SOURCE_QT_UI})
76   SET(lib_CODE ${lib_CODE} ${_hdr_qt_ui} ${_src_qt_moc})
77   SET(lib_HEADERS ${lib_HEADERS} ${_hdr_qt_ui})
78 ENDIF(USE_QT4)
79
80 ## ==========================
81 ## = Library's dependencies =
82 ## ==========================
83
84 SET(
85   lib_LINKS
86   ${ITK_LIBRARIES}
87   ${VTK_LIBRARIES}
88   cpPlugins_tinyxml2
89   cpPlugins_Instances_ScalarImages
90   cpPlugins_Instances_ColorImages
91   cpPlugins_Instances_Mesh
92   )
93 IF(USE_QT4)
94   SET(lib_LINKS ${lib_LINKS} ${QT_LIBRARIES})
95 ENDIF(USE_QT4)
96 IF(NOT WIN32)
97   SET(lib_LINKS ${lib_LINKS} dl)
98 ENDIF(NOT WIN32)
99
100 ## ==============================================================
101 ## = Compile library, if there is at least one source code file =
102 ## ==============================================================
103
104 IF(lib_CODE)
105   ADD_LIBRARY(${lib_NAME} SHARED ${lib_CODE})
106   SET_TARGET_PROPERTIES(
107     ${lib_NAME} PROPERTIES
108     VERSION "${prj_VER}"
109     SOVERSION "${prj_sVER}"
110     )
111   # ADD_DEPENDENCIES(${lib_NAME} ${cpPlugins_LIBRARIES})
112   GENERATE_EXPORT_HEADER(
113     ${lib_NAME}
114     BASE_NAME ${lib_NAME}
115     EXPORT_MACRO_NAME ${lib_NAME}_EXPORT
116     EXPORT_FILE_NAME ${lib_BUILD_DIR}/${lib_NAME}_Export.h
117     STATIC_DEFINE ${lib_NAME}_BUILT_AS_STATIC
118     )
119   TARGET_LINK_LIBRARIES(${lib_NAME} ${lib_LINKS})
120   SET(${lib_NAME}_LIB ${lib_NAME} CACHE INTERNAL "library ${lib_NAME}")
121 ENDIF(lib_CODE)
122
123 # IF(USE_QT4)
124 #   SET(
125 #     lib_QT_UI
126 #     ActorAxesProperties.ui
127 #     ActorImageProperties.ui
128 #     ActorPolyDataProperties.ui
129 #     )
130 #   SET(
131 #     lib_QT_Headers
132 #     ActorProperties.h
133 #     ActorAxesProperties.h
134 #     ActorImageProperties.h
135 #     ActorPolyDataProperties.h
136 #     ActorPropertiesQtDialog.h
137 #     ParametersQtDialog.h
138 #     )
139 #   SET(
140 #     lib_QT_Sources
141 #     ActorProperties.cxx
142 #     ActorAxesProperties.cxx
143 #     ActorImageProperties.cxx
144 #     ActorPolyDataProperties.cxx
145 #     ActorPropertiesQtDialog.cxx
146 #     ParametersQtDialog.cxx
147 #     )
148 #   SET(
149 #     lib_QT_Resources
150 #     )
151
152 #   QT4_WRAP_UI(lib_QT_Wrapped_Headers ${lib_QT_UI})
153 #   QT4_WRAP_CPP(lib_QT_Wrapped_MOC_Sources ${lib_QT_Headers})
154 #   QT4_ADD_RESOURCES(lib_QT_Wrapped_Resources_Sources ${lib_QT_Resources})
155
156 #   SET(
157 #     lib_HEADERS_H
158 #     ${lib_HEADERS_H}
159 #     ${lib_QT_Wrapped_Headers}
160 #     )
161
162 #   SET(
163 #     lib_BUILDS_CXX
164 #     ${lib_BUILDS_CXX}
165 #     ${lib_QT_Sources}
166 #     ${lib_QT_Wrapped_Headers}
167 #     ${lib_QT_Wrapped_MOC_Sources}
168 #     ${lib_QT_Wrapped_Resources_Sources}
169 #     )
170
171 # ENDIF(USE_QT4)
172
173 # SET(
174 #   lib_HEADERS
175 #   ${lib_HEADERS_H}
176 #   ${lib_HEADERS_HPP}
177 #   ${lib_HEADERS_HXX}
178 #   )
179
180 # SET(
181 #   lib_BUILDS
182 #   ${lib_BUILDS_C}
183 #   ${lib_BUILDS_CPP}
184 #   ${lib_BUILDS_CXX}
185 #   )
186
187 # SET(
188 #   target_LIBRARIES
189 #   ${ITK_LIBRARIES}
190 #   ${VTK_LIBRARIES}
191 #   cpExtensions
192 #   cpPlugins_tinyxml2
193 #   ${cpPlugins_LIBRARIES}
194 #   )
195 # IF(NOT WIN32)
196 #   SET(
197 #     target_LIBRARIES
198 #     ${target_LIBRARIES}
199 #     dl
200 #     )
201 # ENDIF(NOT WIN32)
202
203 # ## =====================
204 # ## = Compilation rules =
205 # ## =====================
206
207 # ADD_LIBRARY(${lib_NAME} SHARED  ${lib_BUILDS})
208 # SET_TARGET_PROPERTIES(
209 #   ${lib_NAME} PROPERTIES
210 #   VERSION "${prj_VER}"
211 #   SOVERSION "${prj_sVER}"
212 #   )
213 # ADD_DEPENDENCIES(${lib_NAME} ${cpPlugins_LIBRARIES})
214 # GENERATE_EXPORT_HEADER(
215 #   ${lib_NAME}
216 #   BASE_NAME ${lib_NAME}
217 #   EXPORT_MACRO_NAME ${lib_NAME}_EXPORT
218 #   EXPORT_FILE_NAME ${PROJECT_BINARY_DIR}/lib/${lib_DIR}/${lib_NAME}_Export.h
219 #   STATIC_DEFINE ${lib_NAME}_BUILT_AS_STATIC
220 #   )
221 # TARGET_LINK_LIBRARIES(${lib_NAME} ${target_LIBRARIES})
222
223 # ## ========================
224 # ## == Installation rules ==
225 # ## ========================
226
227 # INSTALL(
228 #   TARGETS ${lib_NAME}
229 #   RUNTIME DESTINATION bin
230 #   LIBRARY DESTINATION lib
231 #   ARCHIVE DESTINATION lib/static
232 #   )
233 # INSTALL(
234 #   FILES
235 #   ${lib_HEADERS}
236 #   DESTINATION include/${lib_DIR}
237 #   )
238
239 ## eof - $RCSfile$