Commit Graph

39 Commits

Author SHA1 Message Date
Markus Reitböck
63a8d31bb6 Robot: 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-24 20:08:56 +02:00
wmayer
ac51455a0a CMake: Replace include_directories with target_include_directories 2025-09-08 19:04:34 +02:00
Ian 'z0r0' Abreu
df20bc6609 Finalizing Python interface bindings for Robot, Spreadsheet, Surface. 2025-08-31 15:41:14 -04:00
Ian 'z0r0' Abreu
66ada8e10a fixing unnecessary list import 2025-07-28 08:59:52 -05: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
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
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
liukaiwen
329904a055 [cmake] some definitions do not matter build now 2023-09-27 18:17:14 +08:00
Uwe
6165144f6e [Robot] App: enable precompiled header 2022-12-09 03:29:30 +01:00
wmayer
ff38f8b8e8 CMake: [skip ci] remove trailing whitespaces 2022-08-24 07:46:07 +02: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
25aba1dd59 [Robot] remove Python.h and Xerces 2022-03-20 22:37:38 +01:00
wmayer
8cbd92d874 port to MSYS2/clang 2021-09-19 19:49:44 +02:00
wmayer
be8634d05c Handle clang 10 warnings:
+ fix -Wtautological-bitwise-compare
+ fix -Wimplicit-int-float-conversion
+ fix -Wmisleading-indentation
+ fix -Wrange-loop-construct
+ suppress -Wdeprecated-copy of 3rd party libs
2020-05-25 15:34:43 +02:00
wmayer
af75337308 CMP0050: make Robot module aware of cmake policy 2018-08-20 20:00:53 +02:00
wmayer
e35f04b4d6 disable FREECAD_USE_EXTERNAL_KDL due to incompatibilities with bundled version 2018-08-17 21:59:51 +02:00
wmayer
19c9a9f819 remove superfluous Qt includes 2016-12-13 14:33:16 +01:00
Marco Molteni
e02a96d581 Enable building the KDL libray with clang 2016-08-20 22:01:51 +02:00
wmayer
9338538130 + simplify porting of Robot module to Python3 2016-01-18 18:26:37 +01:00
Yorik van Havre
2059d063b5 Robot: Added missing header in KDL 2015-10-15 11:55:52 -03: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
Fredrik Johansson
f3af4d5108 Add ability to have external orocos-kdl library instead of the suplied
in FreeCAD, used in Robot and Path workbenches

cmake switch: FREECAD_USE_EXTERNAL_KDL

Makes Robot workbench and Path compilable on OS X 10.9
2015-06-24 11:54:31 +02:00
wmayer
61b1b4c67b + apply patch from Debian to fix build failure of KDL with clang 2015-04-01 16:15:29 +02:00
Peter Lama
7d30188d01 Add support for CLbundler created LibPack
* New 'UseLibPack' cmake file sets CMAKE_PREFIX_PATH so that find_package
  can be used for most packages.
* Mimic fc_wrap_cpp defined in other 'UseLibPack' files. Some file
  dependencies did not get set correctly otherwise.
* OCE 0.16 does not have Standard_ctype.hxx
* shfolder.h can't be used with Win SDK 7.0
2014-11-14 08:01:09 -08:00
wmayer
6ac93e9d72 Add initial support for different libdir (jobermayr) 2014-05-10 12:57:38 +02:00
wmayer
4b2b243e47 + compile with clang 2014-05-05 16:24:01 +02:00
mdinger
1498e99cef Move python module prefix and suffix properties into macro to be set together 2014-05-03 16:00:30 +02:00
wmayer
67edfb895b + Fix prefix of Python extensions built with MinGW 2014-04-30 18:22:52 +02:00
mdinger
e2bd648e9a Remove unnecessary quotes. 2014-04-30 13:41:16 +02:00
mdinger
3e3ce381f6 Apply SET_BIN_DIR macro to Mod 2014-04-30 13:41:13 +02:00
wmayer
9193dc9a20 Fix a couple of dfsg issues, make git the default vcs 2012-06-21 12:25:53 +02:00
wmayer
64cc3265e1 Fix a couple of dfsg issues 2012-06-21 12:09:52 +02:00
wmayer
837ddf5f38 Support of INSTALL target on Windows (VC++ and MinGW) 2012-02-17 21:41:00 +01:00
wmayer
bde949f7e4 0000519: Patch to set proper RPATH's for system wide installation on Linux
git-svn-id: https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk@5270 e8eeb9e2-ec13-0410-a4a9-efa5cf37419d
2011-12-11 12:36:36 +00:00
wmayer
120ca87015 + unify DLL export defines to namespace names
git-svn-id: https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk@5000 e8eeb9e2-ec13-0410-a4a9-efa5cf37419d
2011-10-10 13:44:52 +00:00