0023874: Converting OCCT MFC samples to CMake build system.
[occt.git] / samples / mfc / standard / mfcsample / CMakeLists.txt
1 cmake_minimum_required (VERSION 2.6)
2
3 project (mfcsample)
4
5 add_definitions(-DWINVER=0x0500 -D_AFXEXT)
6
7 # mfcsample
8 set (mfcsample_SOURCE_FILES ${MFC_STANDARD_SAMPLES_DIR}/mfcsample/src/mfcsample.cpp
9                             ${MFC_STANDARD_SAMPLES_DIR}/mfcsample/src/StdAfx.cpp )
10
11 SET (MFC_STANDARD_COMMON_SAMPLES_DIR "${MFC_STANDARD_SAMPLES_DIR}/Common")
12 set (COMMON_SOURCE_FILES ${MFC_STANDARD_COMMON_SAMPLES_DIR}/AISDialogs.cpp
13                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_2dDoc.cpp
14                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_2dChildFrame.cpp
15                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_2dView.cpp
16                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_3dBaseDoc.cpp
17                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_App.cpp
18                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_3dDoc.cpp
19                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_3dChildFrame.cpp
20                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_3dView.cpp
21                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_BaseDoc.cpp
22                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_BaseChildFrame.cpp
23                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_BaseView.cpp
24                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_MainFrame.cpp
25                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/ResultDialog.cpp
26                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/User_Cylinder.cxx
27                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/ColoredMeshDlg.cpp
28                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/DimensionDlg.cpp
29                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/LengthParamsEdgePage.cpp
30                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/LengthParamsVerticesPage.cpp
31                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/RadiusParamsPage.cpp
32                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/LengthParamsEdgesPage.cpp
33                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/LengthParamsVerticesPage.cpp
34                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/AngleParamsVerticesPage.cpp)
35
36 # Common ImportExport
37 set (COMMON_IE_DIR          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/ImportExport)
38 set (COMMON_IE_HEADER_FILES ${COMMON_IE_DIR}/ImportExport.h
39                             ${COMMON_IE_DIR}/SaveCSFDBDlg.h
40                             ${COMMON_IE_DIR}/SaveSTEPDlg.h )
41 set (COMMON_IE_SOURCE_FILES ${COMMON_IE_DIR}/ImportExport.cpp
42                             ${COMMON_IE_DIR}/SaveCSFDBDlg.cpp
43                             ${COMMON_IE_DIR}/SaveSTEPDlg.cpp )
44
45 # Common ISession2D
46 set (COMMON_ISESSION2D_DIR          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/ISession2D)
47 set (COMMON_ISESSION2D_HEADER_FILES ${COMMON_ISESSION2D_DIR}/ISession2D_Shape.h )
48 set (COMMON_ISESSION2D_SOURCE_FILES ${COMMON_ISESSION2D_DIR}/ISession2D_Shape.cpp )
49
50 # Common Primitive
51 set (COMMON_PRIMITIVE_DIR          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/Primitive)
52 set (COMMON_PRIMITIVE_HEADER_FILES ${COMMON_PRIMITIVE_DIR}/Sample2D_Face.h
53                                    ${COMMON_PRIMITIVE_DIR}/Sample2D_Image.h
54                                    ${COMMON_PRIMITIVE_DIR}/Sample2D_Markers.h
55                                    ${COMMON_PRIMITIVE_DIR}/Sample2D_Text.h )
56 set (COMMON_PRIMITIVE_SOURCE_FILES ${COMMON_PRIMITIVE_DIR}/Sample2D_Face.cpp
57                                    ${COMMON_PRIMITIVE_DIR}/Sample2D_Image.cpp
58                                    ${COMMON_PRIMITIVE_DIR}/Sample2D_Markers.cpp
59                                    ${COMMON_PRIMITIVE_DIR}/Sample2D_Text.cpp )
60
61 # Common Resource2D
62 set (COMMON_RESOURCE2D_DIR          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/Resource2D)
63 set (COMMON_RESOURCE2D_HEADER_FILES ${COMMON_RESOURCE2D_DIR}/CircularGrid.h
64                                     ${COMMON_RESOURCE2D_DIR}/RectangularGrid.h )
65 set (COMMON_RESOURCE2D_SOURCE_FILES ${COMMON_RESOURCE2D_DIR}/CircularGrid.cpp
66                                     ${COMMON_RESOURCE2D_DIR}/RectangularGrid.cpp )
67
68 # Common headers
69 set (COMMON_HEADER_FILES ${MFC_STANDARD_COMMON_SAMPLES_DIR}/AISDialogs.h
70                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_2dDoc.h
71                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_2dChildFrame.h
72                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_2dView.h
73                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_3dBaseDoc.h
74                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_App.h
75                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_3dDoc.h
76                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_3dChildFrame.h
77                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_3dView.h
78                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_BaseDoc.h
79                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_BaseChildFrame.h
80                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_BaseView.h
81                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_MainFrame.h
82                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/ResultDialog.h
83                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/User_Cylinder.hxx
84                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/ColoredMeshDlg.h
85                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/DimensionDlg.h
86                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/LengthParamsEdgePage.h
87                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/LengthParamsVerticesPage.h
88                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/RadiusParamsPage.h
89                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/LengthParamsEdgesPage.h
90                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/LengthParamsVerticesPage.h
91                          ${MFC_STANDARD_COMMON_SAMPLES_DIR}/AngleParamsVerticesPage.h)
92
93
94 # Common resources
95 set (COMMON_RESOURCE_DIR   ${MFC_STANDARD_COMMON_SAMPLES_DIR}/res)
96 set (COMMON_RESOURCE_FILES ${COMMON_RESOURCE_DIR}/2dChildFrameTB.bmp
97                            ${COMMON_RESOURCE_DIR}/2dType.ico
98                            ${COMMON_RESOURCE_DIR}/3dChildFrameTB.bmp
99                            ${COMMON_RESOURCE_DIR}/3dType.ico
100                            ${COMMON_RESOURCE_DIR}/AIS_TB.bmp
101                            ${COMMON_RESOURCE_DIR}/coloredm.bmp
102                            ${COMMON_RESOURCE_DIR}/MainFrame.ico
103                            ${COMMON_RESOURCE_DIR}/occ_logo.bmp
104                            ${COMMON_RESOURCE_DIR}/OCC_Resource.rc)
105
106 # groups in the VS solution
107 source_group ( "Header Files" FILES   ${COMMON_HEADER_FILES}
108                                       ${COMMON_IE_HEADER_FILES}
109                                       ${COMMON_PRIMITIVE_HEADER_FILES}
110                                       ${COMMON_RESOURCE2D_HEADER_FILES}
111                                       ${COMMON_ISESSION2D_HEADER_FILES})
112
113 source_group ("Source Files" FILES    ${mfcsample_SOURCE_FILES}
114                                       ${COMMON_SOURCE_FILES}
115                                       ${COMMON_IE_SOURCE_FILES}
116                                       ${COMMON_PRIMITIVE_SOURCE_FILES}
117                                       ${COMMON_RESOURCE2D_SOURCE_FILES}
118                                       ${COMMON_ISESSION2D_SOURCE_FILES})
119
120 source_group ( "Resource Files" FILES ${COMMON_RESOURCE_FILES})
121
122 # mfcsample library
123 add_library ( mfcsample SHARED ${mfcsample_SOURCE_FILES}
124                                ${COMMON_HEADER_FILES}
125                                ${COMMON_SOURCE_FILES}
126                                ${COMMON_IE_HEADER_FILES}
127                                ${COMMON_IE_SOURCE_FILES}
128                                ${COMMON_PRIMITIVE_HEADER_FILES}
129                                ${COMMON_PRIMITIVE_SOURCE_FILES}
130                                ${COMMON_RESOURCE2D_HEADER_FILES}
131                                ${COMMON_RESOURCE2D_SOURCE_FILES}
132                                ${COMMON_ISESSION2D_HEADER_FILES}
133                                ${COMMON_ISESSION2D_SOURCE_FILES}
134                                ${COMMON_RESOURCE_FILES})
135
136 set_property (TARGET mfcsample PROPERTY FOLDER Samples)
137
138 install (TARGETS mfcsample RUNTIME DESTINATION "${INSTALL_DIR}/bin"
139                            ARCHIVE DESTINATION "${INSTALL_DIR}/lib"
140                            LIBRARY DESTINATION "${INSTALL_DIR}/lib")
141
142 include_directories( ${OCCT_ROOT}/inc
143                      ${MFC_STANDARD_COMMON_SAMPLES_DIR}
144                      ${COMMON_IE_DIR}
145                      ${COMMON_ISESSION2D_DIR}
146                      ${COMMON_PRIMITIVE_DIR}
147                      ${COMMON_RESOURCE2D_DIR})
148
149 # OCCT libraries for using
150 set (mfcsample_USED_LIBS  TKVRML
151                           TKSTL
152                           TKBRep
153                           TKIGES
154                           TKShHealing
155                           TKSTEP
156                           TKXSBase
157                           TKShapeSchema
158                           FWOSPlugin
159                           PTKernel
160                           TKBool
161                           TKCAF
162                           TKCDF
163                           TKernel
164                           TKFeat
165                           TKFillet
166                           TKG2d
167                           TKG3d
168                           TKGeomAlgo
169                           TKGeomBase
170                           TKHLR
171                           TKMath
172                           TKOffset
173                           TKOpenGl
174                           TKPCAF
175                           TKPrim
176                           TKPShape
177                           TKService
178                           TKTopAlgo
179                           TKMesh
180                           TKV3d)
181
182 target_link_libraries (mfcsample ${mfcsample_USED_LIBS})