Commit Graph

480 Commits

Author SHA1 Message Date
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
Chris Hennes
dced463dc6 Merge pull request #19428 from tritao/base-tracy-profiler
Base: Add Tracy frame profiling support.
2025-03-14 04:12:05 +00:00
Joao Matos
7ae14d6bd5 Base: Add build support and instrumentation for the Tracy profiler. 2025-03-14 03:41:30 +00:00
Chris Hennes
25c71dd99d Merge pull request #20107 from 3x380V/pip_pyside6
CMake: Fix PySide6 pip search
2025-03-11 04:21:12 +00:00
Chris Hennes
872ac0c37d Merge pull request #19998 from chennes/silenceCoinWarning
CMake: Silence Coin3D deprecation warning
2025-03-10 15:49:59 +00:00
Ladislav Michl
f488074088 CMake: Fix PySide6 pip search
Since ac77cd779e ("CMake: PySide cleanup") compatibility variables depends
on PySide6_FOUND, but setting that was later removed, leaving pip installed
PySide6 undetected.

Fixes: 9119d392c9 ("CMake: Fix PySide6 search")
2025-03-10 14:15:49 +01:00
Chris Hennes
a1a9d370b2 CMake: Silence Coin3D deprecation warning 2025-03-04 20:37:47 -06:00
Chris Hennes
6e269b0f81 CMake: If using Libpack, require at least v3.1
Previous versions did not include pybind11, but the error message from that failure is not terribly informative. This way the exact means of fixing the problem is provided in the message.
2025-03-04 19:26:18 -06:00
mosfet80
1ab8bed308 clean FindOCC.cmake (#19755)
* clean FindOCC.cmake

cmake version is always major then 3.16.3
.

* Update cMake/FindOCC.cmake

Co-authored-by: Benjamin Bræstrup Sayoc <benj5378@outlook.com>

* Update cMake/FindOCC.cmake

Co-authored-by: Benjamin Bræstrup Sayoc <benj5378@outlook.com>

---------

Co-authored-by: Benjamin Bræstrup Sayoc <benj5378@outlook.com>
2025-03-04 16:10:12 -06:00
wmayer
c532683060 CMake: Remove FREECAD_USE_PYBIND11 as a build option 2025-03-04 08:07:46 -06:00
Maxim Moskalets
b59cd79427 Add support of compile/link jobs pooling 2025-03-03 18:51:27 -06:00
Joao Matos
855ad6c709 CMake: Add GCC/Clang -fdiagnostics=color compiler option. 2025-03-03 18:13:39 +01:00
Chris Hennes
0c4ed644c4 Merge pull request #19450 from tritao/base-python-api-model
Base: Modernize Python bindings APIs
2025-03-02 16:34:25 -06:00
Chris Hennes
729f09ede4 Merge pull request #19626 from tritao/qt-gl-cleanup
Gui: Remove QtOpenGL.h.
2025-03-02 16:22:57 -06:00
Joao Matos
8e7c3e9f2f Tools: Update binding generator. 2025-03-01 16:23:54 +00:00
marioalexis
84681f0123 CMake: Add FREECAD_USE_PYSIDE and FREECAD_USE_SHIBOKEN to final report 2025-02-26 14:25:40 -03:00
marioalexis
9119d392c9 CMake: Fix PySide6 search 2025-02-26 14:25:40 -03:00
marioalexis
191b71c0cc CMake: Fix PySide major version comparison 2025-02-26 14:25:40 -03:00
Joao Matos
91e94ba1dd Gui: Cleanup Qt OpenGL usings in QtOpenGL.h.
Previously the code defined compatiblity usings in `QtOpenGL.h` header,
which I think was added for backwards compatiblity with previous Qt
OpenGL widgets.

As far as I can tell, this is not necessary anymore, and can be cleaned
up.
2025-02-25 23:03:51 +00:00
Chris Hennes
64e5e4a137 CMake: Force OpenGL to use legacy 2025-02-25 13:26:02 -06:00
Chris Hennes
5f35875c46 Merge pull request #19516 from tritao/tools-python-bindings-gen
Tools: Introduce a new Python-based C++ bindings generator
2025-02-24 16:39:24 +00:00