Skip to content

Commit

Permalink
Merge branch 'master' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
sliptonic committed May 5, 2019
2 parents 0e10940 + 3be0cbc commit 8118359
Show file tree
Hide file tree
Showing 167 changed files with 20,971 additions and 2,504 deletions.
73 changes: 66 additions & 7 deletions .travis.yml
Expand Up @@ -24,11 +24,14 @@ env:
- CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE:-Release}
- OSX_PORTS_CACHE=${OSX_PORTS_CACHE:-FreeCAD/FreeCAD-ports-cache}
- DEPLOY=${DEPLOY:-0}
- GENERATOR="Unix Makefiles"
matrix:
# chunk.io key (if needed, obtain it with Yorik, PrzemoF, Kunda1)
secure: MJu0ZU/9Yqut6bUkHoSrXTV/c/WhCLR0KnHKCsnEU081PYoukzH6ngzgKk7/trAH2In080d/ra4B2OmTNl/LAgV6DXKFY9dO1aG8QwcrHgaMPf0pHYUy/OfwQSFYFByQDV2OEMAHcIWc/dtNkzK2QUi44Kn7d0GtSEiN4s816lriWtjg0vmEGAU8MjvcAGss4gKyn05Xm1NUCYPKgpgIHsywLbpE76lv0eOYoosEuKv5Q9Pb4FMQts02+JUlqE8eY4ZZ3nV8iQbgIDdseOSA7Ixn05zWjU/ZRZ74TrYxMnzfUAwQcJe9OcqoESq+pPWQt5HYG66VmeVxQim1gmsiDASH51U/nswKt0Q4bISj3tVk0YZMFV8Ax+SzPvLEmFZJQGfgO1mg7HdNcz9N9G5JHPawrV19DwYIEFbAw8MCSAoIXFOcPQZUWXCbtjm7NO9vCjMrqyVJMDD9L8omvQajHoajuHbOT8KB250gFokeLj3z8yu++Tz+IrZX5inUMrXsARVt/ALXpi8rJPXmoFMpMUjyWmDPqPWlnqUhLtTtEtKpuOWP8ZnWVwkg4QYOUhCy95C1okJSGkG+ylHWncWfY4mS+UBT525laoh+GOhH+sRW+p2xkI21xGFRqg1oHjjgY1yIYF6nnSHPzxMBRYmZwagyXsjkFG5FPMWR2oYk0Yg
cache:
ccache: true
directories:
- $HOME/.ccache

language: cpp
python:
Expand Down Expand Up @@ -63,6 +66,26 @@ matrix:
- CMAKE_OPTS="-DBUILD_FEM_NETGEN=ON"
- PYTHON_MAJOR_VERSION=3

- os: windows
language: cpp
filter_secrets: false
env:
- CMAKE_OPTS="-DBUILD_FEM_NETGEN=ON -DFREECAD_RELEASE_PDB=OFF"
- GENERATOR="Visual Studio 15 2017 Win64"
- PYTHON_MAJOR_VERSION=3
- MSBUILD_PATH="c:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin"
- TEST_PATH="C:\Users\travis\build\FreeCAD\FreeCAD\build\bin"
- CLCACHE_PATH="C:\Users\travis\build\FreeCAD\FreeCAD\"
- VS15=true
- CCACHE_TEMPDIR=/tmp/.ccache-temp
- CCACHE_COMPRESS=1
- CCACHE_DIR=$HOME/.ccache
# enable this if clcache extended log is needed
#- CLCACHE_LOG=1
cache:
directories:
- $HOME/clcache

- language: python
python: 3.7
dist: xenial # required for Python >= 3.7 (travis-ci/travis-ci#9069)
Expand Down Expand Up @@ -209,6 +232,27 @@ before_install:
export CMAKE_ARGS="${CMAKE_OPTS} -DFREECAD_USE_EXTERNAL_KDL=ON"
;;
"windows")
#choco install -y python
#py -m pip install --quiet --upgrade pip
#py -m pip install git+https://github.com/frerich/clcache.git@v4.2.0
curl -L https://github.com/frerich/clcache/releases/download/v4.2.0/clcache-4.2.0.zip --output clcache-4.2.0.zip
7z x clcache-4.2.0.zip > /dev/null
export PATH=$CLCACHE_PATH:$PATH
#reset clcache hit stats
cmd.exe /C 'C:\Users\travis\build\FreeCAD\FreeCAD\clcache.exe -z'
# clcache stats before compilation
cmd.exe /C 'C:\Users\travis\build\FreeCAD\FreeCAD\clcache.exe -s'
curl -L https://github.com/apeltauer/FreeCAD/releases/download/LibPack_12.1/FreeCADLibs_12.1.2_x64_VC15.7z --output FreeCADLibs.7z
7z x FreeCADLibs.7z -oFreeCADLibs > /dev/null
export LIBPACK_DIR="$TRAVIS_BUILD_DIR\FreeCADLibs"
export CMAKE_ARGS="${CMAKE_OPTS} -DFREECAD_LIBPACK_DIR=$TRAVIS_BUILD_DIR\FreeCADLibs -DPYTHON_EXECUTABLE=$TRAVIS_BUILD_DIR\FreeCADLibs\bin\python.exe \
-DBUILD_QT5=TRUE"
export PATH=$MSBUILD_PATH:$PATH
;;
*)
echo "Invalid or unsupported operating system ${TRAVIS_OS_NAME}"
exit 1
Expand All @@ -219,18 +263,33 @@ install:
####
# Build FreeCAD with cmake options set above for each platform
##
- mkdir build && cd build && cmake ${CMAKE_ARGS} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} ../
- mkdir build && cd build && cmake -G"${GENERATOR}" ${CMAKE_ARGS} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} ../

script:
####
# Install FreeCAD and run unit tests. Test failures will fail the build
##
- sudo make -j2 install
- ${INSTALLED_APP_PATH} --console --run-test 0
- ${INSTALLED_APP_PATH} --log-file /tmp/FreeCAD_installed.log &
- sleep 10 && pkill FreeCAD
- cat /tmp/FreeCAD_installed.log
- grep --file=../.log_errors /tmp/FreeCAD_installed.log ; [ $? == 1 ] && echo "No errors from .log_errors file found in the log after start from /usr/local/bin" || ( echo "Error from .log_errors found!" && false )
# MSBuild.exe /m FreeCAD_Trunk.sln
- |
if [ "${TRAVIS_OS_NAME}" == "windows" ]; then
# call msbuild using clcache
#cmd.exe /C '"C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" amd64 && MSBuild.exe FreeCAD_Trunk.sln /p:CLToolExe=clcache.exe /p:TrackFileAccess=false /p:CLToolPath=C:\Users\travis\build\FreeCAD\FreeCAD /m:2 /nologo /verbosity:minimal /p:Configuration=Release /p:Platform=x64'
cmd.exe /C 'C:\Users\travis\build\FreeCAD\FreeCAD\.travis\build.bat'
# ls -lahR
cp -a ../FreeCADLibs/bin/* bin/
# show clcache hit stats
cmd.exe /C 'C:\Users\travis\build\FreeCAD\FreeCAD\clcache.exe -s'
# run the tests
cmd.exe /C 'cd C:\Users\travis\build\FreeCAD\FreeCAD\build\bin && FreeCADCmd.exe --run-test 0'
cd $HOME
else
sudo make -j2 install
${INSTALLED_APP_PATH} --console --run-test 0
${INSTALLED_APP_PATH} --log-file /tmp/FreeCAD_installed.log &
sleep 10 && pkill FreeCAD
cat /tmp/FreeCAD_installed.log
grep --file=../.log_errors /tmp/FreeCAD_installed.log ; [ $? == 1 ] && echo "No errors from .log_errors file found in the log after start from /usr/local/bin" || ( echo "Error from .log_errors found!" && false )
fi
after_success:
####
Expand Down
6 changes: 6 additions & 0 deletions .travis/build.bat
@@ -0,0 +1,6 @@
echo on

call "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" amd64

MSBuild.exe FreeCAD_Trunk.sln /p:CLToolExe=clcache.exe /p:TrackFileAccess=false /p:CLToolPath=C:\Users\travis\build\FreeCAD\FreeCAD /m:2 /nologo /verbosity:minimal /p:Configuration=Release /p:Platform=x64

6 changes: 3 additions & 3 deletions CMakeLists.txt
Expand Up @@ -1251,7 +1251,7 @@ endif(CMAKE_COMPILER_IS_GNUCXX OR MINGW)

# -------------------------------- The final report ----------------------------------

MESSAGE(STATUS "==============\n"
MESSAGE(STATUS "\n==============\n"
"Summary report\n"
"==============\n")

Expand Down Expand Up @@ -1360,7 +1360,7 @@ ELSE(NOT BUILD_QT5)
IF(DEFINED PySide_FOUND)
MESSAGE(STATUS "PySide: ${PySide_VERSION} [${PYSIDE_INCLUDE_DIR}]")
IF(NOT PYSIDE_INCLUDE_DIR)
MESSAGE(STATUS " IncludeDir: Unable to find, python version missmatch?")
MESSAGE(STATUS " IncludeDir: Unable to find, python version mismatch?")
ENDIF(NOT PYSIDE_INCLUDE_DIR)
ELSE(DEFINED PySide_FOUND)
MESSAGE(STATUS "PySide: not found (only searched if MACPORTS_PREFIX is defined)")
Expand All @@ -1375,7 +1375,7 @@ ELSE(NOT BUILD_QT5)
IF(DEFINED PySide2_FOUND)
MESSAGE(STATUS "PySide2: ${PySide2_VERSION} [${PYSIDE_INCLUDE_DIR}]")
IF(NOT PYSIDE_INCLUDE_DIR)
MESSAGE(STATUS " IncludeDir: Unable to find, python version missmatch?")
MESSAGE(STATUS " IncludeDir: Unable to find, python version mismatch?")
ENDIF(NOT PYSIDE_INCLUDE_DIR)
ELSE(DEFINED PySide2_FOUND)
MESSAGE(STATUS "PySide2: not found")
Expand Down
67 changes: 42 additions & 25 deletions README.md
@@ -1,26 +1,45 @@
FreeCAD
-------
![Logo](https://www.freecadweb.org/images/logo.png)

### Your own 3D parametric modeler

[Website](https://www.freecadweb.org)
[Documentation](https://www.freecadweb.org/wiki/)
[Forum](https://forum.freecadweb.org/)
[Bug tracker](https://www.freecadweb.org/tracker/)
[Git repository](https://github.com/FreeCAD/FreeCAD)


[![Release](https://img.shields.io/github/release/freecad/freecad.svg)](https://github.com/freecad/freecad/releases/latest) [![Master][freecad-master-status]][travis-branches] [![Crowdin](https://d322cqt584bo4o.cloudfront.net/freecad/localized.svg)](https://crowdin.com/project/freecad) [![Gitter](https://img.shields.io/gitter/room/freecad/freecad.svg)](https://gitter.im/freecad/freecad?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)


![screenshot](http://www.freecadweb.org/wiki/images/thumb/7/72/Freecad016_screenshot1.jpg/800px-Freecad016_screenshot1.jpg)

FreeCAD is a general purpose feature-based, parametric 3D modeler for
CAD, MCAD, CAx, CAE and PLM, aimed directly at mechanical engineering
and product design but also fits a wider range of uses in engineering,
such as architecture or other engineering specialties. It is 100% Open
Source (LGPL2+ license) and extremely modular, allowing for very
advanced extension and customization.

FreeCAD is based on OpenCASCADE, a powerful geometry kernel, features an
Open Inventor-compliant 3D scene representation model provided by the
Coin 3D library, and a broad Python API. The interface is built with Qt.
FreeCAD runs exactly the same way on Windows, Mac OSX, BSD and Linux
platforms.

- [Home page](http://www.freecadweb.org)
- [Documentation wiki](http://www.freecadweb.org/wiki/)
- [Forum](http://forum.freecadweb.org/)
- [Bug tracker](http://www.freecadweb.org/tracker/)
- [Git repository](https://github.com/FreeCAD/FreeCAD)
Overview
--------

* **Freedom to build what you want** FreeCAD is an open-source parametric 3D
modeler made primarily to design real-life objects of any size.
Parametric modeling allows you to easily modify your design by going back into
your model history and changing its parameters.

* **Create 3D from 2D & back** FreeCAD allows you to sketch geometry constrained
2D shapes and use them as a base to build other objects.
It contains many components to adjust dimensions or extract design details from
3D models to create high quality production ready drawings.

* **Designed for your needs** FreeCAD is designed to fit a wide range of uses
including product design, mechanical engineering and architecture.
Whether you are a hobbyist, a programmer, an experienced CAD user,
a student or a teacher, you will feel right at home with FreeCAD.

* **Cross platform** FreeCAD runs on Windows, Mac and Linux

* **Underlying technology**
* **OpenCASCADE** A powerful geometry kernel, the most important component of FreeCAD
* **Coin3D library** Open Inventor-compliant 3D scene representation model
* **Python** FreeCAD offers a broad Python API
* **Qt** Graphical User Interface built with Qt


Installing
----------
Expand All @@ -36,11 +55,11 @@ Other options are described at the [wiki Download page](http://www.freecadweb.or
Build Status <img src="https://blog.travis-ci.com/images/travis-mascot-200px.png" height="30"/>
------------

| Master | 0.17 | Translation |
| Master | 0.18 | Translation |
|:------:|:----:|:-----------:|
|[![Master][freecad-master-status]][travis-branches]|[![0.17][freecad-0.17-status]][travis-branches]|[![Crowdin](https://d322cqt584bo4o.cloudfront.net/freecad/localized.svg)](https://crowdin.com/project/freecad)|
|[![Master][freecad-master-status]][travis-branches]|[![0.18][freecad-0.18-status]][travis-branches]|[![Crowdin](https://d322cqt584bo4o.cloudfront.net/freecad/localized.svg)](https://crowdin.com/project/freecad)|

[freecad-0.17-status]: https://travis-ci.org/FreeCAD/FreeCAD.svg?branch=releases/FreeCAD-0-17
[freecad-0.18-status]: https://travis-ci.org/FreeCAD/FreeCAD.svg?branch=releases/FreeCAD-0-18
[freecad-master-status]: https://travis-ci.org/FreeCAD/FreeCAD.svg?branch=master
[travis-branches]: https://travis-ci.org/FreeCAD/FreeCAD/branches
[travis-builds]: https://travis-ci.org/FreeCAD/FreeCAD/builds
Expand All @@ -67,8 +86,6 @@ The pages below contain up-to-date build instructions:
Usage & Getting help
--------------------

[![Gitter](https://img.shields.io/gitter/room/freecad/freecad.svg)](https://gitter.im/freecad/freecad?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

The FreeCAD wiki contains documentation on
general FreeCAD usage, Python scripting, and development. These
pages might help you get started:
Expand Down
9 changes: 8 additions & 1 deletion appveyor.yml
Expand Up @@ -10,6 +10,7 @@ environment:
Compiler: "MSVC2013"

#cache: #
cache: c:\users\appveyor\clcache

configuration:
#- Debug
Expand Down Expand Up @@ -38,17 +39,23 @@ install:
powershell -Command 7z x FreeCADLibs_11.5.1_x86_VC12.7z > nul &&
ren FreeCADLibs_11.5_x86_VC12 FreeCADLibs)
- dir
- set PATH=c:\Python37;c:\Python37\Scripts;%PATH%
- pip install clcache
- clcache -z
- clcache -s

build_script:
- cd C:\projects\freecad
- mkdir build
- cd build
- cmake -DFREECAD_LIBPACK_DIR=C:\projects\freecad\FreeCADLibs
-DBUILD_FEM_NETGEN=OFF
-DFREECAD_RELEASE_PDB=OFF
-G "%generator%" ..
- mkdir bin
- xcopy C:\projects\freecad\FreeCADLibs\bin C:\projects\freecad\build\bin /E /Q
- msbuild /m FreeCAD_Trunk.sln
- msbuild FreeCAD_Trunk.sln /p:TrackFileAccess=false /p:CLToolExe=clcache.exe /p:CLToolPath=c:\Python37\Scripts\ /m
- clcache -s

#after_build:
- cd C:\projects\freecad\build\bin\
Expand Down

0 comments on commit 8118359

Please sign in to comment.