]> Creatis software - cpPlugins.git/blob - lib/cpExtensions/CMakeLists.txt
6e3c9403fa73d9ef56c33ca0ba1152b45df84f12
[cpPlugins.git] / lib / cpExtensions / CMakeLists.txt
1 SET(LIBRARY_NAME cpExtensions)
2
3 CONFIGURE_FILE(
4   Config.h.in
5   ${PROJECT_BINARY_DIR}/lib/cpExtensions/Config.h
6   @ONLY
7   )
8
9 ## ===============
10 ## = Source code =
11 ## ===============
12
13 SET(LIB_HEADERS_H   "")
14 SET(LIB_HEADERS_HPP "")
15 SET(LIB_HEADERS_HXX "")
16 SET(LIB_SOURCES_C   "")
17 SET(LIB_SOURCES_CPP "")
18 SET(LIB_SOURCES_CXX "")
19
20 SET(
21   lib_DIRECTORIES
22   .
23   DataStructures
24   Algorithms
25   IO
26   Interaction
27   Visualization
28   )
29 FOREACH(dir ${lib_DIRECTORIES})
30   FILE(GLOB dir_LIB_HEADERS_H   "${dir}/*.h")
31   FILE(GLOB dir_LIB_HEADERS_HPP "${dir}/*.hpp")
32   FILE(GLOB dir_LIB_HEADERS_HXX "${dir}/*.hxx")
33   FILE(GLOB dir_LIB_SOURCES_C   "${dir}/*.c")
34   FILE(GLOB dir_LIB_SOURCES_CPP "${dir}/*.cpp")
35   FILE(GLOB dir_LIB_SOURCES_CXX "${dir}/*.cxx")
36
37   SET(LIB_HEADERS_H   "${LIB_HEADERS_H};${dir_LIB_HEADERS_H}")
38   SET(LIB_HEADERS_HPP "${LIB_HEADERS_HPP};${dir_LIB_HEADERS_HPP}")
39   SET(LIB_HEADERS_HXX "${LIB_HEADERS_HXX};${dir_LIB_HEADERS_HXX}")
40   SET(LIB_SOURCES_C   "${LIB_SOURCES_C};${dir_LIB_SOURCES_C}")
41   SET(LIB_SOURCES_CPP "${LIB_SOURCES_CPP};${dir_LIB_SOURCES_CPP}")
42   SET(LIB_SOURCES_CXX "${LIB_SOURCES_CXX};${dir_LIB_SOURCES_CXX}")
43
44   INSTALL(
45     DIRECTORY ${dir}
46     DESTINATION include/cpExtensions
47     FILES_MATCHING PATTERN "*.h"
48     )
49   INSTALL(
50     DIRECTORY ${dir}
51     DESTINATION include/cpExtensions
52     FILES_MATCHING PATTERN "*.hpp"
53     )
54   INSTALL(
55     DIRECTORY ${dir}
56     DESTINATION include/cpExtensions
57     FILES_MATCHING PATTERN "*.hxx"
58     )
59 ENDFOREACH(dir)
60
61 IF(USE_QT4)
62   FILE(GLOB LIB_QT_UI "QT/*.ui")
63   FILE(GLOB LIB_QT_Headers "QT/*.h")
64   FILE(GLOB LIB_QT_Sources "QT/*.cxx")
65   FILE(GLOB LIB_QT_Resources "QT/*.rc")
66
67   QT4_WRAP_UI(LIB_QT_Wrapped_Headers ${LIB_QT_UI})
68   QT4_WRAP_CPP(LIB_QT_Wrapped_MOC_Sources ${LIB_QT_Headers})
69   QT4_ADD_RESOURCES(LIB_QT_Wrapped_Resources_Sources ${LIB_QT_Resources})
70
71   SET(
72     LIB_HEADERS_H
73     ${LIB_HEADERS_H}
74     ${LIB_QT_Wrapped_Headers}
75     )
76   SET(
77     LIB_SOURCES_CXX
78     ${LIB_SOURCES_CXX}
79     ${LIB_QT_Sources}
80     ${LIB_QT_Wrapped_Headers}
81     ${LIB_QT_Wrapped_MOC_Sources}
82     ${LIB_QT_Wrapped_Resources_Sources}
83     )
84 ENDIF(USE_QT4)
85
86 ## =====================
87 ## = Compilation rules =
88 ## =====================
89
90 ADD_LIBRARY(
91   ${LIBRARY_NAME}
92   SHARED
93   ${LIB_SOURCES_C}
94   ${LIB_SOURCES_CPP}
95   ${LIB_SOURCES_CXX}
96   )
97 SET_TARGET_PROPERTIES(
98   ${LIBRARY_NAME} PROPERTIES
99   VERSION "${prj_VER}"
100   SOVERSION "${prj_sVER}"
101   )
102 GENERATE_EXPORT_HEADER(
103   ${LIBRARY_NAME}
104   BASE_NAME ${LIBRARY_NAME}
105   EXPORT_MACRO_NAME ${LIBRARY_NAME}_EXPORT
106   EXPORT_FILE_NAME ${PROJECT_BINARY_DIR}/lib/cpExtensions/${LIBRARY_NAME}_Export.h
107   STATIC_DEFINE ${LIBRARY_NAME}_BUILT_AS_STATIC
108   )
109 TARGET_LINK_LIBRARIES(
110   ${LIBRARY_NAME}
111   ${QT_LIBRARIES}
112   ${ITK_LIBRARIES}
113   ${VTK_LIBRARIES}
114   )
115
116 ## ========================
117 ## -- Installation rules --
118 ## ========================
119
120 INSTALL(
121   TARGETS ${LIBRARY_NAME}
122   RUNTIME DESTINATION bin
123   LIBRARY DESTINATION lib
124   ARCHIVE DESTINATION lib/static
125   )
126 INSTALL(
127   FILES
128   ${PROJECT_BINARY_DIR}/lib/cpExtensions/${LIBRARY_NAME}_Export.h
129   DESTINATION include/cpExtensions
130   )
131
132 ## eof - $RCSfile$