Merge pull request #300 from bblacey/develop
Improved macOS CI builds (declarative dependencies, robust ports-cach…
This commit is contained in:
commit
b48ac103f2
60
.travis.yml
60
.travis.yml
|
@ -24,30 +24,26 @@ env:
|
||||||
- CMAKE_OPTS="-DBUILD_FEM_NETGEN=ON"
|
- CMAKE_OPTS="-DBUILD_FEM_NETGEN=ON"
|
||||||
|
|
||||||
cache:
|
cache:
|
||||||
- ccache
|
ccache: true
|
||||||
|
|
||||||
language: cpp
|
language: cpp
|
||||||
|
|
||||||
compiler:
|
|
||||||
- clang
|
|
||||||
- gcc
|
|
||||||
|
|
||||||
python: 2.7
|
python: 2.7
|
||||||
|
os: linux
|
||||||
os:
|
|
||||||
- linux
|
|
||||||
- osx
|
|
||||||
|
|
||||||
dist: trusty
|
dist: trusty
|
||||||
sudo: required
|
sudo: required
|
||||||
|
compiler:
|
||||||
|
- clang
|
||||||
|
- gcc
|
||||||
|
|
||||||
|
# Inject osx build into matrix - needed to specify image/dist
|
||||||
matrix:
|
matrix:
|
||||||
exclude:
|
include:
|
||||||
- os: osx
|
- os: osx
|
||||||
compiler: gcc
|
osx_image: xcode6.4
|
||||||
|
compiler: clang
|
||||||
|
|
||||||
git:
|
git:
|
||||||
depth: 1500
|
depth: 5000
|
||||||
|
|
||||||
notifications:
|
notifications:
|
||||||
email:
|
email:
|
||||||
|
@ -124,36 +120,21 @@ before_install:
|
||||||
|
|
||||||
"osx")
|
"osx")
|
||||||
brew update >/dev/null
|
brew update >/dev/null
|
||||||
|
xcodebuild -version -sdk
|
||||||
|
brew --config
|
||||||
if [ "${OSX_PORTS_CACHE}X" != "X" ]; then
|
if [ "${OSX_PORTS_CACHE}X" != "X" ]; then
|
||||||
brew install jq
|
brew install jq
|
||||||
cacheContext=$(create_helper_context repo=${OSX_PORTS_CACHE} auth_token=${GH_TOKEN} release=${FREECAD_RELEASE})
|
cacheContext=$(create_helper_context repo=${OSX_PORTS_CACHE} auth_token=${GH_TOKEN} release=${FREECAD_RELEASE})
|
||||||
prime_local_ports_cache $cacheContext
|
prime_local_ports_cache $cacheContext
|
||||||
fi
|
fi
|
||||||
brew install cmake \
|
|
||||||
ccache \
|
|
||||||
eigen \
|
|
||||||
freetype \
|
|
||||||
qt \
|
|
||||||
python \
|
|
||||||
boost-python \
|
|
||||||
pyside \
|
|
||||||
pyside-tools \
|
|
||||||
xerces-c \
|
|
||||||
homebrew/science/orocos-kdl \
|
|
||||||
homebrew/python/matplotlib
|
|
||||||
brew install sanelson/freecad/coin --without-framework --without-soqt
|
|
||||||
brew install sanelson/freecad/pivy --HEAD
|
|
||||||
brew install bblacey/taps/med-file --without-python
|
|
||||||
|
|
||||||
#Install ports bottled with FreeCAD specific options and hosted on FreeCAD-ports-cache
|
brew tap FreeCAD/freecad
|
||||||
brew untap homebrew/science && brew tap bblacey/science
|
brew install --verbose --only-dependencies freecad --with-freecad-bottles
|
||||||
brew install --force-bottle vtk --without-python
|
brew install --verbose --only-dependencies freecad --with-freecad-bottles #Ensure all dependencies are satisfied
|
||||||
brew install --force-bottle opencascade --without-extras
|
|
||||||
brew install --force-bottle nglib --with-opencascade
|
|
||||||
|
|
||||||
#Install the 3DConnexion frameworks
|
#Install the 3DConnexion frameworks
|
||||||
if [ ! -d /Library/Frameworks/3DconnexionClient.framework ]; then
|
if [ ! -d /Library/Frameworks/3DconnexionClient.framework ]; then
|
||||||
curl -o /tmp/3dFW.dmg -L 'http://www.3dconnexion.com/index.php?eID=sdl&ext=tx_iccsoftware&oid=a273bdbc-c289-e10d-816b-567043331c9e&filename=3DxWareMac_v10-2-5_r2142.dmg'
|
curl -o /tmp/3dFW.dmg -L 'http://www.3dconnexion.com/index.php?eID=sdl&ext=tx_iccsoftware&oid=a273bdbc-c289-e10d-816b-567043331c9e&filename=3DxWareMac_v10-4-1_r2428.dmg'
|
||||||
hdiutil attach -readonly /tmp/3dFW.dmg
|
hdiutil attach -readonly /tmp/3dFW.dmg
|
||||||
sudo installer -package /Volumes/3Dconnexion\ Software/Install\ 3Dconnexion\ software.pkg -target /
|
sudo installer -package /Volumes/3Dconnexion\ Software/Install\ 3Dconnexion\ software.pkg -target /
|
||||||
fi
|
fi
|
||||||
|
@ -161,6 +142,9 @@ before_install:
|
||||||
#Remove GDAL if installed because it results in non-existent dependent library exceptions
|
#Remove GDAL if installed because it results in non-existent dependent library exceptions
|
||||||
if [ -e /usr/local/lib/libgdal.1.dylib ]; then brew unlink gdal; fi
|
if [ -e /usr/local/lib/libgdal.1.dylib ]; then brew unlink gdal; fi
|
||||||
|
|
||||||
|
#Remove conflicting nglib formula that confuses cmake
|
||||||
|
rm $(brew --repository homebrew/science)/nglib.rb
|
||||||
|
|
||||||
export CMAKE_ARGS="${CMAKE_OPTS} -DFREECAD_USE_EXTERNAL_KDL=ON -DFREECAD_CREATE_MAC_APP=ON"
|
export CMAKE_ARGS="${CMAKE_OPTS} -DFREECAD_USE_EXTERNAL_KDL=ON -DFREECAD_CREATE_MAC_APP=ON"
|
||||||
export INSTALLED_APP_PATH="/usr/local/FreeCAD.app/Contents/bin/FreeCAD"
|
export INSTALLED_APP_PATH="/usr/local/FreeCAD.app/Contents/bin/FreeCAD"
|
||||||
;;
|
;;
|
||||||
|
@ -197,7 +181,9 @@ after_success:
|
||||||
##
|
##
|
||||||
- |
|
- |
|
||||||
if [ "${TRAVIS_OS_NAME}" == "osx" -a "${TRAVIS_PULL_REQUEST}" == "false" ]; then
|
if [ "${TRAVIS_OS_NAME}" == "osx" -a "${TRAVIS_PULL_REQUEST}" == "false" ]; then
|
||||||
brew install jq node && npm install -g appdmg
|
brew ls --versions jq || brew install jq
|
||||||
|
brew uninstall node && brew install node
|
||||||
|
npm install -g appdmg
|
||||||
export VSN=$(python ${TRAVIS_BUILD_DIR}/src/Tools/ArchiveNameFromVersionHeader.py ${TRAVIS_BUILD_DIR}/build/src/Build/Version.h)
|
export VSN=$(python ${TRAVIS_BUILD_DIR}/src/Tools/ArchiveNameFromVersionHeader.py ${TRAVIS_BUILD_DIR}/build/src/Build/Version.h)
|
||||||
export DEPLOYMENT_ARCHIVE=${VSN}.dmg
|
export DEPLOYMENT_ARCHIVE=${VSN}.dmg
|
||||||
appdmg ${TRAVIS_BUILD_DIR}/src/MacAppBundle/DiskImage/layout.json "${DEPLOYMENT_ARCHIVE}"
|
appdmg ${TRAVIS_BUILD_DIR}/src/MacAppBundle/DiskImage/layout.json "${DEPLOYMENT_ARCHIVE}"
|
||||||
|
|
Loading…
Reference in New Issue
Block a user