]> Creatis software - cpPlugins.git/blob - lib/cpPlugins/CMakeLists.txt
55ffd24eec6e93e399f05d186889f52e1a0255db
[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     DataObjectVisualizationQtDialog.h
36     ParametersQtDialog.h
37     )
38   SET(
39     lib_QT_Sources
40     DataObjectVisualizationQtDialog.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   ${cpPlugins_LIBRARIES}
89   cpPlugins_tinyxml2
90   )
91 IF(NOT WIN32)
92   SET(
93     target_LIBRARIES
94     ${target_LIBRARIES}
95     dl
96     )
97 ENDIF(NOT WIN32)
98
99 ## =====================
100 ## = Compilation rules =
101 ## =====================
102
103 ADD_LIBRARY(${lib_NAME} SHARED  ${lib_SOURCES})
104 SET_TARGET_PROPERTIES(
105   ${lib_NAME} PROPERTIES
106   VERSION "${prj_VER}"
107   SOVERSION "${prj_sVER}"
108   )
109 GENERATE_EXPORT_HEADER(
110   ${lib_NAME}
111   BASE_NAME ${lib_NAME}
112   EXPORT_MACRO_NAME ${lib_NAME}_EXPORT
113   EXPORT_FILE_NAME ${PROJECT_BINARY_DIR}/lib/${lib_DIR}/${lib_NAME}_Export.h
114   STATIC_DEFINE ${lib_NAME}_BUILT_AS_STATIC
115   )
116 TARGET_LINK_LIBRARIES(${lib_NAME} ${target_LIBRARIES})
117
118 ## ========================
119 ## == Installation rules ==
120 ## ========================
121
122 INSTALL(
123   TARGETS ${lib_NAME}
124   RUNTIME DESTINATION bin
125   LIBRARY DESTINATION lib
126   ARCHIVE DESTINATION lib/static
127   )
128 INSTALL(
129   FILES
130   ${lib_HEADERS}
131   DESTINATION include/${lib_DIR}
132   )
133
134 ## eof - $RCSfile$