Skip to content

Commit

Permalink
Merge branch 'master' into feature/8977_calculate_transmission_poly
Browse files Browse the repository at this point in the history
Conflicts:
	Code/Mantid/Framework/Algorithms/src/CalculateTransmission.cpp

Refs #8977
  • Loading branch information
PeterParker committed Jul 15, 2014
2 parents 1d1acca + 206267d commit 3ccb3b0
Show file tree
Hide file tree
Showing 4,546 changed files with 572,123 additions and 136,343 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
14 changes: 11 additions & 3 deletions CONTRIBUTING.md
@@ -1,6 +1,14 @@
The [developer documentation](http://www.mantidproject.org/Category:Development) has information on how to participate in the mantid project as a developer. This document is meant to outline the steps for contributing to mantid without becomming a developer.

1. Fork the repository.
1. [Fork](https://help.github.com/articles/fork-a-repo) the repository.
2. Make changes as you see fit. Please still follow the guidelines for [running the unit tests](http://www.mantidproject.org/Running_the_unit_tests) and the [build servers](http://www.mantidproject.org/The_automated_build_process).
3. Submit a [pull request](https://help.github.com/articles/using-pull-requests). Pull requests work best if you do your work on a branch rather than in the master.
4. Email mantid-help@mantidproject.org as an extra poke to get people to notice your change. The mantid project does not use pull requests internally so the extra notification makes sure that people notice the request.
3. Before submitting pull requests email mantid-help@mantidproject.org, and a developer will set up a branch that you can submit pull requests to.
4. Submit a [pull request](https://help.github.com/articles/using-pull-requests) to this branch.


Hints to make the integration of your changes easy:
- Keep your pull requests small
- Don't forget your unit tests
- All algorithms need documentation, don't forget the .rst file
- Contact us before creating the pull request
- Don't take changes requests to change your code personally
31 changes: 12 additions & 19 deletions Code/Mantid/Build/CMake/CPackLinuxSetup.cmake
Expand Up @@ -11,7 +11,7 @@ set ( CPACK_SOURCE_GENERATOR TGZ )
include (DetermineLinuxDistro)

# define which binary generators to use
if ( ${UNIX_DIST} MATCHES "Ubuntu" )
if ( "${UNIX_DIST}" MATCHES "Ubuntu" )
find_program (DPKG_CMD dpkg)
if ( DPKG_CMD )
set ( CPACK_GENERATOR "DEB" )
Expand All @@ -22,30 +22,23 @@ if ( ${UNIX_DIST} MATCHES "Ubuntu" )
set( CPACK_PACKAGE_FILE_NAME
"${CPACK_PACKAGE_NAME}_${CPACK_PACKAGE_VERSION}-${CPACK_DEBIAN_PACKAGE_RELEASE}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}")
endif ( DPKG_CMD )
endif ( ${UNIX_DIST} MATCHES "Ubuntu" )
endif ( "${UNIX_DIST}" MATCHES "Ubuntu" )

#RedHatEnterpriseClient RedHatEnterpriseWorkstation
if ( ${UNIX_DIST} MATCHES "RedHatEnterprise" OR ${UNIX_DIST} MATCHES "Fedora" OR ${UNIX_DIST} MATCHES "SUSE LINUX" )
if ( "${UNIX_DIST}" MATCHES "RedHatEnterprise" OR "${UNIX_DIST}" MATCHES "Fedora" OR "${UNIX_DIST}" MATCHES "SUSE LINUX" )
find_program ( RPMBUILD_CMD rpmbuild )
if ( RPMBUILD_CMD )
set ( CPACK_GENERATOR "RPM" )
set ( CPACK_RPM_PACKAGE_ARCHITECTURE "${CMAKE_SYSTEM_PROCESSOR}" )
set ( CPACK_RPM_PACKAGE_URL "http://www.mantidproject.org" )

# reset the release name to include the RHEL version if known
if ( ${UNIX_CODENAME} MATCHES "Tikanga" )
set ( CPACK_RPM_PACKAGE_RELEASE "${CPACK_RPM_PACKAGE_RELEASE}.el5" )
elseif ( ${UNIX_CODENAME} MATCHES "Santiago" )
set ( CPACK_RPM_PACKAGE_RELEASE "${CPACK_RPM_PACKAGE_RELEASE}.el6" )
elseif ( ${UNIX_CODENAME} MATCHES "Laughlin" )
set ( CPACK_RPM_PACKAGE_RELEASE "${CPACK_RPM_PACKAGE_RELEASE}.fc14" )
elseif ( ${UNIX_CODENAME} MATCHES "Lovelock" )
set ( CPACK_RPM_PACKAGE_RELEASE "${CPACK_RPM_PACKAGE_RELEASE}.fc15" )
elseif ( ${UNIX_CODENAME} MATCHES "Verne" )
set ( CPACK_RPM_PACKAGE_RELEASE "${CPACK_RPM_PACKAGE_RELEASE}.fc16" )
elseif ( ${UNIX_CODENAME} MATCHES "BeefyMiracle" )
set ( CPACK_RPM_PACKAGE_RELEASE "${CPACK_RPM_PACKAGE_RELEASE}.fc17" )
elseif ( ${UNIX_CODENAME} MATCHES "SphericalCow" )
set ( CPACK_RPM_PACKAGE_RELEASE "${CPACK_RPM_PACKAGE_RELEASE}.fc18" )
endif ( ${UNIX_CODENAME} MATCHES "Tikanga" )
if ( "${UNIX_DIST}" MATCHES "RedHatEnterprise" )
string ( REGEX REPLACE "^([0-9])\\.[0-9]+$" "\\1" TEMP ${UNIX_RELEASE} )
set ( CPACK_RPM_PACKAGE_RELEASE "1.el${TEMP}" )
elseif ( "${UNIX_DIST}" MATCHES "Fedora" )
set ( CPACK_RPM_PACKAGE_RELEASE "1.fc${UNIX_RELEASE}" )
endif ( "${UNIX_DIST}" MATCHES "RedHatEnterprise" )

# If CPACK_SET_DESTDIR is ON then the Prefix doesn't get put in the spec file
if( CPACK_SET_DESTDIR )
Expand All @@ -57,5 +50,5 @@ if ( ${UNIX_DIST} MATCHES "RedHatEnterprise" OR ${UNIX_DIST} MATCHES "Fedora" OR
set ( CPACK_PACKAGE_FILE_NAME
"${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}.${CPACK_RPM_PACKAGE_ARCHITECTURE}" )
endif ( RPMBUILD_CMD)
endif ( ${UNIX_DIST} MATCHES "RedHatEnterprise" OR ${UNIX_DIST} MATCHES "Fedora" OR ${UNIX_DIST} MATCHES "SUSE LINUX" )
endif ()

10 changes: 9 additions & 1 deletion Code/Mantid/Build/CMake/CommonSetup.cmake
Expand Up @@ -214,6 +214,14 @@ include ( VersionNumber )
###########################################################################

find_package ( OpenMP )
if ( OPENMP_FOUND )
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}" )
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}" )
if ( NOT WIN32 )
set (CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${OpenMP_CXX_FLAGS}" )
endif ()
endif ()


###########################################################################
# Add linux-specific things
Expand Down Expand Up @@ -252,7 +260,7 @@ endif ()
find_package ( GMock )

if ( GMOCK_FOUND AND GTEST_FOUND )
message ( STATUS "GMock/GTest is available for unit tests." )
message ( STATUS "GMock/GTest (${GMOCK_VERSION}) is available for unit tests." )
else ()
message ( STATUS "GMock/GTest is not available. Some unit tests will not run." )
endif()
Expand Down
2 changes: 0 additions & 2 deletions Code/Mantid/Build/CMake/CppCheck_Suppressions.txt
Expand Up @@ -3,8 +3,6 @@
//exceptNew:src/file1.cpp

// suppress in all files - BE CAREFULL not to leave trailing spaces after the rule id. or empty lines
// This finds false positives where private member variable names reused by inheriting classes
duplInheritedMember
// For a library this is not a problem per se
unusedFunction
// cppcheck has problems handling the number of pre-processor definitions used in the DLL_EXPORTs
Expand Down
139 changes: 89 additions & 50 deletions Code/Mantid/Build/CMake/DarwinSetup.cmake
@@ -1,12 +1,59 @@
###########################################################################
# Determine the version of OS X that we are running
###########################################################################

# Set the system name (and remove the space)
execute_process(
COMMAND /usr/bin/sw_vers -productVersion
OUTPUT_VARIABLE OSX_VERSION
RESULT_VARIABLE OSX_VERSION_STATUS
)
# Strip off any /CR or /LF
string(STRIP ${OSX_VERSION} OSX_VERSION)

if (OSX_VERSION VERSION_LESS 10.6)
message (FATAL_ERROR "The minimum supported version of Mac OS X is 10.6 (Snow Leopard).")
endif()

if (OSX_VERSION VERSION_GREATER 10.6 OR OSX_VERSION VERSION_EQUAL 10.6)
set ( OSX_CODENAME "Snow Leopard" )
endif()

if (OSX_VERSION VERSION_GREATER 10.7 OR OSX_VERSION VERSION_EQUAL 10.7)
set ( OSX_CODENAME "Lion")
endif()

if (OSX_VERSION VERSION_GREATER 10.8 OR OSX_VERSION VERSION_EQUAL 10.8)
set ( OSX_CODENAME "Mountain Lion")
endif()

if (OSX_VERSION VERSION_GREATER 10.9 OR OSX_VERSION VERSION_EQUAL 10.9)
set ( OSX_CODENAME "Mavericks")

endif()

# Export variables globally
set(OSX_VERSION ${OSX_VERSION} CACHE INTERNAL "")
set(OSX_CODENAME ${OSX_CODENAME} CACHE INTERNAL "")

message (STATUS "Operating System: Mac OS X ${OSX_VERSION} (${OSX_CODENAME})")

###########################################################################
# Set include and library directories so that CMake finds Third_Party
###########################################################################
set ( CMAKE_INCLUDE_PATH "${THIRD_PARTY}/include" )
set ( BOOST_INCLUDEDIR "${THIRD_PARTY}/include" )

set ( CMAKE_LIBRARY_PATH "${THIRD_PARTY}/lib/mac64" )
set ( BOOST_LIBRARYDIR "${THIRD_PARTY}/lib/mac64" )
# Only use Third_Party for OS X older than Mavericks (10.9)
if (OSX_VERSION VERSION_LESS 10.9)
message ( STATUS "Using Third_Party.")

set ( CMAKE_INCLUDE_PATH "${THIRD_PARTY}/include" )
set ( BOOST_INCLUDEDIR "${THIRD_PARTY}/include" )

set ( CMAKE_LIBRARY_PATH "${THIRD_PARTY}/lib/mac64" )
set ( BOOST_LIBRARYDIR "${THIRD_PARTY}/lib/mac64" )
else()
message ( STATUS "OS X Mavericks - Not using Mantid Third_Party libraries.")
endif()

# Enable the use of the -isystem flag to mark headers in Third_Party as system headers
set(CMAKE_INCLUDE_SYSTEM_FLAG_CXX "-isystem ")
Expand All @@ -25,8 +72,8 @@ if ( PYTHON_VERSION_MAJOR )
set ( PY_VER "${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}" )
message ( STATUS "Python version is " ${PY_VER} )
else ()
# Older versions of CMake don't set these variables so just assume 2.6 as before
set ( PY_VER 2.6 )
# Older versions of CMake don't set these variables so just assume 2.7
set ( PY_VER 2.7 )
endif ()

###########################################################################
Expand All @@ -45,8 +92,10 @@ endif()
###########################################################################
# Mac-specific installation setup
###########################################################################
set ( CMAKE_INSTALL_PREFIX /Applications )
set ( CMAKE_INSTALL_PREFIX "" )
set ( CPACK_PACKAGE_EXECUTABLES MantidPlot )
set ( INBUNDLE MantidPlot.app/ )

# We know exactly where this has to be on Darwin
set ( PARAVIEW_APP_DIR "/Applications/${OSX_PARAVIEW_APP}" )
set ( PARAVIEW_APP_BIN_DIR "${PARAVIEW_APP_DIR}/Contents/MacOS" )
Expand All @@ -59,69 +108,59 @@ set ( PLUGINS_DIR MantidPlot.app/plugins )
set ( PVPLUGINS_DIR MantidPlot.app/pvplugins )
set ( PVPLUGINS_SUBDIR pvplugins ) # Need to tidy these things up!

if (OSX_VERSION VERSION_LESS 10.9)
set ( PYQT4_PYTHONPATH /Library/Python/${PY_VER}/site-packages/PyQt4 )
set ( SITEPACKAGES /Library/Python/${PY_VER}/site-packages )
else()
# Assume we are using homebrew for now
set ( PYQT4_PYTHONPATH /usr/local/lib/python${PY_VER}/site-packages/PyQt4 )
set ( SITEPACKAGES /usr/local/lib/python${PY_VER}/site-packages )
endif()

# Python packages

install ( PROGRAMS /Library/Python/${PY_VER}/site-packages/sip.so DESTINATION ${BIN_DIR} )
install ( PROGRAMS ${SITEPACKAGES}/sip.so DESTINATION ${BIN_DIR} )

# Explicitly specify which PyQt libraries we want because just taking the whole
# directory will swell the install kit unnecessarily.
install ( FILES /Library/Python/${PY_VER}/site-packages/PyQt4/Qt.so
/Library/Python/${PY_VER}/site-packages/PyQt4/QtCore.so
/Library/Python/${PY_VER}/site-packages/PyQt4/QtGui.so
/Library/Python/${PY_VER}/site-packages/PyQt4/QtOpenGL.so
/Library/Python/${PY_VER}/site-packages/PyQt4/QtSql.so
/Library/Python/${PY_VER}/site-packages/PyQt4/QtSvg.so
/Library/Python/${PY_VER}/site-packages/PyQt4/QtXml.so
/Library/Python/${PY_VER}/site-packages/PyQt4/__init__.py
install ( FILES ${PYQT4_PYTHONPATH}/Qt.so
${PYQT4_PYTHONPATH}/QtCore.so
${PYQT4_PYTHONPATH}/QtGui.so
${PYQT4_PYTHONPATH}/QtOpenGL.so
${PYQT4_PYTHONPATH}/QtSql.so
${PYQT4_PYTHONPATH}/QtSvg.so
${PYQT4_PYTHONPATH}/QtXml.so
${PYQT4_PYTHONPATH}/__init__.py
DESTINATION ${BIN_DIR}/PyQt4 )
install ( DIRECTORY /Library/Python/${PY_VER}/site-packages/PyQt4/uic DESTINATION ${BIN_DIR}/PyQt4 )
# Newer PyQt versions have a new internal library that we need to take
if ( EXISTS ${PYQT4_PYTHONPATH}/_qt.so )
install ( FILES ${PYQT4_PYTHONPATH}/_qt.so
DESTINATION ${BIN_DIR}/PyQt4 )
endif ()

install ( DIRECTORY ${PYQT4_PYTHONPATH}/uic DESTINATION ${BIN_DIR}/PyQt4 )

# Python packages in Third_Party need copying to build directory and the final package
file ( GLOB THIRDPARTY_PYTHON_PACKAGES ${CMAKE_LIBRARY_PATH}/Python/* )
foreach ( PYPACKAGE ${THIRDPARTY_PYTHON_PACKAGES} )
install ( DIRECTORY ${PYPACKAGE} DESTINATION ${BIN_DIR} )
if ( IS_DIRECTORY ${PYPACKAGE} )
install ( DIRECTORY ${PYPACKAGE} DESTINATION ${BIN_DIR} )
endif()
file ( COPY ${PYPACKAGE} DESTINATION ${PROJECT_BINARY_DIR}/bin )
endforeach( PYPACKAGE )

install ( DIRECTORY ${QT_PLUGINS_DIR}/imageformats DESTINATION MantidPlot.app/Contents/Frameworks/plugins )
install ( DIRECTORY ${QT_PLUGINS_DIR}/sqldrivers DESTINATION MantidPlot.app/Contents/Frameworks/plugins )

install ( FILES ${CMAKE_SOURCE_DIR}/Images/MantidPlot.icns
${CMAKE_SOURCE_DIR}/Installers/MacInstaller/qt.conf
DESTINATION MantidPlot.app/Contents/Resources/
)

set ( CPACK_DMG_BACKGROUND_IMAGE ${CMAKE_SOURCE_DIR}/Images/osx-bundle-background.png )
set ( CPACK_DMG_DS_STORE ${CMAKE_SOURCE_DIR}/Installers/MacInstaller/osx_DS_Store)
set ( MACOSX_BUNDLE_ICON_FILE MantidPlot.icns )

# Set the system name (and remove the space)
execute_process(
COMMAND /usr/bin/sw_vers -productVersion
OUTPUT_VARIABLE OSX_VERSION
RESULT_VARIABLE OSX_VERSION_STATUS
)

# Strip off any /CR or /LF
string(STRIP ${OSX_VERSION} OSX_VERSION)

if (OSX_VERSION VERSION_LESS 10.6)
message (FATAL_ERROR "The minimum supported version of Mac OS X is 10.6 (Snow Leopard).")
endif()

if (OSX_VERSION VERSION_GREATER 10.6 OR OSX_VERSION VERSION_EQUAL 10.6)
set ( OSX_CODENAME "Snow Leopard" )
endif()

if (OSX_VERSION VERSION_GREATER 10.7 OR OSX_VERSION VERSION_EQUAL 10.7)
set ( OSX_CODENAME "Lion")
endif()

if (OSX_VERSION VERSION_GREATER 10.8 OR OSX_VERSION VERSION_EQUAL 10.8)
set ( OSX_CODENAME "Mountain Lion")
endif()

message (STATUS "Operating System: Mac OS X ${OSX_VERSION} (${OSX_CODENAME})")

string (REPLACE " " "" CPACK_SYSTEM_NAME ${OSX_CODENAME})
set ( CPACK_OSX_PACKAGE_VERSION 10.6 )
set ( CPACK_PREFLIGHT_SCRIPT ${CMAKE_SOURCE_DIR}/Installers/MacInstaller/installer_hooks/preflight )

set ( CPACK_GENERATOR PackageMaker )

set ( CPACK_GENERATOR DragNDrop )
9 changes: 8 additions & 1 deletion Code/Mantid/Build/CMake/DetermineLinuxDistro.cmake
Expand Up @@ -21,8 +21,15 @@ if ( LSB_CMD )
# Make Scientific Linux and CentOS look like RHEL6
string ( REGEX REPLACE "Carbon" "Santiago" UNIX_DIST ${UNIX_DIST} )
string ( REGEX REPLACE "Final" "Santiago" UNIX_DIST ${UNIX_DIST} )
# get the release
execute_process ( COMMAND ${LSB_CMD} -r
OUTPUT_VARIABLE UNIX_RELEASE
OUTPUT_STRIP_TRAILING_WHITESPACE )
string ( REGEX REPLACE "Release:" "" UNIX_RELEASE ${UNIX_RELEASE} )
string ( STRIP ${UNIX_RELEASE} UNIX_RELEASE )
else ( LSB_CMD )
set ( UNIX_DIST "" )
set ( UNIX_CODENAME "" )
set ( UNIX_RELEASE "" )
endif ( LSB_CMD )
message ( STATUS " DIST: ${UNIX_DIST} CODENAME: ${UNIX_CODENAME}" )
message ( STATUS " DIST: ${UNIX_DIST} ${UNIX_RELEASE} CODENAME: ${UNIX_CODENAME}" )
4 changes: 2 additions & 2 deletions Code/Mantid/Build/CMake/EmbeddedGTest.cmake
Expand Up @@ -3,8 +3,8 @@
# GTEST_FOUND If false, do not try to use Google Test

find_path ( GTEST_INCLUDE_DIR gtest/gtest.h
PATHS ${PROJECT_SOURCE_DIR}/TestingTools/gmock-1.6.0/gtest/include
${PROJECT_SOURCE_DIR}/../TestingTools/gmock-1.6.0/gtest/include
PATHS ${PROJECT_SOURCE_DIR}/TestingTools/gmock-${GMOCK_VERSION}/gtest/include
${PROJECT_SOURCE_DIR}/../TestingTools/gmock-${GMOCK_VERSION}/gtest/include
NO_DEFAULT_PATH )

# handle the QUIETLY and REQUIRED arguments and set GTEST_FOUND to TRUE if
Expand Down
3 changes: 2 additions & 1 deletion Code/Mantid/Build/CMake/FindCppcheck.cmake
Expand Up @@ -61,7 +61,8 @@ if(CPPCHECK_EXECUTABLE)
endif()

mark_as_advanced(CPPCHECK_EXECUTABLE)
set ( CPPCHECK_ARGS --enable=all --inline-suppr CACHE STRING "Arguments for running cppcheck" --suppressions ${CMAKE_CURRENT_SOURCE_DIR}/Build/CMake/CppCheck_Suppressions.txt )
set ( CPPCHECK_ARGS --enable=all --inline-suppr
--suppressions ${CMAKE_CURRENT_SOURCE_DIR}/Build/CMake/CppCheck_Suppressions.txt )
set ( CPPCHECK_NUM_THREADS 0 CACHE STRING "Number of threads to use when running cppcheck" )
set ( CPPCHECK_GENERATE_XML OFF CACHE BOOL "Generate xml output files from cppcheck" )

Expand Down
18 changes: 16 additions & 2 deletions Code/Mantid/Build/CMake/FindGMock.cmake
Expand Up @@ -2,9 +2,23 @@
# GMOCK_INCLUDE_DIR where to find gmock.h
# GMOCK_FOUND If false, do not try to use Google Mock

# Which version of gmock are we going to use ?
# GCC >4.7 and Clang use 1.7.0
# everything else, stick with 1.6.0
IF (CMAKE_COMPILER_IS_GNUCXX AND GCC_COMPILER_VERSION VERSION_GREATER "4.7")
set (GMOCK_VERSION "1.7.0")
ELSEIF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
set (GMOCK_VERSION "1.7.0")
ELSE()
set (GMOCK_VERSION "1.6.0")
ENDIF()

# Make GMOCK_VERSION available everywhere
set (GMOCK_VERSION ${GMOCK_VERSION} CACHE INTERNAL "")

find_path ( GMOCK_INCLUDE_DIR gmock/gmock.h
PATHS ${PROJECT_SOURCE_DIR}/TestingTools/gmock-1.6.0/include
${PROJECT_SOURCE_DIR}/../TestingTools/gmock-1.6.0/include
PATHS ${PROJECT_SOURCE_DIR}/TestingTools/gmock-${GMOCK_VERSION}/include
${PROJECT_SOURCE_DIR}/../TestingTools/gmock-${GMOCK_VERSION}/include
NO_DEFAULT_PATH )

SET(GMOCK_LIB gmock)
Expand Down

0 comments on commit 3ccb3b0

Please sign in to comment.