@@ -53,19 +53,6 @@ For development releases check the [weekly-builds page](https://github.com/FreeC
Other options are described at the [wiki Download page](https://wiki.freecad.org/Download).
-Build Status
-------------
-
-| Master | 0.20 | Translation |
-|:------:|:----:|:-----------:|
-|[![Master][freecad-master-status]][gitlab-branch-master]|[![0.20][freecad-0.20-status]][gitlab-branch-0.20]|[](https://crowdin.com/project/freecad)|
-
-[freecad-0.20-status]: https://gitlab.com/freecad/FreeCAD-CI/badges/releases/FreeCAD-0-20/pipeline.svg
-[freecad-master-status]: https://gitlab.com/freecad/FreeCAD-CI/badges/master/pipeline.svg
-[gitlab-branch-0.20]: https://gitlab.com/freecad/FreeCAD-CI/-/commits/releases/FreeCAD-0-20
-[gitlab-branch-master]: https://gitlab.com/freecad/FreeCAD-CI/-/commits/master
-[travis-builds]: https://travis-ci.org/FreeCAD/FreeCAD/builds
-
Compiling
---------
diff --git a/SECURITY.md b/SECURITY.md
index 6a0ffc6c4a..6131ab73fe 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -21,9 +21,9 @@ FreeCAD implements security fixes to the current release series, and to the curr
| Version | Supported |
|---------| ------------------ |
+| 0.22dev | :white_check_mark: |
| 0.21 | :white_check_mark: |
-| 0.20.2 | :white_check_mark: |
-| < 0.20 | :x: |
+| < 0.21 | :x: |
## Reporting a Vulnerability
diff --git a/cMake/FindCoin3DDoc.cmake b/cMake/FindCoin3DDoc.cmake
index c6c92f2608..70ae9e1572 100644
--- a/cMake/FindCoin3DDoc.cmake
+++ b/cMake/FindCoin3DDoc.cmake
@@ -54,28 +54,8 @@ IF (COIN3D_FOUND)
${CMAKE_BINARY_DIR}/src/Doc
)
IF( EXISTS ${COIN3D_DOC_TAGFILE})
- SET( COIN3D_DOC_FOUND "YES"
- )
- #ELSE( EXISTS ${COIN3D_DOC_TAGFILE})
- # find_program(WGET_PROG wget
- # )
- # IF( EXISTS ${WGET_PROG})
- # execute_process(COMMAND ${WGET_PROG}
- # -P ${CMAKE_BINARY_DIR}/src/Doc
- # ${COIN3D_DOC_PATH}/coin.tag
- # )
- # find_file(COIN3D_DOC_TAGFILE coin.tag
- # ${CMAKE_BINARY_DIR}/src/Doc
- # )
- # IF( EXISTS ${COIN3D_DOC_TAGFILE})
- # SET( COIN3D_DOC_FOUND "YES"
- # )
- # ENDIF( EXISTS ${COIN3D_DOC_TAGFILE})
- #
- # ENDIF( EXISTS ${WGET_PROG})
-
+ SET( COIN3D_DOC_FOUND "YES" )
ENDIF( EXISTS ${COIN3D_DOC_TAGFILE})
-
ENDIF( EXISTS ${COIN3D_DOC_PATH})
ENDIF(APPLE)
ENDIF(WIN32)
diff --git a/cMake/FindOCC.cmake b/cMake/FindOCC.cmake
index 48e5c98750..32078cf2de 100644
--- a/cMake/FindOCC.cmake
+++ b/cMake/FindOCC.cmake
@@ -160,11 +160,10 @@ if(OCC_FOUND)
TKService
TKV3d
)
- if(OCC_VERSION_STRING VERSION_LESS 6.7.3)
- list(APPEND OCC_OCAF_LIBRARIES TKAdvTools)
- elseif(NOT OCC_VERSION_STRING VERSION_LESS 7.5.0)
+
+ if(NOT OCC_VERSION_STRING VERSION_LESS 7.5.0)
list(APPEND OCC_OCAF_LIBRARIES TKRWMesh)
- endif(OCC_VERSION_STRING VERSION_LESS 6.7.3)
+ endif(NOT OCC_VERSION_STRING VERSION_LESS 7.5.0)
message(STATUS "-- Found OCE/OpenCASCADE version: ${OCC_VERSION_STRING}")
message(STATUS "-- OCE/OpenCASCADE include directory: ${OCC_INCLUDE_DIR}")
message(STATUS "-- OCE/OpenCASCADE shared libraries directory: ${OCC_LIBRARY_DIR}")
diff --git a/cMake/FreeCAD_Helpers/InitializeFreeCADBuildOptions.cmake b/cMake/FreeCAD_Helpers/InitializeFreeCADBuildOptions.cmake
index fc4344adbd..88081f2467 100644
--- a/cMake/FreeCAD_Helpers/InitializeFreeCADBuildOptions.cmake
+++ b/cMake/FreeCAD_Helpers/InitializeFreeCADBuildOptions.cmake
@@ -113,7 +113,7 @@ macro(InitializeFreeCADBuildOptions)
option(BUILD_MATERIAL "Build the FreeCAD material module" ON)
option(BUILD_MESH "Build the FreeCAD mesh module" ON)
option(BUILD_MESH_PART "Build the FreeCAD mesh part module" ON)
- option(BUILD_FLAT_MESH "Build the FreeCAD flat mesh module" OFF)
+ option(BUILD_FLAT_MESH "Build the FreeCAD flat mesh module" ON)
option(BUILD_OPENSCAD "Build the FreeCAD openscad module" ON)
option(BUILD_PART "Build the FreeCAD part module" ON)
option(BUILD_PART_DESIGN "Build the FreeCAD part design module" ON)
@@ -133,6 +133,7 @@ macro(InitializeFreeCADBuildOptions)
option(BUILD_SURFACE "Build the FreeCAD surface module" ON)
option(BUILD_VR "Build the FreeCAD Oculus Rift support (need Oculus SDK 4.x or higher)" OFF)
option(BUILD_CLOUD "Build the FreeCAD cloud module" OFF)
+ option(ENABLE_DEVELOPER_TESTS "Build the FreeCAD unit tests suit" ON)
if(MSVC)
option(BUILD_FEM_NETGEN "Build the FreeCAD FEM module with the NETGEN mesher" ON)
diff --git a/cMake/FreeCAD_Helpers/PrintFinalReport.cmake b/cMake/FreeCAD_Helpers/PrintFinalReport.cmake
index d248210bc5..6aaa10b587 100644
--- a/cMake/FreeCAD_Helpers/PrintFinalReport.cmake
+++ b/cMake/FreeCAD_Helpers/PrintFinalReport.cmake
@@ -76,7 +76,7 @@ macro(PrintFinalReport)
value(CMAKE_CXX_STANDARD)
value(CMAKE_CXX_FLAGS)
value(CMAKE_BUILD_TYPE)
- value(BUILD_TEST)
+ value(ENABLE_DEVELOPER_TESTS)
value(FREECAD_USE_FREETYPE)
value(FREECAD_USE_EXTERNAL_SMESH)
value(BUILD_SMESH)
diff --git a/cMake/FreeCAD_Helpers/SetupQt.cmake b/cMake/FreeCAD_Helpers/SetupQt.cmake
index f710bb1185..567b5cd9fa 100644
--- a/cMake/FreeCAD_Helpers/SetupQt.cmake
+++ b/cMake/FreeCAD_Helpers/SetupQt.cmake
@@ -23,7 +23,7 @@ if(BUILD_GUI)
list (APPEND FREECAD_QT_COMPONENTS Designer)
endif()
endif()
-if (BUILD_TEST)
+if (ENABLE_DEVELOPER_TESTS)
list (APPEND FREECAD_QT_COMPONENTS Test)
endif ()
@@ -38,6 +38,8 @@ set(CMAKE_AUTOMOC TRUE)
set(CMAKE_AUTOUIC TRUE)
set(QtCore_MOC_EXECUTABLE ${Qt${FREECAD_QT_MAJOR_VERSION}Core_MOC_EXECUTABLE})
+add_definitions(-DQT_NO_KEYWORDS)
+
message(STATUS "Set up to compile with Qt ${Qt${FREECAD_QT_MAJOR_VERSION}Core_VERSION}")
# In Qt 5.15 they added more generic names for these functions: "backport" those new names
diff --git a/cMake/FreeCAD_Helpers/SetupShibokenAndPyside.cmake b/cMake/FreeCAD_Helpers/SetupShibokenAndPyside.cmake
index 43e650fe85..7556a25a89 100644
--- a/cMake/FreeCAD_Helpers/SetupShibokenAndPyside.cmake
+++ b/cMake/FreeCAD_Helpers/SetupShibokenAndPyside.cmake
@@ -120,7 +120,7 @@ macro(SetupShibokenAndPyside)
option(FREECAD_USE_SHIBOKEN "Links to the shiboken library at build time. If OFF its Python module is imported at runtime" OFF)
endif()
- # Now try to import the shiboken Python module and print an error if it can't be loaded
+ # Now try to import the shiboken Python module and print a warning if it can't be loaded
execute_process(
COMMAND ${PYTHON_EXECUTABLE} -c "import shiboken${SHIBOKEN_MAJOR_VERSION}"
RESULT_VARIABLE FAILURE
@@ -128,7 +128,7 @@ macro(SetupShibokenAndPyside)
)
if(FAILURE)
- message(FATAL_ERROR,
+ message(WARNING
"==================================\n"
"Shiboken${SHIBOKEN_MAJOR_VERSION} Python module not found.\n"
"==================================\n")
@@ -148,14 +148,14 @@ macro(SetupShibokenAndPyside)
option(FREECAD_USE_PYSIDE "Links to the PySide libraries at build time." OFF)
endif()
- # Independent of the build option PySide modules must be loaded at runtime. Print an error if it fails.
+ # Independent of the build option PySide modules must be loaded at runtime. Print a warning if it fails.
execute_process(
COMMAND ${PYTHON_EXECUTABLE} -c "import PySide${PYSIDE_MAJOR_VERSION};import os;print(os.path.dirname(PySide${PYSIDE_MAJOR_VERSION}.__file__), end='')"
RESULT_VARIABLE FAILURE
OUTPUT_VARIABLE PRINT_OUTPUT
)
if(FAILURE)
- message(FATAL_ERROR,
+ message(WARNING
"================================\n"
"PySide${PYSIDE_MAJOR_VERSION} Python module not found.\n"
"================================\n")
diff --git a/ci/.gitlab-ci.yml b/ci/.gitlab-ci.yml
deleted file mode 100644
index 92200a8d8e..0000000000
--- a/ci/.gitlab-ci.yml
+++ /dev/null
@@ -1,43 +0,0 @@
-# gitlab CI config file
-
-# this image is on dockerhub. Dockerfile is here: https://gitlab.com/PrzemoF/FreeCAD/-/blob/gitlab-v1/ci/Dockerfile
-image: freecadci/runner
-
-stages: # List of stages for jobs, and their order of execution
- - build
- - test
-
-before_script:
- - apt-get update -yqq
- # CCache Config
- - mkdir -p ccache
- - export CCACHE_BASEDIR=${PWD}
- - export CCACHE_DIR=${PWD}/ccache
-
-cache:
- paths:
- - ccache/
-
-build-job: # This job runs in the build stage, which runs first.
- stage: build
-
- script:
- - echo "Compiling the code..."
- - mkdir build
- - cd build
- - ccache cmake ../
- - ccache cmake --build ./ -j$(nproc)
- - echo "Compile complete."
-
- artifacts:
- paths:
- - build/
-
-test-job: # This job runs in the test stage.
- stage: test # It only starts when the job in the build stage completes successfully.
- script:
- - echo "Running unit tests... "
- - cd build/bin/
- # Testing currently doesn't work due to problems with libraries ot being visible by the binary.
- - ./FreeCADCmd -t 0
-
diff --git a/ci/Dockerfile b/ci/Dockerfile
deleted file mode 100644
index c91d6d6b8a..0000000000
--- a/ci/Dockerfile
+++ /dev/null
@@ -1,117 +0,0 @@
-FROM ubuntu:20.04
-MAINTAINER Przemo Firszt
-# This is the docker image definition used to build FreeCAD. It's currently accessible on:
-# https://hub.docker.com/repository/docker/freecadci/runner
-# on under name freecadci/runner when using docker
-
-ENV DEBIAN_FRONTEND=noninteractive
-
-RUN apt-get update -y
-RUN apt-get update -y && apt-get install -y gnupg2
-RUN echo "deb http://ppa.launchpad.net/freecad-maintainers/freecad-daily/ubuntu focal main" >> /etc/apt/sources.list.d/freecad-daily.list
-RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 83193AA3B52FF6FCF10A1BBF005EAE8119BB5BCA
-RUN apt-get update -y
-
-# those 3 are for debugging purposes only. Not required to build FreeCAD
-RUN apt-get install -y \
- vim \
- nano \
- bash
-
-# Main set of FreeCAD dependencies. To be verified.
-RUN apt-get install -y \
- ccache \
- cmake \
- debhelper \
- dh-exec \
- dh-python \
- doxygen \
- git \
- graphviz \
- libboost-date-time-dev \
- libboost-dev \
- libboost-filesystem-dev \
- libboost-filesystem1.71-dev \
- libboost-graph-dev \
- libboost-iostreams-dev \
- libboost-program-options-dev \
- libboost-program-options1.71-dev \
- libboost-python1.71-dev \
- libboost-regex-dev \
- libboost-regex1.71-dev \
- libboost-serialization-dev \
- libboost-system1.71-dev \
- libboost-thread-dev \
- libboost-thread1.71-dev \
- libboost1.71-dev \
- libcoin-dev \
- libdouble-conversion-dev \
- libeigen3-dev \
- libglew-dev \
- libgts-bin \
- libgts-dev \
- libkdtree++-dev \
- liblz4-dev \
- libmedc-dev \
- libmetis-dev \
- libnglib-dev \
- libocct-data-exchange-dev \
- libocct-ocaf-dev \
- libocct-visualization-dev \
- libopencv-dev \
- libproj-dev \
- libpyside2-dev \
- libqt5opengl5 \
- libqt5opengl5-dev \
- libqt5svg5-dev \
- libqt5webkit5 \
- libqt5webkit5-dev \
- libqt5x11extras5-dev \
- libqt5xmlpatterns5-dev \
- libshiboken2-dev \
- libspnav-dev \
- libvtk7-dev \
- libvtk7.1p \
- libvtk7.1p-qt \
- libx11-dev \
- libxerces-c-dev \
- libzipios++-dev \
- lsb-release \
- nastran \
- netgen \
- netgen-headers \
- occt-draw \
- pybind11-dev \
- pyqt5-dev-tools \
- pyside2-tools \
- python3-dev \
- python3-matplotlib \
- python3-pivy \
- python3-ply \
- python3-pyside2.* \
- python3-pyside2.qtcore \
- python3-pyside2.qtgui \
- python3-pyside2.qtsvg \
- python3-pyside2.qtuitools \
- python3-pyside2.qtwidgets \
- python3-pyside2.qtxml \
- python3-requests \
- python3-yaml \
- qt5-default \
- qt5-qmake \
- qtbase5-dev \
- qttools5-dev \
- qtwebengine5-dev \
- swig
-
-RUN apt-get update -y --fix-missing
-
-# Clean
-RUN apt-get clean \
- && rm /var/lib/apt/lists/* \
- /usr/share/doc/* \
- /usr/share/locale/* \
- /usr/share/man/* \
- /usr/share/info/* -fR
-
-
diff --git a/package/fedora/freecad.spec b/package/fedora/freecad.spec
index 5dda56fe3d..4e25bc37e2 100644
--- a/package/fedora/freecad.spec
+++ b/package/fedora/freecad.spec
@@ -7,7 +7,7 @@
# Maintainers: keep this list of plugins up to date
# List plugins in %%{_libdir}/%{name}/lib, less '.so' and 'Gui.so', here
-%global plugins Fem FreeCAD PathApp Import Inspection Mesh MeshPart Part Points ReverseEngineering Robot Sketcher Start Web PartDesignGui _PartDesign Path PathGui Spreadsheet SpreadsheetGui area DraftUtils DraftUtils libDriver libDriverDAT libDriverSTL libDriverUNV libE57Format libMEFISTO2 libSMDS libSMESH libSMESHDS libStdMeshers Measure TechDraw TechDrawGui libarea-native Surface SurfaceGui PathSimulator
+%global plugins Fem FreeCAD PathApp Import Inspection Mesh MeshPart Part Points ReverseEngineering Robot Sketcher Start Web PartDesignGui _PartDesign Path PathGui Spreadsheet SpreadsheetGui area DraftUtils DraftUtils flatmesh libDriver libDriverDAT libDriverSTL libDriverUNV libE57Format libMEFISTO2 libSMDS libSMESH libSMESHDS libStdMeshers Measure TechDraw TechDrawGui libarea-native Surface SurfaceGui PathSimulator
# Some configuration options for other environments
@@ -232,7 +232,7 @@ LDFLAGS='-Wl,--as-needed -Wl,--no-undefined'; export LDFLAGS
%endif
-DPACKAGE_WCREF="%{release} (Git)" \
-DPACKAGE_WCURL="git://github.com/%{github_name}/FreeCAD.git master" \
- -DBUILD_TEST=FALSE \
+ -DENABLE_DEVELOPER_TESTS=FALSE \
../
make fc_version
diff --git a/src/App/Application.cpp b/src/App/Application.cpp
index 615e4e3f54..a85b916982 100644
--- a/src/App/Application.cpp
+++ b/src/App/Application.cpp
@@ -477,6 +477,7 @@ Document* Application::newDocument(const char * Name, const char * UserName, boo
DocMap[name] = doc;
_pActiveDoc = doc;
+ //NOLINTBEGIN
// connect the signals to the application for the new document
_pActiveDoc->signalBeforeChange.connect(std::bind(&App::Application::slotBeforeChangeDocument, this, sp::_1, sp::_2));
_pActiveDoc->signalChanged.connect(std::bind(&App::Application::slotChangedDocument, this, sp::_1, sp::_2));
@@ -497,6 +498,7 @@ Document* Application::newDocument(const char * Name, const char * UserName, boo
_pActiveDoc->signalStartSave.connect(std::bind(&App::Application::slotStartSaveDocument, this, sp::_1, sp::_2));
_pActiveDoc->signalFinishSave.connect(std::bind(&App::Application::slotFinishSaveDocument, this, sp::_1, sp::_2));
_pActiveDoc->signalChangePropertyEditor.connect(std::bind(&App::Application::slotChangePropertyEditor, this, sp::_1, sp::_2));
+ //NOLINTEND
// make sure that the active document is set in case no GUI is up
{
@@ -1241,7 +1243,7 @@ ParameterManager * Application::GetParameterSet(const char* sName) const
}
const std::map(prop),address(address),rowCount(rowCount),colCount(colCount) {} - void visit(Expression &node) { + void visit(Expression &node) override { this->moveCells(node,address,rowCount,colCount); } @@ -112,7 +112,7 @@ public: : ExpressionModifier
(prop),rowOffset(rowOffset),colOffset(colOffset)
{}
- void visit(Expression &node) {
+ void visit(Expression &node) override {
this->offsetCells(node,rowOffset,colOffset);
}
diff --git a/src/App/ExtensionContainer.h b/src/App/ExtensionContainer.h
index d71908ba7a..2586de023c 100644
--- a/src/App/ExtensionContainer.h
+++ b/src/App/ExtensionContainer.h
@@ -200,7 +200,7 @@ public:
*
* If no extension handles the request, then the containers handleChangedPropertyName() is called.
*/
- virtual void handleChangedPropertyName(Base::XMLReader &reader, const char * TypeName, const char *PropName) override;
+ void handleChangedPropertyName(Base::XMLReader &reader, const char * TypeName, const char *PropName) override;
virtual void handleChangedPropertyName(Base::DocumentReader &reader, const char * TypeName, const char *PropName) override;
/** Extends the rules for handling property type changed, so that extensions are given an opportunity to handle it.
* If an extension handles a change, neither the rest of the extensions, nor the container itself get to handle it.
@@ -209,7 +209,7 @@ public:
*
* If no extension handles the request, then the containers handleChangedPropertyType() is called.
*/
- virtual void handleChangedPropertyType(Base::XMLReader &reader, const char * TypeName, Property * prop) override;
+ void handleChangedPropertyType(Base::XMLReader &reader, const char * TypeName, Property * prop) override;
virtual void handleChangedPropertyType(Base::DocumentReader &reader, const char * TypeName, Property * prop) override;
void readExtension(Base::DocumentReader &reader,XERCES_CPP_NAMESPACE_QUALIFIER DOMElement *ExtensionDOM);
diff --git a/src/App/ExtensionPython.h b/src/App/ExtensionPython.h
index 854c09fb51..c49635afbc 100644
--- a/src/App/ExtensionPython.h
+++ b/src/App/ExtensionPython.h
@@ -35,9 +35,9 @@ namespace App {
* class to behave as a Python extension -- simply by subclassing.
*/
template