File size: 3,432 Bytes
985c397
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
include_directories(
    SYSTEM
    ${CMAKE_SOURCE_DIR}/src/3rdParty/json/single_include/nlohmann/
)

generate_from_py(Body)
generate_from_py(Feature)


set(PartDesign_LIBS
    ${OCC_LIBRARIES}
    ${OCC_DEBUG_LIBRARIES}
    Part
    FreeCADApp
)

SET(Features_SRCS
    Feature.cpp
    Feature.h
    FeatureSolid.cpp
    FeatureSolid.h
    Body.cpp
    Body.h
    FeatureBase.h
    FeatureBase.cpp
)
SOURCE_GROUP("Features" FILES ${Features_SRCS})

SET(DatumFeatures_SRCS
    ShapeBinder.h
    ShapeBinder.cpp
    DatumPlane.cpp
    DatumPlane.h
    DatumLine.cpp
    DatumLine.h
    DatumPoint.cpp
    DatumPoint.h
    DatumCS.h
    DatumCS.cpp
)
SOURCE_GROUP("DatumFeatures" FILES ${DatumFeatures_SRCS})

SET(FeaturesTransformed_SRCS
    FeatureTransformed.h
    FeatureTransformed.cpp
    FeatureMirrored.h
    FeatureMirrored.cpp
    FeatureLinearPattern.h
    FeatureLinearPattern.cpp
    FeaturePolarPattern.h
    FeaturePolarPattern.cpp
    FeatureScaled.h
    FeatureScaled.cpp
    FeatureMultiTransform.h
    FeatureMultiTransform.cpp
)
SOURCE_GROUP("FeaturesTransformed" FILES ${FeaturesTransformed_SRCS})

SET(FeaturesDressUp_SRCS
    FeatureDressUp.cpp
    FeatureDressUp.h
    FeatureFillet.cpp
    FeatureFillet.h
    FeatureChamfer.cpp
    FeatureChamfer.h
    FeatureDraft.cpp
    FeatureDraft.h
    FeatureThickness.cpp
    FeatureThickness.h
)
SOURCE_GROUP("DressUpFeatures" FILES ${FeaturesDressUp_SRCS})

SET(FeaturesSketchBased_SRCS
    FeatureExtrude.cpp
    FeatureExtrude.h
    FeatureSketchBased.cpp
    FeatureSketchBased.h
    FeaturePad.cpp
    FeaturePad.h
    FeaturePocket.cpp
    FeaturePocket.h
    FeatureRevolution.cpp
    FeatureRevolution.h
    FeatureGroove.cpp
    FeatureGroove.h
    FeatureRefine.cpp
    FeatureRefine.h
    FeatureAddSub.cpp
    FeatureAddSub.h
    FeatureHole.h
    FeatureHole.cpp
    FeatureBoolean.h
    FeatureBoolean.cpp
    FeaturePrimitive.h
    FeaturePrimitive.cpp
    FeaturePipe.h
    FeaturePipe.cpp
    FeatureLoft.h
    FeatureLoft.cpp
    FeatureHelix.h
    FeatureHelix.cpp
)

SOURCE_GROUP("SketchBasedFeatures" FILES ${FeaturesSketchBased_SRCS})

SET(Module_SRCS
    AppPartDesign.cpp
    AppPartDesignPy.cpp
    PreCompiled.h
    Measure.cpp
    Measure.h
)
SOURCE_GROUP("Module" FILES ${Module_SRCS})


SET(Python_SRCS
    Body.pyi
    BodyPyImp.cpp
    Feature.pyi
    FeaturePyImp.cpp
)
SOURCE_GROUP("Python" FILES ${Python_SRCS})

SET(PartDesign_SRCS
    ${Features_SRCS}
    ${DatumFeatures_SRCS}
    ${FeaturesTransformed_SRCS}
    ${FeaturesSketchBased_SRCS}
    ${FeaturesDressUp_SRCS}
    ${Module_SRCS}
    ${Python_SRCS}
)

add_library(PartDesign SHARED ${PartDesign_SRCS})
target_include_directories(
    PartDesign
    PRIVATE
    ${CMAKE_BINARY_DIR}
    ${CMAKE_SOURCE_DIR}/src
    ${CMAKE_BINARY_DIR}/src
    ${CMAKE_CURRENT_BINARY_DIR}
)

target_link_directories(PartDesign PUBLIC ${OCC_LIBRARY_DIR})
target_link_libraries(PartDesign ${PartDesign_LIBS})

if (MSVC)
    target_compile_options(PartDesign PRIVATE /wd4275)
endif()

if (FREECAD_WARN_ERROR)
    target_compile_warn_error(PartDesign)
endif()

if(FREECAD_USE_PCH)
    target_precompile_headers(PartDesign PRIVATE
            $<$<COMPILE_LANGUAGE:CXX>:"${CMAKE_CURRENT_LIST_DIR}/PreCompiled.h">
    )
endif(FREECAD_USE_PCH)

SET_BIN_DIR(PartDesign _PartDesign /Mod/PartDesign)
SET_PYTHON_PREFIX_SUFFIX(PartDesign)

INSTALL(TARGETS PartDesign DESTINATION ${CMAKE_INSTALL_LIBDIR})