Merge pull request #137 from bblacey/matrix-0.17

Matrix 0.17 Improvements
This commit is contained in:
wwmayer 2016-04-14 15:12:44 +02:00
commit de1b04afa6
2 changed files with 46 additions and 40 deletions

View File

@ -20,24 +20,31 @@ env:
- DEPLOY_RELEASE=${DEPLOY_RELEASE:-$FREECAD_RELEASE} - DEPLOY_RELEASE=${DEPLOY_RELEASE:-$FREECAD_RELEASE}
- CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE:-Release} - CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE:-Release}
- OSX_PORTS_CACHE=${OSX_PORTS_CACHE:-FreeCAD/FreeCAD-ports-cache} - OSX_PORTS_CACHE=${OSX_PORTS_CACHE:-FreeCAD/FreeCAD-ports-cache}
matrix:
- CMAKE_OPTS="-DBUILD_FEM_NETGEN=ON"
language: cpp language: cpp
matrix: compiler:
include: - clang
- os: linux - gcc
python: 2.7
os:
- linux
- osx
dist: trusty dist: trusty
sudo: required sudo: required
compiler: clang
- os: osx matrix:
osx_image: beta-xcode6.2
compiler: clang
exclude: exclude:
- os: linux - os: osx
dist: precise compiler: gcc
git: git:
depth: 200 depth: 800
before_install: before_install:
- eval "$(curl -fsSL "https://raw.githubusercontent.com/${OSX_PORTS_CACHE}/v${FREECAD_RELEASE}/travis-helpers.sh")" - eval "$(curl -fsSL "https://raw.githubusercontent.com/${OSX_PORTS_CACHE}/v${FREECAD_RELEASE}/travis-helpers.sh")"
@ -72,6 +79,8 @@ before_install:
libxmu6 \ libxmu6 \
libxmuu-dev \ libxmuu-dev \
libxmuu1 \ libxmuu1 \
netgen \
netgen-headers \
oce-draw \ oce-draw \
pyside-tools \ pyside-tools \
python-dev \ python-dev \
@ -82,16 +91,12 @@ before_install:
shiboken \ shiboken \
swig swig
#Temporary hack - remove older Python (find a supported way to do this)
sudo rm -rf /opt/python/2.6.9
sudo rm -rf /opt/python/2.7.10
#Patch the system - there is a bug related to invalid location of libs on ubuntu 12.04 #Patch the system - there is a bug related to invalid location of libs on ubuntu 12.04
sudo ln -s /usr/lib/x86_64-linux-gnu/ /usr/lib/i386-linux-gnu sudo ln -s /usr/lib/x86_64-linux-gnu/ /usr/lib/i386-linux-gnu
export DISPLAY=:99.0 export DISPLAY=:99.0
sh -e /etc/init.d/xvfb start sh -e /etc/init.d/xvfb start
CMAKE_ARGS="" CMAKE_ARGS="${CMAKE_OPTS} -DPYTHON_EXECUTABLE=/usr/bin/python"
INSTALLED_APP_PATH="/usr/local/bin/FreeCAD" INSTALLED_APP_PATH="/usr/local/bin/FreeCAD"
;; ;;
@ -127,7 +132,7 @@ 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
CMAKE_ARGS="-DFREECAD_USE_EXTERNAL_KDL=ON -DBUILD_FEM_NETGEN=ON -DFREECAD_CREATE_MAC_APP=ON" CMAKE_ARGS="${CMAKE_OPTS} -DFREECAD_USE_EXTERNAL_KDL=ON -DFREECAD_CREATE_MAC_APP=ON"
INSTALLED_APP_PATH="/usr/local/FreeCAD.app/Contents/bin/FreeCAD" INSTALLED_APP_PATH="/usr/local/FreeCAD.app/Contents/bin/FreeCAD"
;; ;;
@ -164,7 +169,7 @@ 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 install jq node && npm install -g appdmg
export VSN=$(python ${TRAVIS_BUILD_DIR}/src/Tools/ArchiveNameFromVersionHeader.py ${TRAVIS_BUILD_DIR}/build/src/Build/Version.h --git-SHA=$(git ls-remote origin master)) 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}"
deployContext=$(create_helper_context repo=${TRAVIS_REPO_SLUG} auth_token=${GH_TOKEN} release=${DEPLOY_RELEASE}) deployContext=$(create_helper_context repo=${TRAVIS_REPO_SLUG} auth_token=${GH_TOKEN} release=${DEPLOY_RELEASE})

View File

@ -44,25 +44,36 @@ else(WIN32)
set(PLATFORM_MK mkdir -p) set(PLATFORM_MK mkdir -p)
endif(WIN32) endif(WIN32)
if (${CMAKE_CXX_COMPILER_ID} MATCHES "Clang")
set(CMAKE_COMPILER_IS_CLANGXX TRUE)
endif (${CMAKE_CXX_COMPILER_ID} MATCHES "Clang")
# ================================================================================ # ================================================================================
# Issues with boost::any on older versions with C++11 enabled. # Issues with boost::any on older versions with C++11 enabled.
set(BOOST_MIN_VERSION 1.55) set(BOOST_MIN_VERSION 1.55)
IF(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_COMPILER_VERSION VERSION_LESS 4.7)
UNSET(BOOST_MIN_VERSION) # For Ubuntu 12.04
ENDIF(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_COMPILER_VERSION VERSION_LESS 4.7)
if (${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") # Enabled C++11 for Freecad 0.17 and later
set(CMAKE_COMPILER_IS_CLANGXX TRUE) IF(FREECAD_VERSION VERSION_GREATER 0.16)
# make this an option because for older compilers C++11 doesn't work properly.
OPTION(BUILD_ENABLE_CXX11 "Enable C++11 support." ON) OPTION(BUILD_ENABLE_CXX11 "Enable C++11 support." ON)
if (BUILD_ENABLE_CXX11) IF(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.7)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") MESSAGE(FATAL_ERROR "FreeCAD 0.17 and later requires C++11. G++ must be 4.7 or later")
endif(BUILD_ENABLE_CXX11) ELSEIF(CMAKE_COMPILER_IS_CLANGXX AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.3)
endif (${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") MESSAGE(FATAL_ERROR "FreeCAD 0.17 and later requires C++11. Clang must be 3.3 or later")
ENDIF()
ENDIF(FREECAD_VERSION VERSION_GREATER 0.16)
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANGXX) if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANGXX)
include(cMake/ConfigureChecks.cmake) include(cMake/ConfigureChecks.cmake)
configure_file(config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h) configure_file(config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
add_definitions(-DHAVE_CONFIG_H) add_definitions(-DHAVE_CONFIG_H)
set(CMAKE_CXX_FLAGS "-Wall -Wno-deprecated -Wno-write-strings -std=c++11 ${CMAKE_CXX_FLAGS}") if(BUILD_ENABLE_CXX11)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
endif(BUILD_ENABLE_CXX11)
set(CMAKE_CXX_FLAGS "-Wall -Wno-deprecated -Wno-write-strings ${CMAKE_CXX_FLAGS}")
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
# get linker errors as soon as possible and not at runtime e.g. for modules # get linker errors as soon as possible and not at runtime e.g. for modules
if(UNIX) if(UNIX)
@ -70,16 +81,6 @@ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANGXX)
endif(UNIX) endif(UNIX)
endif(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANGXX) endif(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANGXX)
IF(CMAKE_COMPILER_IS_GNUCXX)
EXECUTE_PROCESS( COMMAND ${CMAKE_C_COMPILER} -dumpversion
OUTPUT_VARIABLE GCC_VERSION )
IF(GCC_VERSION VERSION_GREATER 4.7 OR GCC_VERSION VERSION_EQUAL 4.7)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
ELSE(GCC_VERSION VERSION_GREATER 4.7 OR GCC_VERSION VERSION_EQUAL 4.7)
UNSET(BOOST_MIN_VERSION) # For Ubuntu 12.04
ENDIF(GCC_VERSION VERSION_GREATER 4.7 OR GCC_VERSION VERSION_EQUAL 4.7)
ENDIF()
# ================================================================================ # ================================================================================
# Output directories for install target # Output directories for install target