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