Files
create/src/Mod/PartDesign/Gui/CMakeLists.txt
Markus Reitböck 5b6a0b1852 PartDesign: use CMake to generate precompiled headers on all platforms
"Professional CMake" book suggest the following:

"Targets should build successfully with or without compiler support for precompiled headers. It
 should be considered an optimization, not a requirement. In particular, do not explicitly include a
 precompile header (e.g. stdafx.h) in the source code, let CMake force-include an automatically
 generated precompile header on the compiler command line instead. This is more portable across
 the major compilers and is likely to be easier to maintain. It will also avoid warnings being
 generated from certain code checking tools like iwyu (include what you use)."

Therefore, removed the "#include <PreCompiled.h>" from sources, also
there is no need for the "#ifdef _PreComp_" anymore
2025-09-23 22:39:36 +02:00

267 lines
7.0 KiB
CMake

include_directories(
SYSTEM
${CMAKE_SOURCE_DIR}/src/3rdParty/json/single_include/nlohmann/
)
generate_from_py(ViewProvider)
set(PartDesignGui_LIBS
PartDesign
SketcherGui
PartGui
SketcherGui
FreeCADGui
)
set (PartDesign_TR_QRC ${CMAKE_CURRENT_BINARY_DIR}/Resources/PartDesign_translation.qrc)
qt_find_and_add_translation(QM_SRCS "Resources/translations/*_*.ts"
${CMAKE_CURRENT_BINARY_DIR}/Resources/translations)
qt_create_resource_file(${PartDesign_TR_QRC} ${QM_SRCS})
qt_add_resources(PartDesignGui_SRCS Resources/PartDesign.qrc ${PartDesign_TR_QRC})
set(PartDesignGui_UIC_SRCS
TaskFeaturePick.ui
TaskPadPocketParameters.ui
TaskChamferParameters.ui
TaskFilletParameters.ui
TaskDraftParameters.ui
TaskThicknessParameters.ui
TaskBooleanParameters.ui
TaskHoleParameters.ui
TaskRevolutionParameters.ui
TaskTransformedMessages.ui
TaskTransformedParameters.ui
TaskMirroredParameters.ui
TaskPatternParameters.ui
TaskScaledParameters.ui
TaskMultiTransformParameters.ui
TaskShapeBinder.ui
TaskPreviewParameters.ui
TaskPrimitiveParameters.ui
TaskPipeParameters.ui
TaskPipeOrientation.ui
TaskPipeScaling.ui
TaskLoftParameters.ui
DlgReference.ui
DlgActiveBody.ui
TaskHelixParameters.ui
)
SET(PartDesignGuiViewProvider_SRCS
ViewProvider.cpp
ViewProvider.h
ViewProviderBody.cpp
ViewProviderBody.h
ViewProviderSketchBased.cpp
ViewProviderSketchBased.h
ViewProviderExtrude.cpp
ViewProviderExtrude.h
ViewProviderPad.cpp
ViewProviderPad.h
ViewProviderHole.cpp
ViewProviderHole.h
ViewProviderPocket.cpp
ViewProviderPocket.h
ViewProviderChamfer.cpp
ViewProviderChamfer.h
ViewProviderFillet.cpp
ViewProviderFillet.h
ViewProviderDraft.cpp
ViewProviderDraft.h
ViewProviderThickness.cpp
ViewProviderThickness.h
ViewProviderDressUp.cpp
ViewProviderDressUp.h
ViewProviderRevolution.cpp
ViewProviderRevolution.h
ViewProviderGroove.cpp
ViewProviderGroove.h
ViewProviderTransformed.cpp
ViewProviderTransformed.h
ViewProviderMirrored.cpp
ViewProviderMirrored.h
ViewProviderLinearPattern.cpp
ViewProviderLinearPattern.h
ViewProviderPolarPattern.cpp
ViewProviderPolarPattern.h
ViewProviderScaled.cpp
ViewProviderScaled.h
ViewProviderMultiTransform.cpp
ViewProviderMultiTransform.h
ViewProviderDatum.cpp
ViewProviderDatum.h
ViewProviderDatumPoint.cpp
ViewProviderDatumPoint.h
ViewProviderDatumLine.cpp
ViewProviderDatumLine.h
ViewProviderDatumPlane.cpp
ViewProviderDatumPlane.h
ViewProviderDatumCS.cpp
ViewProviderDatumCS.h
ViewProviderShapeBinder.h
ViewProviderShapeBinder.cpp
ViewProviderBoolean.cpp
ViewProviderBoolean.h
ViewProviderPrimitive.h
ViewProviderPrimitive.cpp
ViewProviderPipe.h
ViewProviderPipe.cpp
ViewProviderLoft.h
ViewProviderLoft.cpp
ViewProviderHelix.h
ViewProviderHelix.cpp
ViewProviderBase.h
ViewProviderBase.cpp
)
SOURCE_GROUP("ViewProvider" FILES ${PartDesignGuiViewProvider_SRCS})
SET(PartDesignGuiTaskDlgs_SRCS
TaskFeaturePick.ui
TaskFeaturePick.cpp
TaskFeaturePick.h
ReferenceSelection.cpp
ReferenceSelection.h
TaskFeatureParameters.cpp
TaskFeatureParameters.h
TaskSketchBasedParameters.cpp
TaskSketchBasedParameters.h
TaskExtrudeParameters.cpp
TaskExtrudeParameters.h
TaskPadPocketParameters.ui
TaskPadParameters.cpp
TaskPadParameters.h
TaskPocketParameters.cpp
TaskPocketParameters.h
TaskChamferParameters.ui
TaskChamferParameters.cpp
TaskChamferParameters.h
TaskFilletParameters.ui
TaskFilletParameters.cpp
TaskFilletParameters.h
TaskDraftParameters.ui
TaskDraftParameters.cpp
TaskDraftParameters.h
TaskThicknessParameters.ui
TaskThicknessParameters.cpp
TaskThicknessParameters.h
TaskDressUpParameters.cpp
TaskDressUpParameters.h
TaskRevolutionParameters.ui
TaskRevolutionParameters.cpp
TaskRevolutionParameters.h
TaskTransformedMessages.ui
TaskTransformedMessages.cpp
TaskTransformedMessages.h
TaskTransformedParameters.cpp
TaskTransformedParameters.h
TaskMirroredParameters.ui
TaskMirroredParameters.cpp
TaskMirroredParameters.h
TaskPatternParameters.ui
TaskPatternParameters.cpp
TaskPatternParameters.h
TaskScaledParameters.ui
TaskScaledParameters.cpp
TaskScaledParameters.h
TaskMultiTransformParameters.ui
TaskMultiTransformParameters.cpp
TaskMultiTransformParameters.h
TaskHoleParameters.ui
TaskHoleParameters.cpp
TaskHoleParameters.h
TaskDatumParameters.cpp
TaskDatumParameters.h
TaskShapeBinder.ui
TaskShapeBinder.cpp
TaskShapeBinder.h
TaskBooleanParameters.ui
TaskBooleanParameters.cpp
TaskBooleanParameters.h
TaskPrimitiveParameters.h
TaskPrimitiveParameters.cpp
TaskPipeParameters.ui
TaskPipeOrientation.ui
TaskPipeScaling.ui
TaskPipeParameters.h
TaskPipeParameters.cpp
TaskLoftParameters.ui
TaskLoftParameters.h
TaskLoftParameters.cpp
TaskHelixParameters.ui
TaskHelixParameters.h
TaskHelixParameters.cpp
DlgActiveBody.h
DlgActiveBody.cpp
)
SOURCE_GROUP("TaskDialogs" FILES ${PartDesignGuiTaskDlgs_SRCS})
SET(PartDesignGuiModule_SRCS
AppPartDesignGui.cpp
Command.cpp
CommandPrimitive.cpp
CommandBody.cpp
EnumFlags.h
Resources/PartDesign.qrc
PreCompiled.h
SketchWorkflow.cpp
SketchWorkflow.h
StyleParameters.h
Utils.cpp
Utils.h
Workbench.cpp
Workbench.h
WorkflowManager.cpp
WorkflowManager.h
)
SOURCE_GROUP("Module" FILES ${PartDesignGuiModule_SRCS})
SET(Python_SRCS
ViewProvider.pyi
ViewProviderPyImp.cpp
)
SOURCE_GROUP("Python" FILES ${Python_SRCS})
SET(PartDesignGui_SRCS
${PartDesignGui_SRCS}
${PartDesignGui_UIC_HDRS}
${PartDesignGuiModule_SRCS}
${PartDesignGuiTaskDlgs_SRCS}
${PartDesignGuiViewProvider_SRCS}
${Python_SRCS}
)
SET(PartDesignGuiIcon_SVG
Resources/icons/PartDesignWorkbench.svg
)
add_library(PartDesignGui SHARED ${PartDesignGui_SRCS} ${PartDesignGuiIcon_SVG})
if(FREECAD_USE_PCH)
target_precompile_headers(PartDesignGui PRIVATE
$<$<COMPILE_LANGUAGE:CXX>:"${CMAKE_CURRENT_LIST_DIR}/PreCompiled.h">
)
endif(FREECAD_USE_PCH)
target_include_directories(
PartDesignGui
PRIVATE
${CMAKE_BINARY_DIR}
${CMAKE_SOURCE_DIR}/src
${CMAKE_CURRENT_BINARY_DIR}
)
target_link_libraries(PartDesignGui ${PartDesignGui_LIBS})
if (FREECAD_WARN_ERROR)
target_compile_warn_error(PartDesignGui)
endif()
SET_BIN_DIR(PartDesignGui PartDesignGui /Mod/PartDesign)
SET_PYTHON_PREFIX_SUFFIX(PartDesignGui)
fc_copy_sources(PartDesignGui "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_DATADIR}/Mod/PartDesign" ${PartDesignGuiIcon_SVG})
INSTALL(TARGETS PartDesignGui DESTINATION ${CMAKE_INSTALL_LIBDIR})
INSTALL(FILES ${PartDesignGuiIcon_SVG} DESTINATION "${CMAKE_INSTALL_DATADIR}/Mod/PartDesign/Resources/icons")