Windows/MSVC + OCCT 7.0.0 (#124)

* Windows/MSVC build scripts: option to build and use official Open CASCADE instead of the community edition.

* Fix C4800 warnings ("'Standard_Boolean': forcing value to bool 'true' or 'false' (performance warning)") + unnecessary integer cast.

* build-deps.cmd: fix OCCT download

* Fix MSVC linking against OCCT 7.0.0. Example executables fail still, needs research.

* occt-V7_0_0-9059ca1_CMakeLists.txt: add_definitions(-DHAVE_NO_DLL) in order to fix static linking to OCCT. Mark IfcOpenShell patches in the OCCT patch files for clarity.

* Patch OCCT in order to fix compliaction when HAVE_NO_DLL is defind. Clean up IfcOpenSHell's linker warnings by defining HAVE_NO_DLL.

* CMakeLists.txt: remove linking to the newly added OCCT libs, these are not needed when HAVE_NO_DLL is defined.

* cmake/CMakeLists.txt: make add_debug_variants() function to handle filenames/paths also. Apply the coding conventions while at it. Fixes #123.

* Patch OCCT's OpenGl_PrimitiveArray.cxx and XCAFDoc_GeomTolerance.cxx in order to fix Debug build. Do not trigger OCCT rebuild each time build-deps.cmd is ran.

* build-deps.cmd: fix OCCT file patch copy.

* Non-MSVC compiler: use -Wextra, suppress/fix -Wignored-qualifiers warnings.

* build-deps.cmd: do not check return values of copy commands as they seem not to be fully reliable.
This commit is contained in:
Ali Kämäräinen
2016-09-01 12:28:17 +03:00
committed by Thomas Krijnen
parent e064098f84
commit 64dc2ea95c
14 changed files with 3182 additions and 42 deletions
+18 -7
View File
@@ -5,14 +5,15 @@ and its dependencies.
As a general guideline, `.cmd` files are non-standalone batch files that need to be run from command prompt or from
another batch file, and/or while the Visual Studio environment variables set, and `.bat` files are standalone batch
files that can also be invoked e.g. by double-clicking in the File Explorer. `.sh` files are for MSYS2 + MinGW compilation.
files that can also be invoked e.g. by double-clicking in the File Explorer. `.sh` files are for MSYS2 + MinGW ("MSYS"
hereafter) compilation.
Usage Instructions
------------------
### MSYS2 + MinGW
Building using MSYS2 + MinGW is very similar to using the Visual Studio batch files, but instead the shell scripts
are used. Note that the MSYS2 + MinGW support is currently a bit experimental. It is advised to check out the contents
Building using MSYS is very similar to using the Visual Studio batch files, but instead the shell scripts
are used. Note that the MSYS support is currently a bit experimental. It is advised to check out the contents
of the shell scripts before using them. Note that contrary to Visual Studio, with MinGW all of the dependencies are not
built or used as static libaries. Currently Release build is used for all libraries.
@@ -62,6 +63,16 @@ required IfcOpenShell-Python parts are deployed to the `<PYTHONHOME>\Lib\site-pa
**Note:** Currently all of the dependencies are build as static libraries against the static run-time allowing the
developer to effortlessly deploy standalone IFCOS executables.
Using the official Open CASCADE release instead of community edition
---------------------------------------------
Before building the dependencies, enable the OCCT usage:
```
> set IFCOS_USE_OCCT=TRUE
> buid-deps.cmd
```
Please note that this option is not yet available in the MSYS build scripts.
Using an already existing Python installation
---------------------------------------------
@@ -93,16 +104,16 @@ Directory Structure
\---win
| build-all.cmd - Runs all of the build scripts for IFCOS and it dependencies in a row without pauses
| build-deps.cmd - Fetches and builds all needed dependencies for IFCOS using Visual Studio
| build-deps.sh - Fetches and builds all needed dependencies for IFCOS using MSYS2 + MinGW
| build-deps.sh - Fetches and builds all needed dependencies for IFCOS using MSYS
| BuildDepsCache-<ARCH>.txt - Cache file created by build-deps.cmd
| build-ifcopenshell.bat - Builds IFCOS using Visual Studio
| build-ifcopenshell.sh - Builds IFCOS using MSYS2 + MinGW
| build-ifcopenshell.sh - Builds IFCOS using MSYS
| build-type-cfg.cmd - Utility file used by the build scripts
| install-ifcopenshell.bat - Installs/deployes IFCOS using Visual Studio.
| install-ifcopenshell.sh - Installs/deployes IFCOS using MSYS2 + MinGW.
| install-ifcopenshell.sh - Installs/deployes IFCOS using MSYS.
| readme.md - This file
| run-cmake.bat - Sets environment variables for the dependencies and runs CMake for IFCOS using Visual Studio
| run-cmake.sh - Sets environment variables for the dependencies and runs CMake for IFCOS using MSYS2 + MinGW
| run-cmake.sh - Sets environment variables for the dependencies and runs CMake for IFCOS using MSYS
| set-python-to-path.bat - Utility for setting PYTHONHOME (read from BuildDepsCache-<ARCH>.txt) to PATH
| vs-cfg.cmd - Utility file used by the build scripts
\---patches - Contains patches for the dependencies