Commit Graph

72 Commits

Author SHA1 Message Date
pre-commit-ci[bot]
9fe130cd73 All: Reformat according to new standard 2025-11-11 13:49:01 +01:00
Markus Reitböck
88c6f176bb 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
496b31b087 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
10bc43a842 CMake: Replace link_directories with target_link_directories 2025-09-08 19:04:38 +02:00
wmayer
ac51455a0a CMake: Replace include_directories with target_include_directories 2025-09-08 19:04:34 +02:00
Joao Matos
bbe9fbccb5 PartDesign: Remove XML binding files. 2025-03-25 06:11:22 +01:00
tritao
c880b5704f PartDesign: Convert XML bindings to Python API bindings model. 2025-03-21 23:14:24 +01:00
tritao
cdab9c7837 CMake: Cleanup targets with transitive dependencies 2025-03-17 12:12:06 +00:00
Benjamin Bræstrup Sayoc
ee1c73cd04 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
15076cb504 Core: Move PyCXX library to src/3rdParty. 2025-02-24 16:36:06 +00:00
Chris Hennes
57ebceec01 Merge pull request #15690 from bgbsww/bgbsww-toponamingAddFeatureRefine
Toponaming add feature refine class
2025-02-17 10:28:32 -06:00
Joao Matos
aace8f7bee CMake: Modernize build files using outdated Python variables. 2025-02-16 10:21:26 -06:00
tritao
80b299bb88 Base: Move zipios library to 3rdParty folder. 2025-02-14 13:08:28 -06:00
bgbsww
2a19d8f6fb Toponaming: Refactor refine to its own FeatureRefine class 2024-09-14 23:24:43 -04:00
wmayer
560cab6f31 clang/gcc: Add build option FREECAD_WARN_ERROR to force to make warnings into errors 2024-05-29 13:37:07 +02:00
hlorus
6318586353 [PD] Add handlers for unified measurement facility 2024-04-29 09:27:22 -04:00
liukaiwen
329904a055 [cmake] some definitions do not matter build now 2023-09-27 18:17:14 +08:00
liukaiwen
5048074542 fix: json is a 3rdparty library, move to 3rdparty 2023-08-30 16:59:25 +02:00
wwmayer
c64ca7b78f Revert "[PD] App: precompiled header fixes" 2022-12-10 00:22:55 +01:00
Uwe
ab0a15139b [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
46cee50bd5 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 f4411478d106ba9f4827754a50efa53bd7767a66
- Image: commit e3476815c04c571199779bd1e444b950e6398025
- Import: commit b7b264e52c8fd97e83987c4ce42ce563170c8918
- Inspection: commit 1f64d8b1b8fcabe983c6e5e624d65766b4429ea0
- Mesh: commit 5a8fed0720d681cdbb9fedc840d2532c4f2f6042
- Part: commit 26bb65f11f4b51e5e47b65b2d6049ece10705a83
- PartDesign: commit f4e49f2aecf08f2337e84510ed019b7fa4b685a3
- Path: commit e3d9cc98577d2073297d55ffd8de28dd50f8444c
- Points: commit 09f3e867cdccd31294cced4e3c73015d3add3f4a
- Raytracing: commit 7b92dedc53f09e2ce8365408f3003e5700aebfc8
- ReverseEnginering: commit eeacc51ad0cd82e5f17d63207f78f79eb20bf9a9
- Robot: commit 4d06684cbd0328e4f43c78b5dab7e7fcebab148d
- Sketcher: commit 079125665495a08a7e2e2a4f01da406128dca625
- Spreadsheet: commit 514097954e95c04a7ec9d7e8ec1afc3aac3dd8d
- Start: commit 2ea2bb0dc393d7b8b41e9137c6d4ae40ce29719d
- Surface: commit 272268dd6c0b460ae9aeecdf371495ea26aa044d
- TechDraw: commit c70fdc3e0aa6b409626a6fa6b7266d05f3338c6d
- Test: commit 49a07b121e08e9bf3fef0f414a8da5602533592e
- Web: commit a93a23d7e4da13b2d5c37ac087b2dcf41aae197d
2022-08-24 07:40:04 +02:00
Uwe
644d3920d3 [PD] remove unused Xerces 2022-03-20 20:43:02 +01:00
wmayer
877e8d14e5 PD: Add common base class for Pad/Pocket 2021-11-20 10:34:01 +01:00
David Osterberg
cb2da22e86 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
8350a6f55b PCH for Sketcher/PartDesign 2019-05-01 09:05:55 +02:00
wmayer
4d28a062fc CMP0050: make PartDesign module aware of cmake policy 2018-08-20 17:19:04 +02:00
Stefan Tröger
6ae8b6482e 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
0639b7f113 PDN: Add simple hole test 2017-08-30 10:41:55 -03:00
Kurt Kremitzki
b5682d92ed PDN: Add tests for Boolean, MultiTransform, Primitives, Shapebinder 2017-07-26 23:16:12 +02:00
Kurt Kremitzki
8f6b79e37c Add linear and polar pattern tests 2017-07-11 02:27:38 -05:00
Kurt Kremitzki
6c00984f5f Add dressup feature test structure 2017-07-11 02:27:38 -05:00
Kurt Kremitzki
a09e3a8cfd Break out PartDesign tests into own folder 2017-07-11 02:27:38 -05:00
DeepSOIC
ec29adfb55 PartDesign: add FeaturePython
Opens a window to extend PartDesign with Python
2017-03-04 19:16:39 -03:00
Stefan Tröger
b610dcc97c 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
de24cbc189 add feature loft 2016-04-12 18:12:10 +02:00
Stefan Tröger
835085bc7c add basic part design pipe infrastructure 2016-04-12 18:12:09 +02:00
Stefan Tröger
6301fce72c add part design thickness 2016-04-12 18:12:08 +02:00
Stefan Tröger
07099e1163 add coordinate system datum 2016-04-12 18:12:07 +02:00
Stefan Tröger
3690040dea basic infrastructure for part design primitives 2016-04-12 18:12:06 +02:00
Stefan Tröger
b0817ff086 allow non-sketch based additive and subtractive features 2016-04-12 18:12:06 +02:00
jrheinlaender
dfce69c4b0 Allow booleans of bodies in PartDesign 2016-04-12 18:11:51 +02:00
jrheinlaender
2d7813295b Allow selecting back of base planes, miscellaneous fixes 2016-04-12 18:11:50 +02:00
jrheinlaender
857ede8847 Moved generic Datum class to Part module to avoid Sketcher dependency on PartDesign 2016-04-12 18:11:49 +02:00
jrheinlaender
8002584a52 Add skeleton support for datum features 2016-04-12 18:11:48 +02:00
jriegel
6dec685ba7 Assembly import script & PartDesign Solid object 2016-04-12 18:11:46 +02:00
jriegel
5b23d06cfe implement active body in PartDesign 2016-04-12 18:11:45 +02:00
wmayer
c082cc47a1 + Add parametric feature to create face from sketches 2015-11-12 19:44:24 +01:00
wmayer
c2c83a353b + harmonize XercesC cmake variables with official check 2015-07-28 14:17:49 +02:00
wmayer
d2b7b730d3 + replace deprecated PYTHON_INCLUDE_PATH 2015-07-25 18:29:42 +02:00
wmayer
0f34099513 + add '_' as prefix for PartDesign module to fix name clash 2014-05-10 14:12:25 +02:00