Files
create/src/Gui/CMakeLists.txt
forbes 9b28feb8ca
All checks were successful
Build and Test / build (pull_request) Successful in 29m2s
feat(sdk): scaffold KCSDK library + kcsdk pybind11 module (#350)
Add the KCSDK C++ shared library and kcsdk pybind11 module, establishing
the build infrastructure for the C++-backed addon SDK.

New files:
- src/Gui/SDK/KCSDKGlobal.h — DLL export macros
- src/Gui/SDK/SDKRegistry.h/.cpp — empty singleton with API_VERSION_MAJOR=1
- src/Gui/SDK/CMakeLists.txt — builds KCSDK shared library
- src/Gui/SDK/bindings/kcsdk_py.cpp — pybind11 module exposing version + available()
- src/Gui/SDK/bindings/CMakeLists.txt — builds kcsdk pybind11 module

Modified:
- src/Gui/CMakeLists.txt — add_subdirectory(SDK)

Verified: import kcsdk; kcsdk.API_VERSION_MAJOR == 1; kcsdk.available() == []
2026-02-27 13:36:48 -06:00

1648 lines
45 KiB
CMake

add_library(FreeCADGui SHARED)
if ( EXISTS "${CMAKE_SOURCE_DIR}/src/3rdParty/GSL/include" )
include_directories( ${CMAKE_SOURCE_DIR}/src/3rdParty/GSL/include )
else()
find_package(Microsoft.GSL)
if( Microsoft.GSL_FOUND )
message( STATUS "Found Microsoft.GSL: version ${Microsoft.GSL_VERSION}" )
else()
message( SEND_ERROR "The C++ Guidelines Support Library (GSL) submodule is not available. Please run git submodule update --init" )
endif()
endif()
add_subdirectory(Stylesheets)
add_subdirectory(PreferencePacks)
add_subdirectory(PreferencePackTemplates)
add_subdirectory(SDK)
if(BUILD_WITH_CONDA)
add_definitions(-DFC_CONDA)
endif(BUILD_WITH_CONDA)
if(FC_FLATPAK)
add_definitions(-DFC_FLATPAK)
endif(FC_FLATPAK)
if(WIN32)
add_definitions(-DFCGui -DQSINT_MAKEDLL -DOVR_OS_WIN32 -DQUARTER_INTERNAL -DQUARTER_MAKE_DLL -DCOIN_DLL)
endif(WIN32)
IF(CMAKE_BUILD_TYPE)
add_definitions(-DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}")
ENDIF(CMAKE_BUILD_TYPE)
if (FREECAD_USE_3DCONNEXION_LEGACY AND (MSVC OR APPLE))
add_definitions(-D_USE_3DCONNEXION_SDK)
if(APPLE)
set(3DCONNEXION_LINKFLAGS "-F/Library/Frameworks -weak_framework 3DconnexionClient")
list(APPEND 3DCONNEXION_INCLUDE_DIR ${3DCONNEXIONCLIENT_FRAMEWORK}/Headers
${3DCONNEXIONCLIENT_FRAMEWORK}/Headers/3DconnexionClient )
endif(APPLE)
endif(FREECAD_USE_3DCONNEXION_LEGACY AND (MSVC OR APPLE))
if(FREECAD_USE_3DCONNEXION_NAVLIB AND (MSVC OR APPLE))
add_definitions(-DUSE_3DCONNEXION_NAVLIB)
if(APPLE)
add_definitions(-D__APPLE__)
endif(APPLE)
list(APPEND 3DCONNEXION_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/src/3rdParty/3Dconnexion/inc)
endif(FREECAD_USE_3DCONNEXION_NAVLIB AND (MSVC OR APPLE))
if (BUILD_VR)
add_definitions(-DBUILD_VR )
endif(BUILD_VR)
if (BUILD_ADDONMGR)
add_definitions(-DBUILD_ADDONMGR )
endif(BUILD_ADDONMGR)
if (BUILD_TRACY_FRAME_PROFILER)
add_definitions(-DBUILD_TRACY_FRAME_PROFILER)
endif()
target_include_directories(
FreeCADGui
PUBLIC
${CMAKE_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/Quarter
${CMAKE_CURRENT_SOURCE_DIR}/PreferencePages
${CMAKE_CURRENT_SOURCE_DIR}/Selection
${CMAKE_CURRENT_SOURCE_DIR}/StyleParameters
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/..
${CMAKE_CURRENT_BINARY_DIR}/..
${CMAKE_CURRENT_BINARY_DIR}/Language
${CMAKE_CURRENT_BINARY_DIR}/propertyeditor
${CMAKE_CURRENT_BINARY_DIR}/TaskView
${CMAKE_CURRENT_BINARY_DIR}/Quarter
${CMAKE_CURRENT_BINARY_DIR}/DAGView
)
target_include_directories(
FreeCADGui
SYSTEM
PRIVATE
${FastSignals_INCLUDE_DIRS}
${Boost_INCLUDE_DIRS}
${EIGEN3_INCLUDE_DIR}
${3DCONNEXION_INCLUDE_DIR}
)
if(MSVC)
target_include_directories(
FreeCADGui
SYSTEM
PUBLIC
${CMAKE_SOURCE_DIR}/src/3rdParty/OpenGL/api
)
endif(MSVC)
if(MSVC)
set(FreeCADGui_LIBS
FreeCADApp
libfastsignals
${OPENGL_gl_LIBRARY}
)
if(FREECAD_USE_3DCONNEXION_LEGACY)
list(APPEND FreeCADGui_LIBS
hid
)
endif()
else(MSVC)
set(FreeCADGui_LIBS
FreeCADApp
libfastsignals
${Boost_LIBRARIES}
${OPENGL_gl_LIBRARY}
${3DCONNEXION_LINKFLAGS}
)
endif(MSVC)
if(BUILD_TRACY_FRAME_PROFILER)
list(APPEND FreeCADGui_LIBS TracyClient)
endif()
if (TARGET Coin::Coin)
list(APPEND FreeCADGui_LIBS Coin::Coin)
else()
target_include_directories(FreeCADGui SYSTEM PUBLIC ${COIN3D_INCLUDE_DIRS})
target_link_directories(FreeCADGui PUBLIC ${COIN3D_LIB_DIRS})
list(APPEND FreeCADGui_LIBS ${COIN3D_LIBRARIES})
endif()
if (WIN32)
# In order to make menus and tooltips usable in fullscreen under Windows we need to call setHasBorderInFullScreen(),
# defined in Qt's private Gui code. See issue #7563, and the calls to QNativeInterface::Private in MainWindow.cpp
if(FREECAD_QT_MAJOR_VERSION EQUAL 6)
if(Qt6_VERSION VERSION_GREATER_EQUAL "6.10.0")
find_package(Qt6 REQUIRED COMPONENTS GuiPrivate)
endif()
list(APPEND FreeCADGui_LIBS
Qt6::GuiPrivate
)
endif()
endif()
target_include_directories(
FreeCADGui
SYSTEM
PUBLIC
${QtCore_INCLUDE_DIRS}
${QtWidgets_INCLUDE_DIRS}
${QtOpenGL_INCLUDE_DIRS}
${QtOpenGLWidgets_INCLUDE_DIRS}
${QtPrintSupport_INCLUDE_DIRS}
${QtSvg_INCLUDE_DIRS}
${QtSvgWidgets_INCLUDE_DIRS}
${QtNetwork_INCLUDE_DIRS}
${QtUiTools_INCLUDE_DIRS}
${QtXml_INCLUDE_DIRS}
${YAML_CPP_INCLUDE_DIRS}
)
list(APPEND FreeCADGui_LIBS
${QtCore_LIBRARIES}
${QtWidgets_LIBRARIES}
${QtOpenGL_LIBRARIES}
${QtOpenGLWidgets_LIBRARIES}
${QtPrintSupport_LIBRARIES}
${QtSvg_LIBRARIES}
${QtSvgWidgets_LIBRARIES}
${QtNetwork_LIBRARIES}
${QtUiTools_LIBRARIES}
)
link_directories(${YAML_CPP_LIBRARY_DIR})
if(yaml-cpp_VERSION VERSION_LESS 0.8.0)
list(APPEND FreeCADGui_LIBS
${YAML_CPP_LIBRARIES}
)
else()
list(APPEND FreeCADGui_LIBS
yaml-cpp::yaml-cpp
)
endif()
if(${Qt5WinExtras_FOUND})
target_include_directories(
FreeCADGui
SYSTEM
PUBLIC
${Qt5WinExtras_INCLUDE_DIRS}
)
list(APPEND FreeCADGui_LIBS
${Qt5WinExtras_LIBRARIES}
)
endif()
IF(SPNAV_FOUND AND FREECAD_USE_3DCONNEXION_LEGACY)
add_definitions(-D_USE_3DCONNEXION_SDK)
if(SPNAV_USE_X11)
add_definitions(-DSPNAV_USE_X11)
if (FREECAD_QT_MAJOR_VERSION EQUAL 5 AND UNIX AND NOT APPLE)
find_package(Qt5X11Extras REQUIRED)
target_include_directories(
FreeCADGui
SYSTEM
PUBLIC
${Qt5X11Extras_INCLUDE_DIRS}
)
list(APPEND FreeCADGui_LIBS ${Qt5X11Extras_LIBRARIES})
# Note that Qt6 has removed the QtX11Extras files
endif()
find_package(X11 QUIET)
if (X11_FOUND)
list(APPEND FreeCADGui_LIBS
${X11_X11_LIB}
)
endif(X11_FOUND)
SET(FreeCADGui_SDK_SRCS
3Dconnexion/GuiAbstractNativeEvent.cpp
3Dconnexion/GuiNativeEventLinuxX11.cpp
)
SET(FreeCADGui_SDK_MOC_HDRS
3Dconnexion/GuiAbstractNativeEvent.h
3Dconnexion/GuiNativeEventLinuxX11.h
)
else(SPNAV_USE_X11)
SET(FreeCADGui_SDK_SRCS
3Dconnexion/GuiAbstractNativeEvent.cpp
3Dconnexion/GuiNativeEventLinux.cpp
)
SET(FreeCADGui_SDK_MOC_HDRS
3Dconnexion/GuiAbstractNativeEvent.h
3Dconnexion/GuiNativeEventLinux.h
)
endif(SPNAV_USE_X11)
SOURCE_GROUP("3D connexion SDK" FILES ${FreeCADGui_SDK_SRCS})
list(APPEND FreeCADGui_connexion_SRCS
${FreeCADGui_SDK_SRCS}
)
list(APPEND FreeCADGui_connexion_HDRS
${FreeCADGui_SDK_MOC_HDRS}
)
add_definitions(-DSPNAV_FOUND)
target_include_directories(
FreeCADGui
SYSTEM
PUBLIC
${SPNAV_INCLUDE_DIR}
)
list(APPEND FreeCADGui_LIBS
${SPNAV_LIBRARIES}
)
ENDIF(SPNAV_FOUND AND FREECAD_USE_3DCONNEXION_LEGACY)
IF(OCULUS_FOUND)
add_definitions(-DOCULUS_FOUND)
target_include_directories(
FreeCADGui
SYSTEM
PUBLIC
${OCULUS_INCLUDE_DIRS}
)
list(APPEND FreeCADGui_LIBS
${OCULUS_LIBRARIES}
)
ENDIF(OCULUS_FOUND)
if(FREECAD_USE_SHIBOKEN)
add_definitions(-DHAVE_SHIBOKEN${PYSIDE_MAJOR_VERSION})
target_include_directories(
FreeCADGui
SYSTEM
PUBLIC
${SHIBOKEN_INCLUDE_DIR}
)
if (SHIBOKEN_LIBRARY)
list(APPEND FreeCADGui_LIBS
${SHIBOKEN_LIBRARY}
)
else (SHIBOKEN_LIBRARY)
if (TARGET Shiboken2::libshiboken)
list(APPEND FreeCADGui_LIBS
Shiboken2::libshiboken
)
elseif (TARGET Shiboken6::libshiboken)
list(APPEND FreeCADGui_LIBS
Shiboken6::libshiboken
)
endif (TARGET Shiboken2::libshiboken)
endif (SHIBOKEN_LIBRARY)
endif(FREECAD_USE_SHIBOKEN)
if(FREECAD_USE_PYSIDE)
target_include_directories(
FreeCADGui
SYSTEM
PUBLIC
${PYSIDE_INCLUDE_DIR}
${PYSIDE_INCLUDE_DIR}/QtCore
${PYSIDE_INCLUDE_DIR}/QtGui
${PYSIDE_INCLUDE_DIR}/QtWidgets
)
if (PYSIDE_LIBRARY)
list(APPEND FreeCADGui_LIBS
${PYSIDE_LIBRARY}
)
else (PYSIDE_LIBRARY)
if (TARGET PySide2::pyside2)
list(APPEND FreeCADGui_LIBS
PySide2::pyside2
)
elseif (TARGET PySide6::pyside6)
list(APPEND FreeCADGui_LIBS
PySide6::pyside6
)
endif ()
endif (PYSIDE_LIBRARY)
add_definitions(-DHAVE_PYSIDE${PYSIDE_MAJOR_VERSION})
endif(FREECAD_USE_PYSIDE)
generate_from_py(Document)
generate_from_py(PythonWorkbench)
generate_from_py(ViewProvider)
generate_from_py(ViewProviderDocumentObject)
generate_from_py(ViewProviderGeometryObject)
generate_from_py(ViewProviderExtension)
generate_from_py(Workbench)
generate_from_py(Selection/SelectionObject)
generate_from_py(LinkView)
generate_from_py(ViewProviderLink)
generate_from_py(AxisOrigin)
generate_from_py(Command)
generate_from_py(Navigation/NavigationStyle)
generate_embed_from_py(FreeCADGuiInit GuiInitScript.h)
# The Pyi files
SET(FreeCADGui_Pyi_SRCS
ViewProviderDocumentObject.pyi
ViewProviderGeometryObject.pyi
ViewProvider.pyi
ViewProviderExtension.pyi
PythonWorkbench.pyi
Workbench.pyi
Selection/SelectionObject.pyi
Document.pyi
LinkView.pyi
ViewProviderLink.pyi
AxisOrigin.pyi
Command.pyi
)
SOURCE_GROUP("Pyi" FILES ${FreeCADGui_Pyi_SRCS})
# The 3D Connexion SDK files
if(FREECAD_USE_3DCONNEXION_LEGACY AND MSVC)
SET(FreeCADGui_SDK_SRCS
3Dconnexion/I3dMouseParams.h
3Dconnexion/MouseParameters.cpp
3Dconnexion/MouseParameters.h
3Dconnexion/GuiAbstractNativeEvent.cpp
3Dconnexion/GuiNativeEventWin32.cpp
)
SOURCE_GROUP("3D connexion SDK" FILES ${FreeCADGui_SDK_SRCS})
SET(FreeCADGui_SDK_MOC_HDRS
3Dconnexion/GuiAbstractNativeEvent.h
3Dconnexion/GuiNativeEventWin32.h
)
list(APPEND FreeCADGui_connexion_SRCS
${FreeCADGui_SDK_SRCS}
)
list(APPEND FreeCADGui_connexion_HDRS
${FreeCADGui_SDK_MOC_HDRS}
)
endif(FREECAD_USE_3DCONNEXION_LEGACY AND MSVC)
if(FREECAD_USE_3DCONNEXION_LEGACY AND APPLE)
SET(FreeCADGui_SDK_SRCS
3Dconnexion/GuiAbstractNativeEvent.cpp
3Dconnexion/GuiNativeEventMac.cpp
)
SOURCE_GROUP("3D connexion SDK" FILES ${FreeCADGui_SDK_SRCS})
SET(FreeCADGui_SDK_MOC_HDRS
3Dconnexion/GuiAbstractNativeEvent.h
3Dconnexion/GuiNativeEventMac.h
)
list(APPEND FreeCADGui_connexion_SRCS
${FreeCADGui_SDK_SRCS}
)
list(APPEND FreeCADGui_connexion_HDRS
${FreeCADGui_SDK_MOC_HDRS}
)
endif(FREECAD_USE_3DCONNEXION_LEGACY AND APPLE)
if(FREECAD_USE_3DCONNEXION_NAVLIB AND (MSVC OR APPLE))
SET(NAVLIB_STUB_DIR ${CMAKE_SOURCE_DIR}/src/3rdParty/3Dconnexion/src)
SET(FreeCADGui_SDK_SRCS
3Dconnexion/navlib/NavlibCmds.cpp
3Dconnexion/navlib/NavlibNavigation.cpp
3Dconnexion/navlib/NavlibPivot.cpp
${NAVLIB_STUB_DIR}/navlib_load.cpp
${NAVLIB_STUB_DIR}/navlib_stub.c
)
SOURCE_GROUP("3Dconnexion Navlib" FILES ${FreeCADGui_SDK_SRCS})
SET(FreeCADGui_SDK_MOC_HDRS
3Dconnexion/navlib/NavlibInterface.h
)
list(APPEND FreeCADGui_connexion_SRCS
${FreeCADGui_SDK_SRCS}
)
list(APPEND FreeCADGui_connexion_HDRS
${FreeCADGui_SDK_MOC_HDRS}
)
endif(FREECAD_USE_3DCONNEXION_NAVLIB AND (MSVC OR APPLE))
set_property(SOURCE GraphvizView.h GraphvizView.cpp PROPERTY SKIP_AUTOMOC ON)
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/moc_GraphvizView-internal.cpp
COMMAND ${QtCore_MOC_EXECUTABLE} -o ${CMAKE_CURRENT_BINARY_DIR}/moc_GraphvizView-internal.cpp ${CMAKE_CURRENT_SOURCE_DIR}/GraphvizView.cpp
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/GraphvizView.cpp)
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/moc_GraphvizView.cpp
COMMAND ${QtCore_MOC_EXECUTABLE} -o ${CMAKE_CURRENT_BINARY_DIR}/moc_GraphvizView.cpp ${CMAKE_CURRENT_SOURCE_DIR}/GraphvizView.h
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/GraphvizView.h)
set_property(SOURCE GraphvizView.cpp APPEND PROPERTY OBJECT_DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/moc_GraphvizView-internal.cpp)
set_property(SOURCE GraphvizView.h APPEND PROPERTY OBJECT_DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/moc_GraphvizView.cpp)
SET(Gui_UIC_SRCS
Dialogs/AboutApplication.ui
Clipping.ui
DemoMode.ui
Dialogs/DlgActions.ui
Dialogs/DlgActivateWindow.ui
Dialogs/DlgUnitsCalculator.ui
Dialogs/DlgAuthorization.ui
Dialogs/DlgChooseIcon.ui
Dialogs/DlgCreateNewPreferencePack.ui
Dialogs/DlgInputDialog.ui
Dialogs/DlgKeyboard.ui
Dialogs/DlgMacroExecute.ui
Dialogs/DlgRunExternal.ui
Dialogs/DlgMacroRecord.ui
Dialogs/DlgMaterialProperties.ui
Dialogs/DlgOnlineHelp.ui
Dialogs/DlgParameter.ui
Dialogs/DlgParameterFind.ui
Dialogs/DlgPreferencePackManagement.ui
Dialogs/DlgPreferences.ui
Dialogs/DlgProjectInformation.ui
Dialogs/DlgProjectUtility.ui
Dialogs/DlgPropertyLink.ui
Dialogs/DlgRevertToBackupConfig.ui
Dialogs/DlgThemeEditor.ui
Dialogs/DlgVersionMigrator.ui
PreferencePages/DlgSettings3DView.ui
PreferencePages/DlgSettingsCacheDirectory.ui
Dialogs/DlgSettingsColorGradient.ui
PreferencePages/DlgSettingsDocument.ui
PreferencePages/DlgSettingsEditor.ui
PreferencePages/DlgSettingsGeneral.ui
Dialogs/DlgSettingsImage.ui
PreferencePages/DlgSettingsLightSources.ui
PreferencePages/DlgSettingsMacro.ui
PreferencePages/DlgSettingsNavigation.ui
PreferencePages/DlgSettingsNotificationArea.ui
PreferencePages/DlgSettingsPythonConsole.ui
PreferencePages/DlgSettingsReportView.ui
PreferencePages/DlgSettingsSelection.ui
PreferencePages/DlgSettingsUI.ui
PreferencePages/DlgSettingsViewColor.ui
PreferencePages/DlgSettingsWorkbenches.ui
PreferencePages/DlgSettingsPDF.ui
Dialogs/DlgCheckableMessageBox.ui
Dialogs/DlgToolbars.ui
Dialogs/DlgTreeWidget.ui
Dialogs/DlgLocationAngle.ui
Dialogs/DlgLocationPos.ui
DocumentRecovery.ui
DownloadManager.ui
DownloadItem.ui
Dialogs/DlgExpressionInput.ui
MouseButtons.ui
SceneInspector.ui
InputVector.ui
Placement.ui
TaskTransform.ui
TextureMapping.ui
TaskView/TaskAppearance.ui
TaskView/TaskOrientation.ui
TaskView/TaskImage.ui
TaskView/TaskSolverMessages.ui
TaskView/TaskSelectLinkProperty.ui
TaskElementColors.ui
Dialogs/DlgObjectSelection.ui
Dialogs/DlgAddProperty.ui
VectorListEditor.ui
)
if(FREECAD_USE_3DCONNEXION_LEGACY)
list(APPEND Gui_UIC_SRCS Dialogs/DlgCustomizeSpNavSettings.ui)
endif(FREECAD_USE_3DCONNEXION_LEGACY)
set (FreeCAD_TR_QRC ${CMAKE_CURRENT_BINARY_DIR}/Language/FreeCAD_translation.qrc)
qt_find_and_add_translation(QM_SRCS "Language/FreeCAD_*.ts"
${CMAKE_CURRENT_BINARY_DIR}/Language)
qt_create_resource_file_prefix(${FreeCAD_TR_QRC} ${QM_SRCS})
set(Gui_RES_SRCS
Icons/resource.qrc
Language/translation.qrc
${FreeCAD_TR_QRC}
)
qt_add_resources(Gui_QRC_SRCS ${Gui_RES_SRCS})
SOURCE_GROUP("Uic" FILES ${Gui_UIC_HDRS})
# The command sources
SET(Command_CPP_SRCS
Action.cpp
ActionFunction.cpp
Command.cpp
CommandDoc.cpp
CommandFeat.cpp
CommandMacro.cpp
CommandStd.cpp
CommandOrigin.cpp
CommandWindow.cpp
CommandTest.cpp
CommandView.cpp
CommandStructure.cpp
CommandLink.cpp
CommandPyImp.cpp
ShortcutManager.cpp
CommandCompleter.cpp
CommandActionPy.cpp
)
SET(Command_SRCS
${Command_CPP_SRCS}
Action.h
ActionFunction.h
Command.h
CommandT.h
ShortcutManager.h
CommandCompleter.h
CommandActionPy.h
)
SOURCE_GROUP("Command" FILES ${Command_SRCS})
# The dialog sources
SET(Dialog_CPP_SRCS
Clipping.cpp
DemoMode.cpp
Dialogs/DlgAbout.cpp
Dialogs/DlgActivateWindowImp.cpp
Dialogs/DlgCreateNewPreferencePackImp.cpp
Dialogs/DlgUnitsCalculatorImp.cpp
Dialogs/DlgInputDialogImp.cpp
Dialogs/DlgMacroExecuteImp.cpp
Dialogs/DlgRunExternal.cpp
Dialogs/DlgEditFileIncludePropertyExternal.cpp
Dialogs/DlgMacroRecordImp.cpp
Dialogs/DlgMaterialPropertiesImp.cpp
Dialogs/DlgParameterImp.cpp
Dialogs/DlgParameterFind.cpp
Dialogs/DlgPreferencePackManagementImp.cpp
Dialogs/DlgProjectInformationImp.cpp
Dialogs/DlgProjectUtility.cpp
Dialogs/DlgPropertyLink.cpp
Dialogs/DlgRevertToBackupConfigImp.cpp
Dialogs/DlgExpressionInput.cpp
Dialogs/DlgThemeEditor.cpp
Dialogs/DlgVersionMigrator.cpp
TaskDlgRelocation.cpp
Dialogs/DlgCheckableMessageBox.cpp
TaskTransform.cpp
Dialogs/DlgUndoRedo.cpp
InputVector.cpp
Placement.cpp
PropertyPage.cpp
SceneInspector.cpp
TextureMapping.cpp
Transform.cpp
DownloadItem.cpp
DownloadManager.cpp
DocumentRecovery.cpp
TaskElementColors.cpp
Dialogs/DlgObjectSelection.cpp
Dialogs/DlgAddProperty.cpp
VectorListEditor.cpp
OriginManagerDialog.cpp
)
SET(Dialog_HPP_SRCS
Clipping.h
DemoMode.h
Dialogs/DlgAbout.h
Dialogs/DlgActivateWindowImp.h
Dialogs/DlgCreateNewPreferencePackImp.h
Dialogs/DlgUnitsCalculatorImp.h
Dialogs/DlgInputDialogImp.h
Dialogs/DlgMacroExecuteImp.h
Dialogs/DlgRunExternal.h
Dialogs/DlgEditFileIncludePropertyExternal.h
Dialogs/DlgMacroRecordImp.h
Dialogs/DlgMaterialPropertiesImp.h
Dialogs/DlgParameterImp.h
Dialogs/DlgParameterFind.h
Dialogs/DlgPreferencePackManagementImp.h
Dialogs/DlgProjectInformationImp.h
Dialogs/DlgProjectUtility.h
Dialogs/DlgPropertyLink.h
Dialogs/DlgRevertToBackupConfigImp.h
Dialogs/DlgCheckableMessageBox.h
Dialogs/DlgExpressionInput.h
Dialogs/DlgThemeEditor.h
Dialogs/DlgVersionMigrator.h
TaskDlgRelocation.h
TaskTransform.h
Dialogs/DlgUndoRedo.h
InputVector.h
Placement.h
PropertyPage.h
SceneInspector.h
TextureMapping.h
Transform.h
DownloadItem.h
DownloadManager.h
DocumentRecovery.h
TaskElementColors.h
Dialogs/DlgObjectSelection.h
Dialogs/DlgAddProperty.h
VectorListEditor.h
OriginManagerDialog.h
)
SET(Dialog_SRCS
${Dialog_CPP_SRCS}
${Dialog_HPP_SRCS}
Dialogs/AboutApplication.ui
Clipping.ui
DemoMode.ui
Dialogs/DlgActivateWindow.ui
Dialogs/DlgUnitsCalculator.ui
Dialogs/DlgAuthorization.ui
Dialogs/DlgInputDialog.ui
Dialogs/DlgAddProperty.ui
Dialogs/DlgLocationAngle.ui
Dialogs/DlgLocationPos.ui
Dialogs/DlgMacroExecute.ui
Dialogs/DlgRunExternal.ui
Dialogs/DlgMacroRecord.ui
Dialogs/DlgMaterialProperties.ui
Dialogs/DlgParameter.ui
Dialogs/DlgParameterFind.ui
Dialogs/DlgPreferencePackManagement.ui
Dialogs/DlgProjectInformation.ui
Dialogs/DlgProjectUtility.ui
Dialogs/DlgPropertyLink.ui
Dialogs/DlgRevertToBackupConfig.ui
Dialogs/DlgCheckableMessageBox.ui
Dialogs/DlgTreeWidget.ui
Dialogs/DlgExpressionInput.ui
Dialogs/DlgCreateNewPreferencePack.ui
Dialogs/DlgVersionMigrator.ui
DownloadManager.ui
DownloadItem.ui
DocumentRecovery.ui
MouseButtons.ui
InputVector.ui
Placement.ui
SceneInspector.ui
TextureMapping.ui
TaskElementColors.ui
Dialogs/DlgObjectSelection.ui
VectorListEditor.ui
)
SOURCE_GROUP("Dialog" FILES ${Dialog_SRCS})
# The customize dialog sources
SET(Dialog_Customize_CPP_SRCS
Dialogs/DlgActionsImp.cpp
Dialogs/DlgCustomizeImp.cpp
Dialogs/DlgKeyboardImp.cpp
Dialogs/DlgToolbarsImp.cpp
PreferencePages/ListWidgetDragBugFix.cpp
)
SET(Dialog_Customize_HPP_SRCS
Dialogs/DlgActionsImp.h
Dialogs/DlgCustomizeImp.h
Dialogs/DlgKeyboardImp.h
Dialogs/DlgToolbarsImp.h
PreferencePages/ListWidgetDragBugFix.h
)
if(FREECAD_USE_3DCONNEXION_LEGACY)
list(APPEND Dialog_Customize_CPP_SRCS Dialogs/DlgCustomizeSpaceball.cpp Dialogs/DlgCustomizeSpNavSettings.cpp)
list(APPEND Dialog_Customize_HPP_SRCS Dialogs/DlgCustomizeSpaceball.h Dialogs/DlgCustomizeSpNavSettings.h)
endif(FREECAD_USE_3DCONNEXION_LEGACY)
SET(Dialog_Customize_SRCS
${Dialog_Customize_CPP_SRCS}
${Dialog_Customize_HPP_SRCS}
Dialogs/DlgActions.ui
Dialogs/DlgChooseIcon.ui
Dialogs/DlgKeyboard.ui
Dialogs/DlgToolbars.ui
)
if(FREECAD_USE_3DCONNEXION_LEGACY)
list(APPEND Dialog_Customize_SRCS Dialogs/DlgCustomizeSpNavSettings.ui)
endif(FREECAD_USE_3DCONNEXION_LEGACY)
SOURCE_GROUP("Dialog\\Customize" FILES ${Dialog_Customize_SRCS})
# The settings dialog sources
SET(Dialog_Settings_CPP_SRCS
Dialogs/DlgOnlineHelpImp.cpp
Dialogs/DlgPreferencesImp.cpp
PreferencePages/DlgSettings3DViewImp.cpp
PreferencePages/DlgSettingsPDF.cpp
PreferencePages/DlgSettingsCacheDirectory.cpp
Dialogs/DlgSettingsColorGradientImp.cpp
PreferencePages/DlgSettingsDocumentImp.cpp
PreferencePages/DlgSettingsEditor.cpp
PreferencePages/DlgSettingsGeneral.cpp
Dialogs/DlgSettingsImageImp.cpp
PreferencePages/DlgSettingsLightSources.cpp
PreferencePages/DlgSettingsMacroImp.cpp
PreferencePages/DlgSettingsNavigation.cpp
PreferencePages/DlgSettingsNotificationArea.cpp
PreferencePages/DlgSettingsPythonConsole.cpp
PreferencePages/DlgSettingsReportView.cpp
PreferencePages/DlgSettingsSelection.cpp
PreferencePages/DlgSettingsUI.cpp
PreferencePages/DlgSettingsViewColor.cpp
PreferencePages/DlgSettingsWorkbenchesImp.cpp
PreferencePages/DlgSettingsAdvanced.cpp
)
SET(Dialog_Settings_HPP_SRCS
Dialogs/DlgOnlineHelpImp.h
Dialogs/DlgPreferencesImp.h
PreferencePages/DlgSettings3DViewImp.h
PreferencePages/DlgSettingsPDF.h
PreferencePages/DlgSettingsCacheDirectory.h
Dialogs/DlgSettingsColorGradientImp.h
PreferencePages/DlgSettingsDocumentImp.h
PreferencePages/DlgSettingsEditor.h
PreferencePages/DlgSettingsGeneral.h
Dialogs/DlgSettingsImageImp.h
PreferencePages/DlgSettingsLightSources.h
PreferencePages/DlgSettingsMacroImp.h
PreferencePages/DlgSettingsNavigation.h
PreferencePages/DlgSettingsNotificationArea.h
PreferencePages/DlgSettingsPythonConsole.h
PreferencePages/DlgSettingsReportView.h
PreferencePages/DlgSettingsSelection.h
PreferencePages/DlgSettingsUI.h
PreferencePages/DlgSettingsViewColor.h
PreferencePages/DlgSettingsWorkbenchesImp.h
PreferencePages/DlgSettingsAdvanced.h
)
SET(Dialog_Settings_SRCS
${Dialog_Settings_CPP_SRCS}
${Dialog_Settings_HPP_SRCS}
Dialogs/DlgOnlineHelp.ui
Dialogs/DlgPreferences.ui
PreferencePages/DlgSettings3DView.ui
PreferencePages/DlgSettingsCacheDirectory.ui
Dialogs/DlgSettingsColorGradient.ui
PreferencePages/DlgSettingsDocument.ui
PreferencePages/DlgSettingsEditor.ui
PreferencePages/DlgSettingsGeneral.ui
Dialogs/DlgSettingsImage.ui
PreferencePages/DlgSettingsLightSources.ui
PreferencePages/DlgSettingsMacro.ui
PreferencePages/DlgSettingsNavigation.ui
PreferencePages/DlgSettingsNotificationArea.ui
PreferencePages/DlgSettingsPythonConsole.ui
PreferencePages/DlgSettingsReportView.ui
PreferencePages/DlgSettingsSelection.ui
PreferencePages/DlgSettingsUI.ui
PreferencePages/DlgSettingsViewColor.ui
PreferencePages/DlgSettingsWorkbenches.ui
PreferencePages/DlgSettingsPDF.ui
)
SOURCE_GROUP("Dialog\\Settings" FILES ${Dialog_Settings_SRCS})
# The dock windows sources
SET(Dock_Windows_CPP_SRCS
ComboView.cpp
DockWindow.cpp
PropertyView.cpp
ReportView.cpp
Selection/SelectionView.cpp
ToolBox.cpp
Tree.cpp
TreeView.cpp
DAGView/DAGView.cpp
DAGView/DAGModel.cpp
DAGView/DAGRectItem.cpp
DAGView/DAGModelGraph.cpp
)
SET(Dock_Windows_HPP_SRCS
ComboView.h
DockWindow.h
PropertyView.h
ReportView.h
Selection/SelectionView.h
ToolBox.h
Tree.h
TreeView.h
DAGView/DAGView.h
DAGView/DAGModel.h
DAGView/DAGRectItem.h
DAGView/DAGModelGraph.h
)
SET(Dock_Windows_SRCS
${Dock_Windows_CPP_SRCS}
${Dock_Windows_HPP_SRCS}
)
SOURCE_GROUP("Dock Windows" FILES ${Dock_Windows_SRCS})
# The editor sources
SET(Editor_CPP_SRCS
CallTips.cpp
EditorView.cpp
TextDocumentEditorView.cpp
PythonConsole.cpp
PythonConsolePy.cpp
PythonDebugger.cpp
PythonTracing.cpp
PythonEditor.cpp
SyntaxHighlighter.cpp
TextEdit.cpp
)
SET(Editor_HPP_SRCS
CallTips.h
EditorView.h
TextDocumentEditorView.h
PythonConsole.h
PythonConsolePy.h
PythonDebugger.h
PythonTracing.h
PythonEditor.h
SyntaxHighlighter.h
TextEdit.h
)
SET(Editor_SRCS
${Editor_CPP_SRCS}
${Editor_HPP_SRCS}
)
SOURCE_GROUP("Editor" FILES ${Editor_SRCS})
# The help system
SET(Help_CPP_SRCS
Assistant.cpp
NetworkRetriever.cpp
OnlineDocumentation.cpp
WhatsThis.cpp
)
SET(Help_SRCS
${Help_CPP_SRCS}
Assistant.h
NetworkRetriever.h
OnlineDocumentation.h
WhatsThis.h
)
SOURCE_GROUP("Help" FILES ${Help_SRCS})
# The i18n sources
SET(Language_SRCS
Language/Translator.cpp
Language/Translator.h
)
SOURCE_GROUP("Language" FILES ${Language_SRCS})
# The property editor
SET(Propertyeditor_SRCS
propertyeditor/PropertyEditor.cpp
propertyeditor/PropertyEditor.h
propertyeditor/PropertyItem.cpp
propertyeditor/PropertyItem.h
propertyeditor/PropertyItemDelegate.cpp
propertyeditor/PropertyItemDelegate.h
propertyeditor/PropertyModel.cpp
propertyeditor/PropertyModel.h
)
SOURCE_GROUP("Propertyeditor" FILES ${Propertyeditor_SRCS})
# The task view
SET(Task_View_SRCS
TaskView/TaskAppearance.cpp
TaskView/TaskAppearance.h
TaskView/TaskAppearance.ui
TaskView/TaskOrientation.cpp
TaskView/TaskOrientation.h
TaskView/TaskOrientation.ui
TaskView/TaskImage.cpp
TaskView/TaskImage.h
TaskView/TaskImage.ui
TaskView/TaskSelectLinkProperty.cpp
TaskView/TaskSelectLinkProperty.h
TaskView/TaskSelectLinkProperty.ui
TaskView/TaskSolverMessages.cpp
TaskView/TaskSolverMessages.h
TaskView/TaskSolverMessages.ui
TaskView/TaskEditControl.cpp
TaskView/TaskEditControl.h
TaskView/TaskEditControl.ui
TaskView/TaskView.cpp
TaskView/TaskView.h
TaskView/TaskDialog.cpp
TaskView/TaskDialog.h
TaskView/TaskDialogPython.cpp
TaskView/TaskDialogPython.h
TaskView/TaskWatcher.cpp
TaskView/TaskWatcher.h
)
SOURCE_GROUP("Task View" FILES ${Task_View_SRCS})
SET(qsintActionPanel_SRCS
QSint/actionpanel/actionbox.cpp
QSint/actionpanel/actionbox.h
QSint/actionpanel/actionlabel.cpp
QSint/actionpanel/actionlabel.h
QSint/actionpanel/actiongroup.cpp
QSint/actionpanel/actiongroup.h
QSint/actionpanel/actionpanel.cpp
QSint/actionpanel/actionpanel.h
QSint/actionpanel/actionpanelscheme.cpp
QSint/actionpanel/actionpanelscheme.h
QSint/actionpanel/taskgroup_p.cpp
QSint/actionpanel/taskgroup_p.h
QSint/actionpanel/taskheader_p.cpp
QSint/actionpanel/taskheader_p.h
)
SOURCE_GROUP("Widget\\QSintActionPanel" FILES ${qsintActionPanel_SRCS})
set(qsint_MOC_HDRS
QSint/actionpanel/actionbox.h
QSint/actionpanel/actionlabel.h
QSint/actionpanel/actiongroup.h
QSint/actionpanel/actionpanel.h
QSint/actionpanel/taskheader_p.h
)
qt_wrap_cpp(qsint_MOC_SRCS ${qsint_MOC_HDRS})
SOURCE_GROUP("Widget\\QSintActionPanel\\Mocs" FILES ${qsint_MOC_SRCS})
# The 3d view
SET(View3D_CPP_SRCS
Camera.cpp
Flag.cpp
GLBuffer.cpp
GLPainter.cpp
Multisample.cpp
MouseSelection.cpp
SplitView3DInventor.cpp
View.cpp
View3DInventor.cpp
View3DInventorSelection.cpp
View3DInventorViewer.cpp
View3DInventorRiftViewer.cpp
View3DSettings.cpp
CoinRiftWidget.cpp
View3DPy.cpp
View3DViewerPy.cpp
NaviCube.cpp
)
SET(View3D_SRCS
${View3D_CPP_SRCS}
Camera.h
Flag.h
GLBuffer.h
GLPainter.h
Multisample.h
MouseSelection.h
SplitView3DInventor.h
View.h
View3DInventor.h
View3DInventorSelection.h
View3DInventorViewer.h
View3DPy.h
View3DInventorRiftViewer.h
View3DSettings.h
CoinRiftWidget.h
View3DViewerPy.h
NaviCube.h
)
SOURCE_GROUP("View3D" FILES ${View3D_SRCS})
SET(Navigation_CPP_SRCS
Navigation/NavigationStateChart.cpp
Navigation/NavigationStyle.cpp
Navigation/NavigationStylePyImp.cpp
Navigation/InventorNavigationStyle.cpp
Navigation/CADNavigationStyle.cpp
Navigation/RevitNavigationStyle.cpp
Navigation/BlenderNavigationStyle.cpp
Navigation/SiemensNXNavigationStyle.cpp
Navigation/SolidWorksNavigationStyle.cpp
Navigation/MayaGestureNavigationStyle.cpp
Navigation/OpenCascadeNavigationStyle.cpp
Navigation/OpenSCADNavigationStyle.cpp
Navigation/TinkerCADNavigationStyle.cpp
Navigation/TouchpadNavigationStyle.cpp
Navigation/GestureNavigationStyle.cpp
Navigation/NavigationAnimator.cpp
Navigation/NavigationAnimation.cpp
)
SET(Navigation_SRCS
${Navigation_CPP_SRCS}
Navigation/NavigationStateChart.h
Navigation/NavigationStyle.h
Navigation/NavigationStyle.pyi
Navigation/GestureNavigationStyle.h
Navigation/NavigationAnimator.h
Navigation/NavigationAnimation.h
Navigation/SiemensNXNavigationStyle.h
)
SOURCE_GROUP("Navigation" FILES ${Navigation_SRCS})
#quarter sources
FILE(GLOB_RECURSE Quarter_CPP_SRC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} Quarter/*.cpp)
FILE(GLOB_RECURSE Quarter_H_SRC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} Quarter/*.h)
SET(Quarter_MOC_HDR
Quarter/SignalThread.h
Quarter/InteractionMode.h
Quarter/SensorManager.h
Quarter/ContextMenu.h
Quarter/eventhandlers/FocusHandler.h
Quarter/eventhandlers/DragDropHandler.h
Quarter/eventhandlers/EventFilter.h
Quarter/QuarterWidget.h
)
qt_wrap_cpp(Quarter_MOC_SRCS ${Quarter_MOC_HDR})
SET(Quarter_SRCS
${Quarter_CPP_SRC}
${Quarter_H_SRC}
${Quarter_MOC_SRCS}
)
SOURCE_GROUP("Quarter" FILES ${Quarter_SRCS})
# The view provider sources
SET(Viewprovider_CPP_SRCS
ViewProvider.cpp
ViewProviderExtension.cpp
ViewProviderExtensionPyImp.cpp
ViewProviderGroupExtension.cpp
ViewProviderGeoFeatureGroupExtension.cpp
ViewProviderOriginGroupExtension.cpp
ViewProviderSuppressibleExtension.cpp
ViewProviderAnnotation.cpp
ViewProviderDocumentObject.cpp
ViewProviderDocumentObjectGroup.cpp
ViewProviderDocumentObjectPyImp.cpp
ViewProviderGeometryObjectPyImp.cpp
ViewProviderDragger.cpp
ViewProviderExtern.cpp
ViewProviderFeature.cpp
ViewProviderGeometryObject.cpp
ViewProviderImagePlane.cpp
ViewProviderInventorObject.cpp
ViewProviderPyImp.cpp
ViewProviderFeaturePython.cpp
ViewProviderVRMLObject.cpp
ViewProviderBuilder.cpp
ViewProviderPlacement.cpp
ViewProviderDatum.cpp
ViewProviderPlane.cpp
ViewProviderPoint.cpp
ViewProviderLine.cpp
ViewProviderGeoFeatureGroup.cpp
ViewProviderOriginGroup.cpp
ViewProviderPart.cpp
ViewProviderCoordinateSystem.cpp
ViewProviderMaterialObject.cpp
ViewProviderTextDocument.cpp
ViewProviderTextureExtension.cpp
ViewProviderLink.cpp
LinkViewPyImp.cpp
ViewProviderLinkPyImp.cpp
ViewProviderVarSet.cpp
AxisOriginPyImp.cpp
AxisOrigin.cpp
)
SET(Viewprovider_SRCS
${Viewprovider_CPP_SRCS}
ViewProvider.h
ViewProviderExtension.h
ViewProviderGroupExtension.h
ViewProviderGeoFeatureGroupExtension.h
ViewProviderOriginGroupExtension.h
ViewProviderAnnotation.h
ViewProviderDocumentObject.h
ViewProviderDocumentObjectGroup.h
ViewProviderDragger.h
ViewProviderExtern.h
ViewProviderFeature.h
ViewProviderGeometryObject.h
ViewProviderImagePlane.h
ViewProviderInventorObject.h
ViewProviderFeaturePython.h
ViewProviderVRMLObject.h
ViewProviderBuilder.h
ViewProviderPlacement.h
ViewProviderDatum.h
ViewProviderPlane.h
ViewProviderPoint.h
ViewProviderLine.h
ViewProviderGeoFeatureGroup.h
ViewProviderOriginGroup.h
ViewProviderPart.h
ViewProviderCoordinateSystem.h
ViewProviderMaterialObject.h
ViewProviderTextDocument.h
ViewProviderTextureExtension.h
ViewProviderLink.h
ViewProviderVarSet.h
AxisOrigin.h
)
SOURCE_GROUP("View3D\\Viewprovider" FILES ${Viewprovider_SRCS})
# The Inventor sources
SET(Inventor_CPP_SRCS
Inventor/MarkerBitmaps.cpp
Inventor/SmSwitchboard.cpp
Inventor/So3DAnnotation.cpp
Inventor/SoAutoZoomTranslation.cpp
Inventor/SoAxisCrossKit.cpp
Inventor/SoFCPlacementIndicatorKit.cpp
Inventor/SoDrawingGrid.cpp
Inventor/SoFCBackgroundGradient.cpp
Inventor/SoFCBoundingBox.cpp
Inventor/SoMouseWheelEvent.cpp
Inventor/SoFCTransform.cpp
Inventor/SoToggleSwitch.cpp
Inventor/Draggers/SoTransformDragger.cpp
Inventor/Draggers/SoLinearDragger.cpp
Inventor/Draggers/SoLinearDraggerGeometry.cpp
Inventor/Draggers/SoPlanarDragger.cpp
Inventor/Draggers/SoRotationDragger.cpp
Inventor/Draggers/SoRotationDraggerGeometry.cpp
Inventor/Draggers/Gizmo.cpp
SoFCColorBar.cpp
SoFCColorBarNotifier.cpp
SoFCColorGradient.cpp
SoFCColorLegend.cpp
SoFCDB.cpp
SoFCInteractiveElement.cpp
SoFCOffscreenRenderer.cpp
SoQtOffscreenRendererPy.cpp
Selection/SoFCSelection.cpp
Selection/SoFCUnifiedSelection.cpp
Selection/SoFCSelectionContext.cpp
Selection/SoFCSelectionAction.cpp
SoFCVectorizeSVGAction.cpp
SoFCVectorizeU3DAction.cpp
SoDevicePixelRatioElement.cpp
SoTextLabel.cpp
SoDatumLabel.cpp
SoTouchEvents.cpp
ArcEngine.cpp
)
SET(Inventor_SRCS
${Inventor_CPP_SRCS}
Inventor/MarkerBitmaps.h
Inventor/SmSwitchboard.h
Inventor/SoAutoZoomTranslation.h
Inventor/SoAxisCrossKit.h
Inventor/SoFCPlacementIndicatorKit.h
Inventor/SoDrawingGrid.h
Inventor/SoFCBackgroundGradient.h
Inventor/SoFCBoundingBox.h
Inventor/SoMouseWheelEvent.h
Inventor/SoFCTransform.h
Inventor/SoToggleSwitch.h
Inventor/Draggers/SoTransformDragger.h
Inventor/Draggers/SoLinearDragger.h
Inventor/Draggers/SoLinearDraggerGeometry.h
Inventor/Draggers/SoPlanarDragger.h
Inventor/Draggers/SoRotationDragger.h
Inventor/Draggers/SoRotationDraggerGeometry.h
Inventor/Draggers/Gizmo.h
Inventor/Draggers/GizmoStyleParameters.h
SoFCColorBar.h
SoFCColorBarNotifier.h
SoFCColorGradient.h
SoFCColorLegend.h
SoFCDB.h
SoFCInteractiveElement.h
SoFCOffscreenRenderer.h
SoQtOffscreenRendererPy.h
Selection/SoFCSelection.h
Selection/SoFCUnifiedSelection.h
Selection/SoFCSelectionContext.h
Selection/SoFCSelectionAction.h
SoFCVectorizeSVGAction.h
SoFCVectorizeU3DAction.h
SoDevicePixelRatioElement.h
SoTextLabel.h
SoDatumLabel.h
SoTouchEvents.h
ArcEngine.h
)
SOURCE_GROUP("View3D\\Inventor" FILES ${Inventor_SRCS})
# The widget sources
SET(Widget_CPP_SRCS
ComboLinks.cpp
FileDialog.cpp
MainWindow.cpp
MainWindowPy.cpp
NotificationBox.cpp
NotificationArea.cpp
PrefWidgets.cpp
InputField.cpp
ProgressBar.cpp
ProgressDialog.cpp
QuantitySpinBox.cpp
SpinBox.cpp
SplashScreen.cpp
PythonWrapper.cpp
UiLoader.cpp
WidgetFactory.cpp
Widgets.cpp
Window.cpp
WorkbenchSelector.cpp
ElideLabel.cpp
ElideCheckBox.cpp
FontScaledSVG.cpp
SplitButton.cpp
OriginSelectorWidget.cpp
)
SET(Widget_HPP_SRCS
ComboLinks.h
FileDialog.h
MainWindow.h
MainWindowPy.h
NotificationBox.h
NotificationArea.h
PrefWidgets.h
InputField.h
ProgressBar.h
ProgressDialog.h
QuantitySpinBox.h
QuantitySpinBox_p.h
SpinBox.h
SplashScreen.h
PythonWrapper.h
UiLoader.h
WidgetFactory.h
Widgets.h
Window.h
WorkbenchSelector.h
ElideLabel.h
ElideCheckBox.h
FontScaledSVG.h
SplitButton.h
OriginSelectorWidget.h
)
SET(Widget_SRCS
${Widget_CPP_SRCS}
${Widget_HPP_SRCS}
)
SOURCE_GROUP("Widget" FILES ${Widget_SRCS})
SET(Params_CPP_SRCS
TreeParams.cpp
OverlayParams.cpp
ParamHandler.cpp
ViewParams.cpp
)
SET(Params_HPP_SRCS
TreeParams.h
OverlayParams.h
ParamHandler.cpp
ViewParams.h
)
SET(Params_SRCS
${Params_CPP_SRCS}
${Params_HPP_SRCS}
)
SOURCE_GROUP("Params" FILES ${Params_SRCS})
# The view sources
SET(View_CPP_SRCS
MDIView.cpp
MDIViewPy.cpp
MDIViewPyWrap.cpp
GraphvizView.cpp
ImageView.cpp
ActiveObjectList.cpp
)
SET(View_HPP_SRCS
MDIView.h
MDIViewPy.h
MDIViewPyWrap.h
GraphvizView.h
ImageView.h
ActiveObjectList.h
)
SET(View_SRCS
${View_CPP_SRCS}
${View_HPP_SRCS}
)
SOURCE_GROUP("View" FILES ${View_SRCS})
# The workbench sources
SET(Workbench_CPP_SRCS
BreadcrumbToolBar.cpp
DockWindowManager.cpp
EditingContext.cpp
OverlayManager.cpp
OverlayWidgets.cpp
MenuManager.cpp
OriginManager.cpp
PythonWorkbenchPyImp.cpp
ToolBarAreaWidget.cpp
ToolBarManager.cpp
ToolBoxManager.cpp
Workbench.cpp
WorkbenchFactory.cpp
WorkbenchManager.cpp
WorkbenchManipulator.cpp
WorkbenchManipulatorPython.cpp
WorkbenchPyImp.cpp
)
SET(Workbench_SRCS
${Workbench_CPP_SRCS}
BreadcrumbToolBar.h
DockWindowManager.h
EditingContext.h
OverlayManager.h
OverlayWidgets.h
MenuManager.h
OriginManager.h
ToolBarAreaWidget.h
ToolBarManager.h
ToolBoxManager.h
Workbench.h
WorkbenchFactory.h
WorkbenchManager.h
WorkbenchManipulator.h
WorkbenchManipulatorPython.h
)
SOURCE_GROUP("Workbench" FILES ${Workbench_SRCS})
SET(Selection_SRCS
Selection/SelectionObjectPyImp.cpp
Selection/SelectionObject.h
Selection/SelectionObject.cpp
Selection/Selection.h
Selection/Selection.cpp
Selection/SelectionFilter.h
Selection/SelectionFilter.cpp
Selection/SelectionFilterPy.h
Selection/SelectionFilterPy.cpp
Selection/SelectionFilter.y
Selection/SelectionFilter.l
Selection/SelectionObserverPython.cpp
Selection/SelectionObserverPython.h
)
SOURCE_GROUP("Selection" FILES ${Selection_SRCS})
# The FreeCADGui sources
SET(FreeCADGui_CPP_SRCS
Application.cpp
ApplicationPy.cpp
AutoSaver.cpp
BitmapFactory.cpp
Document.cpp
DocumentModel.cpp
DocumentPyImp.cpp
DocumentObserver.cpp
DocumentObserverPython.cpp
EditableDatumLabel.cpp
FileOrigin.cpp
FileOriginPython.cpp
ExpressionBinding.cpp
ExpressionBindingPy.cpp
GraphicsViewZoom.cpp
ExpressionCompleter.cpp
FileHandler.cpp
FileHandler.h
FreeCADStyle.cpp
GuiApplication.cpp
GuiApplicationNativeEventAware.cpp
GuiConsole.cpp
InputHintWidget.cpp
InputHintPy.cpp
Macro.cpp
MergeDocuments.cpp
ModuleIO.cpp
Namespace.h
resource.cpp
Control.cpp
SpaceballEvent.cpp
StatusBarLabel.cpp
PreferencePackManager.cpp
Thumbnail.cpp
Utilities.cpp
WaitCursor.cpp
ManualAlignment.cpp
StartupProcess.cpp
TransactionObject.cpp
ToolHandler.cpp
StyleParameters/Parser.cpp
StyleParameters/ParameterManager.cpp
)
SET(FreeCADGui_SRCS
Application.h
AutoSaver.h
BitmapFactory.h
Document.h
DocumentModel.h
DocumentObserver.h
DocumentObserverPython.h
EditableDatumLabel.h
FileOrigin.h
FileOriginPython.h
ExpressionBinding.h
ExpressionBindingPy.h
ExpressionCompleter.h
FreeCADGuiInit.py
FreeCADStyle.h
GraphicsViewZoom.h
GuiApplication.h
GuiApplicationNativeEventAware.h
3Dconnexion/GuiAbstractNativeEvent.h
GuiConsole.h
InventorAll.h
InputHint.h
InputHintPy.h
InputHintWidget.h
Macro.h
MergeDocuments.h
MetaTypes.h
ModuleIO.h
Notifications.h
PreCompiled.h
QtAll.h
Control.h
SpaceballEvent.h
PreferencePackManager.h
Thumbnail.h
Tools.h
Utilities.h
WaitCursor.h
ManualAlignment.h
StartupProcess.h
StatusBarLabel.h
TransactionObject.h
ToolHandler.h
StyleParameters/Parser.h
StyleParameters/ParameterManager.h
)
SET(FreeCADGui_SRCS
${FreeCADGui_connexion_SRCS}
${FreeCADGui_connexion_HDRS}
${FreeCADGui_CPP_SRCS}
${FreeCADGui_Pyi_SRCS}
${qsint_MOC_SRCS}
${Gui_QRC_SRCS}
${Gui_UIC_HDRS}
${Command_SRCS}
${Dialog_SRCS}
${Dialog_Customize_SRCS}
${Dialog_Settings_SRCS}
${Dock_Windows_SRCS}
${Editor_SRCS}
${Help_SRCS}
${Inventor_CPP_SRCS}
${Language_SRCS}
${Propertyeditor_SRCS}
${Task_View_SRCS}
${qsintActionPanel_SRCS}
${Resource_SRCS}
${Quarter_SRCS}
${View3D_SRCS}
${Navigation_SRCS}
${Viewprovider_SRCS}
${Widget_SRCS}
${Params_SRCS}
${View_SRCS}
${Workbench_SRCS}
${Selection_SRCS}
${FreeCADGui_SRCS}
)
if(MSVC)
SET(FreeCADGui_CPP_SRCS
Language/Translator.cpp
propertyeditor/PropertyEditor.cpp
propertyeditor/PropertyItem.cpp
propertyeditor/PropertyItemDelegate.cpp
propertyeditor/PropertyModel.cpp
TaskView/TaskAppearance.cpp
TaskView/TaskOrientation.cpp
TaskView/TaskImage.cpp
TaskView/TaskSelectLinkProperty.cpp
TaskView/TaskSolverMessages.ui
TaskView/TaskEditControl.cpp
TaskView/TaskView.cpp
${Command_CPP_SRCS}
${Dialog_CPP_SRCS}
${Dialog_Customize_CPP_SRCS}
${Dialog_Settings_CPP_SRCS}
${Dock_Windows_CPP_SRCS}
${Editor_CPP_SRCS}
${Help_CPP_SRCS}
${Inventor_CPP_SRCS}
${View3D_CPP_SRCS}
${Viewprovider_CPP_SRCS}
${Widget_CPP_SRCS}
${Workbench_CPP_SRCS}
${FreeCADGui_CPP_SRCS}
)
endif(MSVC)
if(FREECAD_USE_PCH)
target_precompile_headers(FreeCADGui PRIVATE
$<$<COMPILE_LANGUAGE:CXX>:"${CMAKE_CURRENT_LIST_DIR}/PreCompiled.h">
)
set_source_files_properties(
${qsintActionPanel_SRCS}
${Quarter_SRCS}
PROPERTIES SKIP_PRECOMPILE_HEADERS TRUE)
endif(FREECAD_USE_PCH)
if (FREECAD_USE_QT_DIALOGS)
set_source_files_properties(FileDialog.cpp PROPERTIES COMPILE_FLAGS -DUSE_QT_DIALOGS)
endif()
# Suppress some very long Eigen3 warnings of older versions and
# suppress this warning for the SbMatrix class
if (EIGEN3_NO_DEPRECATED_COPY)
set_source_files_properties(
NaviCube.cpp
Inventor/SoAutoZoomTranslation.cpp
Inventor/Draggers/SoTransformDragger.cpp
Inventor/Draggers/SoLinearDragger.cpp
Inventor/Draggers/SoLinearDraggerGeometry.cpp
Inventor/Draggers/SoPlanarDragger.cpp
Inventor/Draggers/SoRotationDragger.cpp
Inventor/Draggers/SoRotationDraggerGeometry.cpp
Inventor/Draggers/Gizmo.cpp
SoFCOffscreenRenderer.cpp
Selection/SoFCSelectionAction.cpp
Quarter/QuarterWidget.cpp
View3DInventorViewer.cpp
PROPERTIES COMPILE_FLAGS ${EIGEN3_NO_DEPRECATED_COPY})
endif ()
target_sources(FreeCADGui PRIVATE ${FreeCADGui_SRCS})
target_link_libraries(FreeCADGui PUBLIC ${FreeCADGui_LIBS})
if (MSVC)
target_compile_definitions(FreeCADGui PRIVATE WIN32_LEAN_AND_MEAN)
target_compile_options(FreeCADGui PRIVATE /wd4251 /wd4273 /wd4275)
endif()
if (FREECAD_WARN_ERROR)
target_compile_warn_error(FreeCADGui)
endif()
SET_BIN_DIR(FreeCADGui FreeCADGui)
if(WIN32)
INSTALL(TARGETS FreeCADGui
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
else(WIN32)
INSTALL(TARGETS FreeCADGui
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
INSTALL(FILES Icons/freecad-icon-16.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/16x16/apps RENAME org.freecad.FreeCAD.png)
INSTALL(FILES Icons/freecad-icon-32.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/32x32/apps RENAME org.freecad.FreeCAD.png)
INSTALL(FILES Icons/freecad-icon-48.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/48x48/apps RENAME org.freecad.FreeCAD.png)
INSTALL(FILES Icons/freecad-icon-64.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/64x64/apps RENAME org.freecad.FreeCAD.png)
INSTALL(FILES Icons/freecad.svg DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/scalable/apps RENAME org.freecad.FreeCAD.svg)
INSTALL(FILES Icons/freecad.svg DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/pixmaps)
INSTALL(FILES Icons/freecad-doc.svg DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/scalable/mimetypes RENAME application-x-extension-fcstd.svg)
endif(WIN32)
set(FreeCADGui_Scripts
RemoteDebugger.ui
RemoteDebugger.py
)
set(FreeCADGui_Configs
3Dconnexion/3DConnexion.xml
)
add_custom_target(FreeCADGui_Resources ALL
SOURCES ${FreeCADGui_Scripts} ${FreeCADGui_Configs}
)
fc_copy_sources(FreeCADGui_Resources
${CMAKE_BINARY_DIR}/Ext/freecad/gui
${FreeCADGui_Scripts}
)
fc_target_copy_resource(FreeCADGui_Resources
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_DATADIR}
${FreeCADGui_Configs}
)
INSTALL(
FILES
${FreeCADGui_Scripts}
DESTINATION
Ext/freecad/gui
)
INSTALL(
FILES
${FreeCADGui_Configs}
DESTINATION
${CMAKE_INSTALL_DATADIR}/3Dconnexion
)
# Catppuccin Mocha themed icons (generated by icons/retheme.py)
INSTALL(
DIRECTORY
${CMAKE_SOURCE_DIR}/icons/themed/
DESTINATION
icons/themed
FILES_MATCHING
PATTERN "*.svg"
PATTERN "*.png"
)