Commit Graph

72 Commits

Author SHA1 Message Date
pre-commit-ci[bot]
25c3ba7338 All: Reformat according to new standard 2025-11-11 13:49:01 +01:00
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
Markus Reitböck
749ac36615 do not use precompiled header for setting global compiler definitions and to disable compiler warnings
only 4 of these warnings are still relevant, CMake shall be used to disable them

Compiler definitions:

  NOMINMAX:
    * is already globally defined in SetGlobalCompilerAndLinkerSettings.cmake

  WIN32_LEAN_AND_MEAN:
    * use CMake target_compile_options on relevant targets

Warnings that still occur:

  C4251, C4273, C4275: all related to dllimport / export
    * use CMake target_compile_options on relevant targets

  C4661: no suitable definition provied for explicit template instantiation request
    * triggered in Mesh because of Vector3D in Base - not all functions are defined in header
    * use CMake target_compile_options on relevant targets

Warnings that are Currently not triggered (fix code if they appear again):

  C4005: macro redefinition

  C4244: argument conversion, possible loss of data

  C4267: conversion from size_t to type, possible loss of data

  C4305: truncation from type1 to type2
    * only occurrence disabled in Reader.cpp

  C4522: multiple assignment operator specified

  C5208: unnamed class in typedef name

Obsolete Compiler warnings:

  C4181: not mentioned in Microsoft docs anymore

  C4290: C++ exception specification ignored except to indicate a function is not __declspec(nothrow)
    * throw(optional_type_list)  deprecated in C++17

  C4482: nonstandard extension used: enum 'enumeration' used in qualified name
    * not generated for compilers that support C++11

  C4503: 'identifier': decorated name length exceeded, name was truncated
    * obsolete since Visual Studio 2017

  C4786: not mentioned in Microsoft docs anymore
2025-09-11 20:21:04 -05:00
wmayer
b1a37aebbb CMake: Replace link_directories with target_link_directories 2025-09-08 19:04:38 +02:00
wmayer
93db4c7d8a CMake: Replace include_directories with target_include_directories 2025-09-08 19:04:34 +02:00
Joao Matos
ee4c9a6e8b PartDesign: Remove XML binding files. 2025-03-25 06:11:22 +01:00
tritao
16968aa3ee PartDesign: Convert XML bindings to Python API bindings model. 2025-03-21 23:14:24 +01:00
tritao
6c2c6847eb CMake: Cleanup targets with transitive dependencies 2025-03-17 12:12:06 +00:00
Benjamin Bræstrup Sayoc
755229df23 Build: suppress warnings from 3rd party libraries
Warnings from 3rd parties are not relevant and are only polluting the warning output. Marking these libraries as SYSTEM suppresses warning.

https://gcc.gnu.org/onlinedocs/cpp/Invocation.html#index-I
https://gcc.gnu.org/onlinedocs/cpp/System-Headers.html
2025-02-25 14:39:05 +00:00
Joao Matos
cc6ffb44de Core: Move PyCXX library to src/3rdParty. 2025-02-24 16:36:06 +00:00
Chris Hennes
68e934ba18 Merge pull request #15690 from bgbsww/bgbsww-toponamingAddFeatureRefine
Toponaming add feature refine class
2025-02-17 10:28:32 -06:00
Joao Matos
27ebc68a11 CMake: Modernize build files using outdated Python variables. 2025-02-16 10:21:26 -06:00
tritao
9636068460 Base: Move zipios library to 3rdParty folder. 2025-02-14 13:08:28 -06:00
bgbsww
ae46ea5e7b Toponaming: Refactor refine to its own FeatureRefine class 2024-09-14 23:24:43 -04:00
wmayer
4185605d5e clang/gcc: Add build option FREECAD_WARN_ERROR to force to make warnings into errors 2024-05-29 13:37:07 +02:00
hlorus
4f5dd40fa7 [PD] Add handlers for unified measurement facility 2024-04-29 09:27:22 -04:00
liukaiwen
4f8fe8fd4a [cmake] some definitions do not matter build now 2023-09-27 18:17:14 +08:00
liukaiwen
aef990d440 fix: json is a 3rdparty library, move to 3rdparty 2023-08-30 16:59:25 +02:00
wwmayer
1046bd14a8 Revert "[PD] App: precompiled header fixes" 2022-12-10 00:22:55 +01:00
Uwe
454dddb8ba [PD] App: precompiled header fixes
- use same naming scheme ans CMakeLists structure as for all other WBs
2022-12-09 19:26:38 +01:00
Jonas Bähr
a1776d3e74 Fix build on MacOS-X 10.14: missing Xerces include dir
This undoes most of the Xerces related part of the commits listed below.
The issue resolved here is that the Xerces include dir *is* set in the
CMakeLists.txt of src/Base, but it got removed from various App and Gui
dirs in src/Mod. If those now include a header from src/Base, which
itself includes xercesc, the build fails using Apple clang version 11.0.0
(clang-1100.0.33.17) on Mojave, configured using cmake 3.22.1, with
errors like the following:

In file included from .../src/Mod/Part/App/FeaturePartBoolean.cpp:34:
In file included from .../src/App/Application.h:33:
.../src/Base/Parameter.h:54:10: fatal error: 'xercesc/util/XercesDefs.hpp' file not found
 #include <xercesc/util/XercesDefs.hpp>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.

Finally, a full list of the commits that introduced this spurious include
dir optimization for reference:
- Drawing: commit 96ad045b91
- Image: commit dde71a21d5
- Import: commit c9d28b542f
- Inspection: commit d41f55f382
- Mesh: commit 19072b0538
- Part: commit fe213a48f0
- PartDesign: commit b037d8e240
- Path: commit f23fa31f42
- Points: commit bec723ba17
- Raytracing: commit 08d4ac63a3
- ReverseEnginering: commit 5ca787cb0e
- Robot: commit bad4809a1c
- Sketcher: commit 3c96daf105
- Spreadsheet: commit 66e8a2bef3
- Start: commit c9dee5e70a
- Surface: commit 6b04215be6
- TechDraw: commit 5e6699e48d
- Test: commit ea5b45b92c
- Web: commit ee6d631531
2022-08-24 07:40:04 +02:00
Uwe
b037d8e240 [PD] remove unused Xerces 2022-03-20 20:43:02 +01:00
wmayer
9ee60fd585 PD: Add common base class for Pad/Pocket 2021-11-20 10:34:01 +01:00
David Osterberg
59ec3cb141 PartDesign: New features AdditiveHelix and SubtractiveHelix
These features, based on the code for the Pipe class, allow the user
to simply create a helical sweep within PartDesign workbench.

Sample application is threads, springs, coils, augers, etc.

Also, remove needless requirement for positive cone angle on helixes.

Thanks to @bitacovir for helping with the icons
Thanks to @chennes for review
Thanks to @vosk for review
Thanks to @wwmayer for review

Enforce that links stay within scope for ProfileBased features
This also ensures that the Body itself is not used for creating features within
the body, causing a "Graph not a DAG" error.
2021-02-04 13:01:12 +01:00
Abdullah Tahiri
e80af8b4f2 PCH for Sketcher/PartDesign 2019-05-01 09:05:55 +02:00
wmayer
cdc507d9bb CMP0050: make PartDesign module aware of cmake policy 2018-08-20 17:19:04 +02:00
Stefan Tröger
de31528dda PartDesign: Make Base Feature compatible with GeoFeatureGroup. fixes #0003080
The Original BaseFeature implementation had some serious issues with scoped links. It failed completely for e.g. sketches on the BaseFeature as it made a local link to refere to a out of body object. The only solution to make this work correctly is to add a proxy object into the body which is alloed to exactly that, to link outside oof the body. Something like shapebinder.
2017-09-21 11:40:14 +02:00
Kurt Kremitzki
44f163178a PDN: Add simple hole test 2017-08-30 10:41:55 -03:00
Kurt Kremitzki
c62a773cee PDN: Add tests for Boolean, MultiTransform, Primitives, Shapebinder 2017-07-26 23:16:12 +02:00
Kurt Kremitzki
544e6587cb Add linear and polar pattern tests 2017-07-11 02:27:38 -05:00
Kurt Kremitzki
fb5aeeaa7b Add dressup feature test structure 2017-07-11 02:27:38 -05:00
Kurt Kremitzki
4eb59453e7 Break out PartDesign tests into own folder 2017-07-11 02:27:38 -05:00
DeepSOIC
d9c803ffce PartDesign: add FeaturePython
Opens a window to extend PartDesign with Python
2017-03-04 19:16:39 -03:00
Stefan Tröger
9969aac671 fix dependent copy references
to make them work with sketches an additional Part2DObject reference needed to be created
2016-04-12 18:12:19 +02:00
Stefan Tröger
c82e4117e9 add feature loft 2016-04-12 18:12:10 +02:00
Stefan Tröger
e7803eca61 add basic part design pipe infrastructure 2016-04-12 18:12:09 +02:00
Stefan Tröger
c3f35d9f05 add part design thickness 2016-04-12 18:12:08 +02:00
Stefan Tröger
8fdde38e75 add coordinate system datum 2016-04-12 18:12:07 +02:00
Stefan Tröger
52c8a19d4d basic infrastructure for part design primitives 2016-04-12 18:12:06 +02:00
Stefan Tröger
9a2f5eea65 allow non-sketch based additive and subtractive features 2016-04-12 18:12:06 +02:00
jrheinlaender
638cfd2682 Allow booleans of bodies in PartDesign 2016-04-12 18:11:51 +02:00
jrheinlaender
fe2e490645 Allow selecting back of base planes, miscellaneous fixes 2016-04-12 18:11:50 +02:00
jrheinlaender
5b3d5e6bd8 Moved generic Datum class to Part module to avoid Sketcher dependency on PartDesign 2016-04-12 18:11:49 +02:00
jrheinlaender
3e4986f163 Add skeleton support for datum features 2016-04-12 18:11:48 +02:00
jriegel
fc7db6369c Assembly import script & PartDesign Solid object 2016-04-12 18:11:46 +02:00
jriegel
b825571562 implement active body in PartDesign 2016-04-12 18:11:45 +02:00
wmayer
6944658bd4 + Add parametric feature to create face from sketches 2015-11-12 19:44:24 +01:00
wmayer
7d98705396 + harmonize XercesC cmake variables with official check 2015-07-28 14:17:49 +02:00
wmayer
d95003e92c + replace deprecated PYTHON_INCLUDE_PATH 2015-07-25 18:29:42 +02:00
wmayer
068452f0ac + add '_' as prefix for PartDesign module to fix name clash 2014-05-10 14:12:25 +02:00