]> Creatis software - cpPlugins.git/blob - lib/cpPlugins/CMakeLists.txt
d06bf100994f3a9efd26c5d227f4cd722e4aaeff
[cpPlugins.git] / lib / cpPlugins / CMakeLists.txt
1 ## =============================
2 ## = Set names and directories =
3 ## =============================
4
5 SET(lib_NAME cpPlugins)
6 SET(lib_DIR  cpPlugins)
7
8 ## =========================
9 ## = Configure local files =
10 ## =========================
11
12 CONFIGURE_FILE(
13   Config.h.in
14   ${PROJECT_BINARY_DIR}/lib/${lib_DIR}/Config.h
15   @ONLY
16   )
17
18 ## ===============
19 ## = Source code =
20 ## ===============
21
22 FILE(GLOB lib_HEADERS_H   "*.h")
23 FILE(GLOB lib_HEADERS_HPP "*.hpp")
24 FILE(GLOB lib_HEADERS_HXX "*.hxx")
25 FILE(GLOB lib_SOURCES_C   "*.c")
26 FILE(GLOB lib_SOURCES_CPP "*.cpp")
27 FILE(GLOB lib_SOURCES_CXX "*.cxx")
28
29 IF(USE_QT4)
30   SET(
31     lib_QT_UI
32     )
33   SET(
34     lib_QT_Headers
35     ActorPropertiesQtDialog.h
36     ParametersQtDialog.h
37     )
38   SET(
39     lib_QT_Sources
40     ActorPropertiesQtDialog.cxx
41     ParametersQtDialog.cxx
42     )
43   SET(
44     lib_QT_Resources
45     )
46
47   QT4_WRAP_UI(lib_QT_Wrapped_Headers ${lib_QT_UI})
48   QT4_WRAP_CPP(lib_QT_Wrapped_MOC_Sources ${lib_QT_Headers})
49   QT4_ADD_RESOURCES(lib_QT_Wrapped_Resources_Sources ${lib_QT_Resources})
50
51   SET(
52     lib_HEADERS_H
53     ${lib_HEADERS_H}
54     ${lib_QT_Wrapped_Headers}
55     )
56
57   SET(
58     lib_SOURCES_CXX
59     ${lib_SOURCES_CXX}
60     ${lib_QT_Sources}
61     ${lib_QT_Wrapped_Headers}
62     ${lib_QT_Wrapped_MOC_Sources}
63     ${lib_QT_Wrapped_Resources_Sources}
64     )
65
66 ENDIF(USE_QT4)
67
68 # ===================================
69 # = Integrate all source file names =
70 # ===================================
71
72 SET(
73   lib_HEADERS
74   ${lib_HEADERS_H}
75   ${lib_HEADERS_HPP}
76   ${lib_HEADERS_HXX}
77   )
78
79 SET(
80   lib_SOURCES
81   ${lib_SOURCES_C}
82   ${lib_SOURCES_CPP}
83   ${lib_SOURCES_CXX}
84   )
85
86 SET(
87   target_LIBRARIES
88   ${ITK_LIBRARIES}
89   ${VTK_LIBRARIES}
90   cpExtensions
91   cpPlugins_tinyxml2
92   ${cpPlugins_LIBRARIES}
93   )
94 IF(NOT WIN32)
95   SET(
96     target_LIBRARIES
97     ${target_LIBRARIES}
98     dl
99     )
100 ENDIF(NOT WIN32)
101
102 ## =====================
103 ## = Compilation rules =
104 ## =====================
105
106 ADD_LIBRARY(${lib_NAME} SHARED  ${lib_SOURCES})
107 SET_TARGET_PROPERTIES(
108   ${lib_NAME} PROPERTIES
109   VERSION "${prj_VER}"
110   SOVERSION "${prj_sVER}"
111   )
112 ADD_DEPENDENCIES(${lib_NAME} ${cpPlugins_LIBRARIES})
113 GENERATE_EXPORT_HEADER(
114   ${lib_NAME}
115   BASE_NAME ${lib_NAME}
116   EXPORT_MACRO_NAME ${lib_NAME}_EXPORT
117   EXPORT_FILE_NAME ${PROJECT_BINARY_DIR}/lib/${lib_DIR}/${lib_NAME}_Export.h
118   STATIC_DEFINE ${lib_NAME}_BUILT_AS_STATIC
119   )
120 TARGET_LINK_LIBRARIES(${lib_NAME} ${target_LIBRARIES})
121
122 ## ========================
123 ## == Installation rules ==
124 ## ========================
125
126 INSTALL(
127   TARGETS ${lib_NAME}
128   RUNTIME DESTINATION bin
129   LIBRARY DESTINATION lib
130   ARCHIVE DESTINATION lib/static
131   )
132 INSTALL(
133   FILES
134   ${lib_HEADERS}
135   DESTINATION include/${lib_DIR}
136   )
137
138 ## eof - $RCSfile$