Jacob Oursland
fb528dd9fc
python: Make const methods declared const in C++.
2025-04-16 20:19:41 -07:00
Chris Mayo
d91b3e0517
CMake: Fix duplicating DESTDIR in Designer plugin installation path
...
CMake already handles DESTDIR.
2025-04-14 11:18:26 -05:00
Kacper Donat
b300c80b90
Base: Use explicit pointer syntax for freecad_cast ( #20694 )
...
* Base: Use explicit pointer syntax for freecad_cast
This aligns our custom cast with other casts
* All: Use explicit pointer syntax for freecad_cast
2025-04-11 14:11:33 +00:00
Chris Hennes
fc782a6c8d
Addon Manager: Move to git submodule ( #20672 )
2025-04-08 16:40:31 +02:00
Chris Hennes
de13e777f4
Merge pull request #20643 from tritao/python-gen-include-pycxx
...
Tools: Add PyCXX includes to generated Python binding files.
2025-04-07 11:27:17 -05:00
Andrea
01609b5479
Remove old python files
...
Remove not necessary python files
2025-04-07 11:22:08 -05:00
Kacper Donat
35a9673a75
Base: Rename Base::freecad_dynamic_cast into freecad_cast
...
This is to make it shorter and easier to use. QT does the same thing
with their qobject_cast.
2025-04-07 10:32:28 -05:00
tritao
63ed3e8dff
Sketcher: Remove XML binding files.
...
These are not needed anyore with the Python bindings conversion.
2025-04-05 17:52:38 +02:00
tritao
80aca250ad
Tools: Add PyCXX includes to generated Python binding files.
2025-04-05 12:03:23 +01:00
Benjamin Nauck
bad0daf9dc
Refactor mapToInt/mapToUint
2025-04-01 08:02:42 +02:00
Benjamin Nauck
c97ce5b5e9
Tools: Add #include <limits> where used
2025-03-31 23:53:16 +02:00
Benjamin Nauck
f773550a47
Tools: Use std::numeric_limits and std::numbers instead of defines
2025-03-29 13:32:39 +01:00
Leif-Jöran Olsson
fb5ded6e53
Fixing ambiguiguous python shebang in installed script freecad-thumbnailer. Removed skip ci according to instruction.
2025-03-27 21:42:49 -05:00
tritao
8ae48c3c8a
Material: Remove XML binding files.
2025-03-26 13:01:41 +01:00
Joao Matos
e9fda68693
Material: Convert XML bindings to Python.
2025-03-26 12:18:02 +01:00
tritao
c3e10d4331
Tools: Improve handling of sequence_protocol in Python bindings generator.
...
This allows SequenceProtocol being initialized without all members which
simplifies Python authoring of binding files.
2025-03-26 12:18:02 +01:00
Joao Matos
faabc3d7d6
Part: Remove XML binding files.
...
This PR removes the Part XML API bindings files now that we have
equivalent Python binding files.
2025-03-25 21:28:52 +01:00
Joao Matos
ee4c9a6e8b
PartDesign: Remove XML binding files.
2025-03-25 06:11:22 +01:00
Joao Matos
74493358da
Gui: Remove XML binding files.
2025-03-24 22:47:33 +01:00
Johannes Thyssen Tishman
c8b1ea2836
Configure and install thumbnailer
...
Currently the file "src/XDGData/FreeCAD.thumbnailer" gets installed, but
the associated freecad-thumbnailer script isn't. Install the script,
too.
While here, have the paths to the default icon and freecad-thumbnailer
script follow ${CMAKE_INSTALL_DATAROOTDIR} and ${CMAKE_INSTALL_BINDIR}
respectively.
2025-03-24 13:46:17 -03:00
tritao
176f91eea8
App: Remove XML binding files.
...
This PR removes the App XML API bindings files now that we have
equivalent Python binding files.
2025-03-21 16:43:59 +01:00
tritao
997982ad20
Tools: Use ModuleName when determining which modules to compare against XML bindings.
2025-03-21 16:43:59 +01:00
Joao Matos
4ed1c54ab2
Tools: Improve identation handling for attribute docstring comments.
2025-03-20 11:07:27 +01:00
tritao
8d36987f16
Base: Remove XML binding files.
2025-03-19 20:04:19 -05:00
tritao
723a25c57d
Tools: Re-enable XML comparison mode Python API bindings generator.
2025-03-19 08:32:06 -05:00
tritao
6c2c6847eb
CMake: Cleanup targets with transitive dependencies
2025-03-17 12:12:06 +00:00
hasecilu
31379fcb8f
Measure: add translation source file for uploading to Crowdin
2025-03-13 10:21:10 -06:00
Chris Hennes
be8b92182c
Merge pull request #19921 from mosfet80/QT_CLEAN
...
REMOVE old QT<= 5.14 code
2025-03-11 20:54:59 +00:00
Andrea
cd5c46ba18
Remove unnecessary check (duplicated)
...
before including the library, it is uselessly checked if the variable __QtAll__ and __InventorAll__ have been defined. The same check is performed again once the library is included
2025-03-10 21:53:00 +01:00
Chris Hennes
d8ca8766b1
Merge pull request #20036 from hyarion/fix/remove-pyexport-warnings
...
Suppress erroneous warnings for GCC in python template
2025-03-07 14:41:22 +00:00
Benjamin Nauck
486fb593db
Tools: Suppress erroneous warnings for GCC
2025-03-06 21:47:50 +01:00
Chris Hennes
4590289e4f
Merge pull request #19953 from hyarion/fix/remove-pyexport-warnings
...
Python bindings: Use designated initializers and remove zero-initialized fields
2025-03-06 14:38:45 +00:00
Andrea
5464ada40c
Remove old qt code
...
new round of removal following the report of @benj5378 .
.
2025-03-05 09:46:35 +01:00
tritao
7d28636e05
Remove Python-generated bindings comparison against XML-generated version.
2025-03-03 10:22:41 -06:00
Benjamin Nauck
0952d4de63
Use designated initializers and remove zero-initialized fields
2025-03-03 11:02:19 +01:00
Joao Matos
8e7c3e9f2f
Tools: Update binding generator.
2025-03-01 16:23:54 +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
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
Joao Matos
cc6ffb44de
Core: Move PyCXX library to src/3rdParty.
2025-02-24 16:36:06 +00:00
tritao
8ba573712c
Tools: Introduce a Python-based API bindings template generator.
...
This extends the existing XML-based template generator to allow an
additional kind of Python-based input.
The Python code is read as source code to an AST to a typed model
equivalent to the existing XML model, and processed by the existing
code templates into compatible code.
This provides a few benefits, namely readability is much increased,
but more importantly, it allows associating the APIs with Python's new
typing information, which will allow to provide accurate type hinting
without additional downstream processing in the future.
Right now this is just a proof-of-concept but if the approach is
well received, then a more complete implementation can be done with
further conversion of existing binding files.
Here is an example of how it looks, though I still think the metadata
is too verbose and can be made to look nicer with some further work.
```python
from ..Base.Metadata import metadata
from ..Base.Persistence import PersistencePy
from typing import Any, Optional, List
@metadata(
Father="PersistencePy",
Name="DocumentPy",
Twin="Document",
TwinPointer="Document",
Include="Gui/Document.h",
Namespace="Gui",
FatherInclude="Base/PersistencePy.h",
FatherNamespace="Base"
)
class DocumentPy(PersistencePy):
"""
This is a Document class.
Author: Werner Mayer (wmayer@users.sourceforge.net )
Licence: LGPL
"""
def __init__(self, *args: Any, **kwargs: Any) -> None:
"""
Constructor for DocumentPy.
"""
super(DocumentPy, self).__init__(*args, **kwargs)
pass
def show(self, objName: str) -> None:
"""
show(objName) -> None
Show an object.
Parameters:
objName (str): Name of the `Gui.ViewProvider` to show.
"""
pass
```
2025-02-21 16:32:13 +00:00
tritao
8bb8a36012
Tools: Add documentation for the Python-based bindings system.
2025-02-21 13:18:36 +00:00
Joao Matos
27ebc68a11
CMake: Modernize build files using outdated Python variables.
2025-02-16 10:21:26 -06:00
Andrea
de9bd5e1ce
change MIN_boost_version
...
ubuntu version 20.04 is no longer supported.
The minimum boost version used for freecad is now 1.74 (ubuntu 22.04) https://launchpad.net/ubuntu/jammy/+package/libboost-system-dev
2025-02-15 13:33:32 -06:00
Chris Hennes
6b59e4b2ec
Merge pull request #19479 from tritao/base-cleanup-xml-generation
...
Base: Minor cleanups to base XML bindings generation
2025-02-10 09:34:50 -06:00
tritao
adf8e62ec0
Tools: Move bindings generator into generator folder.
2025-02-08 16:11:01 +00:00
tritao
0fda88daeb
Tools: Add verbose mode to Python bindings generator.
2025-02-08 13:14:22 +00:00
tritao
f4f0b6affc
Tools: Refactor existing XML generator for extra readability.
2025-02-08 13:14:22 +00:00
mosfet80
20ac96f4c8
Delete src/Tools/RegExp directory
...
remove unnecessary tool
2025-02-07 20:29:34 -06:00
pre-commit-ci[bot]
c8b72c144e
[pre-commit.ci] auto fixes from pre-commit.com hooks
...
for more information, see https://pre-commit.ci
2025-02-03 22:51:14 +00:00
tritao
65466d580b
Gui: Reorganize the selection files into a top Selection folder.
2025-02-03 17:56:57 +01:00