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