500 Commits

Author SHA1 Message Date
Benjamin Nauck a0c97a102e Part: Add HarfBuzz text shaping for proper kerning in makeTextWires
Replace the character-by-character positioning loop with HarfBuzz
text shaping. The old code used FT_Get_Kerning which only reads
legacy kern tables. HarfBuzz handles both GPOS kerning and legacy
kern tables, as well as ligatures and complex script shaping.
2026-03-10 12:54:45 +01:00
Chris cee71e1fb1 CMake: Add check for Qt/PySide version mismatch (#27156)
* CMake: fixes issue #27065 check for Qt/PySide version mismatches
* lint / format several PySide related CMake files
2026-03-07 15:12:57 -06:00
Chris Hennes ed6c0c8111 Merge pull request #25990 from Lgt2x/find-netgen-fix
CMake: require Netgen when BUILD_FEM_NETGEN is ON, don't fail silently
2026-02-03 23:10:38 +01:00
chris 1f213dd498 cmake: fix issue #25048 have cmake fail when pivy and swig use different API versions, update status messages 2026-01-20 19:08:18 -06:00
Chris 12d1dba109 Build: cmake: fixes #26247 update cmake to work with new required dep lark for BIM (#26407) 2026-01-11 19:55:38 -06:00
Fabio Rossi 419e1822b8 fix hdf5 detection
avoid side-effects of reusing cached variables (defined PCHDF5_FOUND for
pkgconfig and HDF5_HEAD_FOUND for hdf5.h detections)
2026-01-11 19:50:59 -06:00
Louis Gombert 193a789354 CMake: only find Netgen when using internal smesh 2026-01-09 18:42:25 +01:00
Louis Gombert 96f8b3a43b CMake: require Netgen when BUILD_FEM_NETGEN is ON, don't fail silently 2026-01-09 18:42:25 +01:00
Joao Matos 41395f2051 Add PartDesign build dependency to Import.
Import now depends on PartDesign, so ensure CMake configure-time
dependency enforcement requires PartDesign alongside Part.

Fixes build regression from
https://github.com/FreeCAD/FreeCAD/commit/6fd6558040bb61cc1a9d35fd360cb1a169276cd3.
2025-11-02 15:59:06 -06:00
Leandro Heck e4f36afcb3 Gui: Use system dialogs by default (#24882)
* Fix the selector of the FileDialog and add the same default settings for the ColorDialog.

* Add option to set the default ColorDialog

* Use system dialog by default

* Remove new env var

* Fix the native file dialog selector

* Adjust env variable name

* Adjust env variable name
2025-11-02 16:50:48 +01:00
Furgo ffc6f840bd Core: FreeCadMacros.cmake:fc_copy_sources ensure parent directory is created before copy or symlink creation
Fixes: #24432
2025-10-05 21:08:34 -05:00
Chris Hennes 16906e93db Merge pull request #24240 from mrpilot2/cmake_pch_mods_part_2
Mods: use CMake to generate precompiled headers on all platforms
2025-09-26 09:46:26 -05:00
chris 0f6d00d2a5 fix issue #23829 build with boost v1.89 and greater 2025-09-24 22:12:47 -05:00
marioalexis 8547e798fb CMake: Fix Eigen3 version search 2025-09-24 21:56:56 -05:00
Markus Reitböck 2ce0323b8f cleanup remaining implementations of precompiled headers 2025-09-24 20:08:57 +02:00
Chris Hennes c26e3e9756 Base: Allow all valid Python 3 identifier characters
Note: Does not check for keywords, only character classes (not a change from the original code).
2025-08-31 21:39:49 +02:00
Jiří Pinkava 2cf5138654 CMake: remove unused PYSIDE_WRAP_UI macro 2025-08-24 22:50:56 -05:00
Chris Hennes 26c6aa934d Tests: Add tests for timestamp-based backups 2025-08-04 17:51:15 +02:00
Jacob Oursland b90a909fa5 CMake: remove unused FREECAD_USE_OCC_VARIANT. 2025-07-23 22:00:17 -07:00
Chris Hennes 121363311a CMake: Move creation of qt.conf 2025-07-19 11:44:07 -05:00
Chris Hennes 066fc1acc0 CMake: Explictly add QtOpenGLWidgets
Necessary for manually-compiled Qt 6.9 builds.
2025-07-19 17:17:09 +02:00
Chris Hennes b8da3568d2 CMake: Switch default Qt to Qt6 2025-06-08 00:38:03 +02:00
wmayer 8b1df6f00f Gui: Move define HAS_QTBUG_129596 to separate header file 2025-05-30 18:04:33 +02:00
chris dc7ceddc50 fix for #20656 2025-05-26 18:07:12 +02:00
Pieter Hijma 238957fb16 Fix a cyclic build dependency
Before this commit, Draft depended on BIM and BIM depended on Draft.
With this commit, BIM depends on Draft.
2025-05-15 18:50:17 +02:00
Pieter Hijma 9ea0f32692 Fix finding hdf5 on CMake reconfigure 2025-05-14 13:49:09 -05:00
FilippoR ff4740d082 Tests: Add FREECAD_USE_EXTERNAL_GTEST cmake option (#21190)
Add FREECAD_USE_EXTERNAL_GTEST cmake option and fix build with external libraries
2025-05-08 15:41:48 -05:00
Chris Hennes 7ba8b1f2ba Merge pull request #20891 from ickby/FEM_python_filter
FEM: Enabling postprocessing filters written in python, and adding a glyph example
2025-05-05 21:19:49 -05:00
marcuspollio c4ce2fb44a Revert: Enable pcl by default on non windows systems #20372 2025-05-05 11:34:19 -04:00
Jacob Oursland 9e9024537c CMake: Do not optimize debug builds. 2025-05-05 10:20:45 +02:00
David Carter 24df826865 Merge pull request #21046 from davesrocketshop/issue_13922_2
Update module dependencies to ensure that automated testing code is considered as well as direct dependencies. Update some automated tests to eliminate unwanted dependencies.
2025-05-04 17:02:50 -05:00
Stefan Tröger ce25de290e FEM: Fix typos in python post processing code 2025-05-02 09:25:57 +02:00
Stefan Tröger 0217a2176e Fem: make python filter build process more elegant 2025-05-02 09:25:56 +02:00
Stefan Tröger 491923e41e Fem: Implement basic python filter functionality and glyph example 2025-05-02 09:25:56 +02:00
Kacper Donat 2ea84bc336 CMake: Detect changes in .pyi file with the same name 2025-04-24 16:40:24 -05:00
Jacob Oursland c56ae33493 CMake: use job pools to restrict number of concurrent compilers and linkers.
When using Ninja build system, CMake can specify job pools for number of concurrent compilers
and concurrent linkers.  This PR employes the heuristic of max number of compilers as available
physical ram / 1 GiB and a single linker instance to prevent using excessive RAM.  Modern
linkers are multithreaded and should not be run concurrently due to risk of resource exhaustion.
2025-04-15 13:04:22 +02:00
Jackson Oursland 5875f0a90c CMake: set optimization of debug builds to -Og. (#20780)
* CMake: set optimization of debug builds to -Og.

* Update cMake/FreeCAD_Helpers/SetGlobalCompilerAndLinkerSettings.cmake

Co-authored-by: Benjamin Nauck <benjamin@nauck.se>

* Fix indentation level

---------

Co-authored-by: Benjamin Nauck <benjamin@nauck.se>
2025-04-14 21:34:46 +00:00
Chris Hennes ee426de9b9 CMake: Only set /NODEFAULTLIB for MSVC < 19.30
Corresponds to anything earlier than VS 2022.
2025-04-07 11:23:47 -05:00
Andrea e537278f12 Cosmetic Fix
Fix double "--" during print configuration  :

----   Version:  7.1.9
-- -- Found OpenCASCADE version: 7.8.1
-- -- OpenCASCADE include directory: /usr/include/opencascade
-- -- OpenCASCADE shared libraries directory: /usr/lib/x86_64-linux-gnu
-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libOpenGL.so
-- VTK components:
-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libOpenGL.so  found components: OpenGL GLX

.
2025-04-05 23:00:07 -05:00
Chris Hennes b3d8020e77 CMake: Allow external libE57Format 2025-04-01 07:55:25 +02:00
David Carter 31e43a8381 Materials: Build external materials support conditionally
Adds a new build option BUILD_MATERIAL_EXTERNAL which is off by default.

When disabled, the external interface is not built. This allows the
code to be tested thoroughly before reaching the end user.
2025-03-31 22:24:53 +02:00
mosfet80 a8cf308ea0 Update SetupLibFmt.cmake
update fmt to last version
2025-03-31 10:49:16 -05:00
Joao Matos f76d559395 CMake: Fix generate_from_py macro for temporary pyi files. 2025-03-26 12:18:02 +01:00
Adrian Insaurralde 065c1fe0fd Enable pcl by default on non windows systems 2025-03-25 10:14:56 +01:00
Andrea fe951f6332 Update Eigen Requirement
ubuntu 22.04 use eigen 3.4. The minimum eigen version is raised to 3.4.
Old cmake code is also removed.
2025-03-24 21:09:48 -05:00
Joao Matos 0206ff59cd CMake: Fix build dependency tracking for Python bindings generation.
This caused a rebuild to always happen due to incorrect dependency
tracking.

Fixes https://github.com/FreeCAD/FreeCAD/issues/20402.
2025-03-24 21:43:31 +01:00
Furgo d4f99901ae Do not specify a version in FindOCC.cmake 2025-03-22 16:49:33 -03:00
mosfet80 3dd7a1cc52 Remove support to oldest occ <7.5 (#20084)
* remove support to oldest occ <7.5

The  os ubuntu 22.04 not supported use occ 7.5.1.
There is a lot of code implemented to support even older versions.
The patch removes support for versions lower than occ 7.5.0

* .

* move include library

#pieterhijma  change request :

* removed deprecated functions

get/setAngle functions has been removed with OCC 7.5
2025-03-21 13:06:47 +01:00
Chris Hennes d09d2c02bb Merge pull request #17779 from wwmayer/noboostpy
Remove support for Boost.Python
2025-03-17 00:00:32 -05:00
tritao 35f89deb80 Fix regression in Python setup with old Shiboken.
https://github.com/FreeCAD/FreeCAD/pull/19635#issuecomment-2725612407
2025-03-14 21:11:11 +00:00