Skip to content

Commit

Permalink
Merge pull request #1 from root-project/master
Browse files Browse the repository at this point in the history
Upstream master merge
  • Loading branch information
egpbos authored Jul 26, 2017
2 parents 5b8b6aa + 4cb07bc commit 2544e31
Show file tree
Hide file tree
Showing 6,902 changed files with 733,003 additions and 312,501 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
3 changes: 1 addition & 2 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
Language: Cpp
# BasedOnStyle: LLVM
AccessModifierOffset: -3
AlignAfterOpenBracket: Align
Expand All @@ -12,7 +11,7 @@ AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: true
AllowShortFunctionsOnASingleLine: Inline
AllowShortIfStatementsOnASingleLine: true
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: true
# This option is "deprecated and is retained for backwards compatibility."
# AlwaysBreakAfterDefinitionReturnType: None
Expand Down
10 changes: 10 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,12 @@ project.xcworkspace
# CLion
.idea/*

# QtCreator
CMakeLists.txt.user

# Eclipse
.settings/*

# Vim
*.swp

Expand Down Expand Up @@ -80,6 +86,10 @@ project.xcworkspace
# /core/lzma/src/
/core/lzma/src/xz-5.2.1

# /core/lz4/src
/core/lz4/src/*.tar.gz
/core/lz4/src/lz4-*

# /core/metautils/src/
/core/metautils/src/stlLoader_set.cc
/core/metautils/src/stlLoader_map2.cc
Expand Down
34 changes: 25 additions & 9 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,19 +48,27 @@ matrix:
compiler: clang

- os: linux
env: TOOL=clang-tidy
env: TOOL=clang-tidy-analyzer
addons:
apt:
sources: *sources
packages: ['clang-3.9', 'clang-tidy-3.9', 'libstdc++-6-dev']
compiler: clang

- os: linux
env: TOOL=clang-tidy-modernize
addons:
apt:
sources: *sources
packages: ['clang-3.9', 'clang-tidy-3.9', 'libstdc++-6-dev']
compiler: clang

allow_failures:
# clang-tidy is still experimental
- env: TOOL=clang-tidy
# clang-tidy-modernize is still experimental
- env: TOOL=clang-tidy-modernize
install:
- |
if [[ $TOOL == 'clang-tidy' ]]; then
if [[ $TOOL == clang-tidy* ]]; then
export BUILD_DEPS="${TRAVIS_BUILD_DIR}/deps"
mkdir ${BUILD_DEPS} && cd ${BUILD_DEPS}
CMAKE_URL="https://cmake.org/files/v3.6/cmake-3.6.0-Linux-x86_64.tar.gz"
Expand All @@ -74,7 +82,7 @@ script:
- echo "Copying and generating header files." && echo -en "travis_fold:start:install.headers"
- |
# We need to put in place all relevant headers before running clang-tidy.
if [[ $TOOL == 'clang-tidy' ]]; then
if [[ $TOOL == clang-tidy* ]]; then
mkdir ../build
cd ../build
export CC=clang-3.9
Expand Down Expand Up @@ -119,21 +127,29 @@ script:
echo "$RESULT_OUTPUT"
exit 1
fi
elif [[ $TOOL == 'clang-tidy' ]]; then
elif [[ $TOOL == clang-tidy* ]]; then
CLANG_TIDY_CHECKS='-*'
if [[ $TOOL == clang-tidy-analyzer ]]; then
CLANG_TIDY_CHECKS+='clang-analyzer-*,-clang-analyzer-alpha*'
elif [[ $TOOL == clang-tidy-modernize ]]; then
CLANG_TIDY_CHECKS+='modernize*'
fi
echo "Running clang-tidy-3.9 only against the changes in branch $TRAVIS_BRANCH."
cd ../root/
# Workaround for travis issue: travis-ci/travis-ci#6069
git remote set-branches --add origin master
git fetch
RESULT_OUTPUT="$(git diff -U0 origin/master | clang-tidy-diff-3.9.py -p1 -clang-tidy-binary $(which clang-tidy-3.9) -checks=-*,clang-analyzer-*)"
RESULT_OUTPUT="$(git diff -U0 origin/master | clang-tidy-diff-3.9.py -p1 -clang-tidy-binary $(which clang-tidy-3.9) \
-checks=$CLANG_TIDY_CHECKS)"
if [[ $? -eq 0 ]]; then
echo "clang-tidy passed."
echo "$TOOL passed."
exit 0
else
echo "To reproduce it locally please run"
echo -e "\tgit checkout $TRAVIS_BRANCH"
echo -e "Command: git diff -U0 $TRAVIS_BRANCH..origin/master | clang-tidy-diff.py -p1 -clang-tidy-binary \$(which clang-tidy) -checks=-*,clang-analyzer-*"
echo -e "Command: git diff -U0 $TRAVIS_BRANCH..origin/master | clang-tidy-diff.py -p1 -clang-tidy-binary \$(which clang-tidy) -checks=$CLANG_TIDY_CHECKS"
echo "$RESULT_OUTPUT"
exit 1
fi
Expand Down
82 changes: 49 additions & 33 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,13 @@ include(cmake/modules/CaptureCommandLine.cmake)
project(ROOT)
set(IntegratedBuild ON)

#---Set the locale to default C to prevent issued due to localization of commands---------------
# This is necessary as we for example call `clang -v` and parse its output. But on a localized
# program, the output parsing is much more error prone as certrain strings we're looking for
# could be missing or be in a different order. To prevent those errors, let's just force all
# output to use the default C locale which is more or less identical on all systems.
set(ENV{LANG} C)

#---Set pathes where to put the libraries, executables and headers------------------------------
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
Expand Down Expand Up @@ -63,6 +70,14 @@ if(coverage)
set(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS} ${GCC_COVERAGE_COMPILE_FLAGS}")
endif()

#--- Enable build timing -----------------------------------------------------------------------
if (build_timing)
# FIXME: This currently will override the use of ccache if -Dbuild_timing=On -Dccache=On is passed.
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CMAKE_COMMAND} -E time")
set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK "${CMAKE_COMMAND} -E time")
#set_property(GLOBAL PROPERTY RULE_LAUNCH_CUSTOM "${CMAKE_COMMAND} -E time")
endif()

#---Enable CTest package -----------------------------------------------------------------------
#include(CTest)
if(testing)
Expand Down Expand Up @@ -171,36 +186,42 @@ if(cxxmodules)
# for glew.h to it its trick.
set(ROOT_CXXMODULES_COMMONFLAGS "${ROOT_CXXMODULES_COMMONFLAGS} -isystem ${CMAKE_SOURCE_DIR}/graf3d/glew/isystem")
endif()
endif(cxxmodules)

add_custom_target(copymodulemap DEPENDS "${CMAKE_BINARY_DIR}/include/module.modulemap")
add_custom_command(
OUTPUT "${CMAKE_BINARY_DIR}/include/module.modulemap"
DEPENDS build/unix/module.modulemap "${CMAKE_BINARY_DIR}/include/module.modulemap.extra"
COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/build/unix/module.modulemap" "${CMAKE_BINARY_DIR}/include/module.modulemap"
COMMAND cat "${CMAKE_BINARY_DIR}/include/module.modulemap.extra" >> "${CMAKE_BINARY_DIR}/include/module.modulemap"
)

add_dependencies(move_artifacts copymodulemap)

# Provide our own modulemap for implementations other than libcxx.
if (NOT libcxx)
# Write a empty overlay file to the output directory that CMake can run its compiler tests.
# We will create the actual overlay later in the configuration.
file(WRITE ${CMAKE_BINARY_DIR}/include/modulemap.overlay.yaml "{'version' : 0, 'roots' : []}")
set(__vfs_overlay "-ivfsoverlay ${CMAKE_BINARY_DIR}/include/modulemap.overlay.yaml")
add_custom_target(copymodulemap DEPENDS "${CMAKE_BINARY_DIR}/include/module.modulemap")
add_custom_command(
OUTPUT "${CMAKE_BINARY_DIR}/include/module.modulemap"
DEPENDS build/unix/module.modulemap "${CMAKE_BINARY_DIR}/include/module.modulemap.extra"
COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/build/unix/module.modulemap" "${CMAKE_BINARY_DIR}/include/module.modulemap"
COMMAND cat "${CMAKE_BINARY_DIR}/include/module.modulemap.extra" >> "${CMAKE_BINARY_DIR}/include/module.modulemap"
)
install(FILES "${CMAKE_BINARY_DIR}/include/module.modulemap" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT headers)

add_dependencies(move_artifacts copymodulemap)

# Provide our own modulemap for implementations other than libcxx.
if (NOT libcxx)
# Write a empty overlay file to the output directory that CMake can run its compiler tests.
# We will create the actual overlay later in the configuration.
file(WRITE ${CMAKE_BINARY_DIR}/include/modulemap.overlay.yaml "{'version' : 0, 'roots' : []}")
set(__vfs_overlay "-ivfsoverlay ${CMAKE_BINARY_DIR}/include/modulemap.overlay.yaml")

if (cxxmodules)
set(ROOT_CXXMODULES_COMMONFLAGS "${ROOT_CXXMODULES_COMMONFLAGS} ${__vfs_overlay}")
endif(cxxmodules)

# Only use the first path from the HEADERS_LOCATION (which is separated by colons).
get_property(__libcpp_full_paths GLOBAL PROPERTY ROOT_CLING_CXX_HEADERS_LOCATION)
string(REGEX MATCHALL "[^:]+" __libcpp_full_paths_list "${__libcpp_full_paths}")
list(GET __libcpp_full_paths_list 0 __libcpp_full_path)
# Only use the first path from the HEADERS_LOCATION (which is separated by colons).
get_property(__libcpp_full_paths GLOBAL PROPERTY ROOT_CLING_CXX_HEADERS_LOCATION)
string(REGEX MATCHALL "[^:]+" __libcpp_full_paths_list "${__libcpp_full_paths}")
list(GET __libcpp_full_paths_list 0 __libcpp_full_path)

configure_file(${CMAKE_SOURCE_DIR}/build/unix/modulemap.overlay.yaml.in ${CMAKE_BINARY_DIR}/include/modulemap.overlay.yaml @ONLY)
configure_file(${CMAKE_SOURCE_DIR}/build/unix/modulemap.overlay.yaml.in ${CMAKE_BINARY_DIR}/include/modulemap.overlay.yaml @ONLY)

configure_file(${CMAKE_SOURCE_DIR}/build/unix/stl.cppmap ${CMAKE_BINARY_DIR}/include/stl.cppmap)
configure_file(${CMAKE_SOURCE_DIR}/build/unix/libc.modulemap ${CMAKE_BINARY_DIR}/include/libc.modulemap)
endif()
configure_file(${CMAKE_SOURCE_DIR}/build/unix/stl.cppmap ${CMAKE_BINARY_DIR}/include/stl.cppmap)
configure_file(${CMAKE_SOURCE_DIR}/build/unix/libc.modulemap ${CMAKE_BINARY_DIR}/include/libc.modulemap)
endif()

if (cxxmodules)
# These vars are useful when we want to compile things without cxxmodules.
set(ROOT_CXXMODULES_CXXFLAGS "${ROOT_CXXMODULES_COMMONFLAGS} -fcxx-modules" CACHE STRING "Useful to filter out the modules-related cxxflags.")
if (NOT APPLE)
Expand Down Expand Up @@ -248,11 +269,10 @@ ROOT_ADD_TEST_SUBDIRECTORY(tutorials)
# Take all the modulemap contents we collected from the packages and append them to our modulemap.
# We have to delay this because the ROOT_CXXMODULES_EXTRA_MODULEMAP_CONTENT is filled in the
# add_subdirectory calls above.
if(cxxmodules)
get_property(__modulemap_extra_content GLOBAL PROPERTY ROOT_CXXMODULES_EXTRA_MODULEMAP_CONTENT)
string(REPLACE ";" "" __modulemap_extra_content "${__modulemap_extra_content}")
file(WRITE "${CMAKE_BINARY_DIR}/include/module.modulemap.extra" "${__modulemap_extra_content}")
endif(cxxmodules)
get_property(__modulemap_extra_content GLOBAL PROPERTY ROOT_CXXMODULES_EXTRA_MODULEMAP_CONTENT)
string(REPLACE ";" "" __modulemap_extra_content "${__modulemap_extra_content}")
file(WRITE "${CMAKE_BINARY_DIR}/include/module.modulemap.extra" "${__modulemap_extra_content}")


get_property(__allHeaders GLOBAL PROPERTY ROOT_HEADER_TARGETS)
add_custom_target(move_headers ALL DEPENDS ${__allHeaders})
Expand Down Expand Up @@ -379,10 +399,6 @@ if(testing)
add_subdirectory(roottest)
endif()
endif()
if(clingtest)
message("-- cling test suite enabled: llvm / clang symbols in libCling will be exported!")
set(CLING_INCLUDE_TESTS ON)
endif()
endif()

#---Packaging-------------------------------------------------------------------------------------
Expand Down
14 changes: 11 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ MODULES = build interpreter/llvm interpreter/cling core/foundation \
core/clingutils core/dictgen core/metacling \
core/pcre core/clib \
core/textinput core/base core/cont core/meta core/thread \
io/rootpcm io/io math/mathcore net/net core/zip core/lzma \
io/rootpcm io/io math/mathcore net/net core/zip core/lzma core/lz4 \
math/matrix \
core/newdelete hist/hist hist/unfold tree/tree graf2d/freetype \
graf2d/mathtext graf2d/graf graf2d/gpad graf3d/g3d \
Expand Down Expand Up @@ -587,7 +587,7 @@ COREDICTHDEP = $(BASEDICTH) $(CONTH) $(METAH) $(SYSTEMDH) \
$(ZIPDICTH) $(CLIBHH) $(FOUNDATIONH) $(TEXTINPUTH)
COREDICTH = $(BASEDICTH) $(CONTH) $(METAH) $(SYSTEMDICTH) \
$(ZIPDICTH) $(CLIBHH) $(FOUNDATIONH) $(TEXTINPUTH)
COREO = $(BASEO) $(CONTO) $(FOUNDATIONO) $(METAO) $(SYSTEMO) $(ZIPO) $(LZMAO) \
COREO = $(BASEO) $(CONTO) $(FOUNDATIONO) $(METAO) $(SYSTEMO) $(ZIPO) $(LZMAO) $(LZ4O) \
$(CLIBO) $(TEXTINPUTO)

CORELIB := $(LPATH)/libCore.$(SOEXT)
Expand All @@ -606,6 +606,14 @@ CORELIBEXTRA += $(LZMALIB)
STATICEXTRALIBS += $(LZMALIB)
endif

ifneq ($(BUILTINLZ4),yes)
CORELIBEXTRA += $(LZ4LIBDIR) $(LZ4CLILIB)
STATICEXTRALIBS += $(LZ4LIBDIR) $(LZ4CLILIB)
else
CORELIBEXTRA += $(LZ4LIB)
STATICEXTRALIBS += $(LZ4LIB)
endif

##### In case shared libs need to resolve all symbols (e.g.: aix, win32) #####

ifeq ($(EXPLICITLINK),yes)
Expand Down Expand Up @@ -1237,7 +1245,7 @@ ifeq ($(CXXMODULES),yes)
ROOTPCHCXXFLAGS := $(filter-out $(ROOT_CXXMODULES_CXXFLAGS),$(ROOTPCHCXXFLAGS))
endif

$(ROOTPCH): $(MAKEPCH) $(ROOTCLINGSTAGE1DEP) $(ALLHDRS) $(CLINGETCPCH) $(ORDER_) $(ALLLIBS)
$(ROOTPCH): $(MAKEPCH) $(ROOTCLINGSTAGE1DEP) $(ALLHDRS) $(CLINGETCPCH) $(MAKEPCHINPUT) $(ORDER_) $(ALLLIBS)
@$(MAKEPCHINPUT) $(ROOT_SRCDIR) "$(MODULES)" $(CLINGETCPCH) -- $(ROOTPCHCXXFLAGS) $(SYSTEMDEF)
@ROOTIGNOREPREFIX=1 $(MAKEPCH) $@

Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,15 +27,15 @@ an open system that can be dynamically extended by linking external
libraries. This makes ROOT a premier platform on which to build data
acquisition, simulation and data analysis systems.

[![License: LGPL v2.1](https://img.shields.io/badge/License-LGPL%20v2.1-blue.svg)](http://www.gnu.org/licenses/lgpl-2.1) [![Test coverage](https://root.cern/files/img/coverage-badge.svg)](https://phsft-jenkins.cern.ch/job/root-nightly-master-coverage/cobertura)
[![License: LGPL v2.1](https://img.shields.io/badge/License-LGPL%20v2.1-blue.svg)](http://www.gnu.org/licenses/lgpl-2.1) [![Test coverage](https://root.cern/files/img/coverage-badge.svg)](https://epsft-jenkins.cern.ch/job/root-nightly-master-coverage/cobertura)

## Build Status
| Branch | Continuous | Nightly |
|--------|------------|---------|
| master | [![Build Status](https://phsft-jenkins.cern.ch/buildStatus/icon?job=root-incremental-master)](https://phsft-jenkins.cern.ch/view/ROOT/job/root-incremental-master/) | [![Build Status](https://phsft-jenkins.cern.ch/buildStatus/icon?job=root-nightly-master)](https://phsft-jenkins.cern.ch/view/ROOT/job/root-nightly-master/) |
| master-noimt | [![Build Status](https://phsft-jenkins.cern.ch/buildStatus/icon?job=root-incremental-master-noimt)](https://phsft-jenkins.cern.ch/view/ROOT/job/root-incremental-master-noimt/) | [![Build Status](https://phsft-jenkins.cern.ch/buildStatus/icon?job=root-nightly-master-noimt)](https://phsft-jenkins.cern.ch/view/ROOT/job/root-nightly-master-noimt/) |
| v5-34-00-patches | [![Build Status](https://phsft-jenkins.cern.ch/buildStatus/icon?job=root-incremental-v5-34-00-patches)](https://phsft-jenkins.cern.ch/view/ROOT/job/root-incremental-v5-34-00-patches/) | [![Build Status](https://phsft-jenkins.cern.ch/buildStatus/icon?job=root-nightly-v5-34-00-patches)](https://phsft-jenkins.cern.ch/view/ROOT/job/root-nightly-v5-34-00-patches/) |
| v6-08-00-patches | [![Build Status](https://phsft-jenkins.cern.ch/buildStatus/icon?job=root-incremental-v6-08-00-patches)](https://phsft-jenkins.cern.ch/view/ROOT/job/root-incremental-v6-08-00-patches/) | [![Build Status](https://phsft-jenkins.cern.ch/buildStatus/icon?job=root-nightly-v6-08-00-patches)](https://phsft-jenkins.cern.ch/view/ROOT/job/root-nightly-v6-08-00-patches/) |
| master | [![Build Status](https://epsft-jenkins.cern.ch/buildStatus/icon?job=root-incremental-master)](https://epsft-jenkins.cern.ch/view/ROOT/job/root-incremental-master/) | [![Build Status](https://epsft-jenkins.cern.ch/buildStatus/icon?job=root-nightly-master)](https://epsft-jenkins.cern.ch/view/ROOT/job/root-nightly-master/) |
| master-noimt | [![Build Status](https://epsft-jenkins.cern.ch/buildStatus/icon?job=root-incremental-master-noimt)](https://epsft-jenkins.cern.ch/view/ROOT/job/root-incremental-master-noimt/) | [![Build Status](https://epsft-jenkins.cern.ch/buildStatus/icon?job=root-nightly-master-noimt)](https://epsft-jenkins.cern.ch/view/ROOT/job/root-nightly-master-noimt/) |
| v5-34-00-patches | [![Build Status](https://epsft-jenkins.cern.ch/buildStatus/icon?job=root-incremental-v5-34-00-patches)](https://epsft-jenkins.cern.ch/view/ROOT/job/root-incremental-v5-34-00-patches/) | [![Build Status](https://epsft-jenkins.cern.ch/buildStatus/icon?job=root-nightly-v5-34-00-patches)](https://epsft-jenkins.cern.ch/view/ROOT/job/root-nightly-v5-34-00-patches/) |
| v6-08-00-patches | [![Build Status](https://epsft-jenkins.cern.ch/buildStatus/icon?job=root-incremental-v6-08-00-patches)](https://epsft-jenkins.cern.ch/view/ROOT/job/root-incremental-v6-08-00-patches/) | [![Build Status](https://epsft-jenkins.cern.ch/buildStatus/icon?job=root-nightly-v6-08-00-patches)](https://epsft-jenkins.cern.ch/view/ROOT/job/root-nightly-v6-08-00-patches/) |

## Live Demo
[![](https://swanserver.web.cern.ch/swanserver/images/badge_swan_white_150.png)](http://cern.ch/swanserver/cgi-bin/go?projurl=https://github.com/cernphsft/rootbinder.git)
Expand Down
18 changes: 13 additions & 5 deletions README/CREDITS
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@ N: Mohammad Al-Turany
E: [email protected]
D: QTGSI classes

N: Guilherme Amadio
E: [email protected]
D: TDataFrame, build system, parallel writing

N: Eric Anciant
E: [email protected]
D: TQuaternion class
Expand Down Expand Up @@ -353,16 +357,12 @@ D: rootdrawtree and TSimpleAnalysis

N: Enrico Guiraud
E: [email protected]
D: author of the multiproc module
D: Multiproc runtime, TDataFrame

N: Thorsten Glebe
E: [email protected]
D: Original author of the Smatrix package

N: Sergei Gleyzer
E: [email protected]
D: TMVA

N: Piotr Golonka
E: [email protected]
D: class TMCParticle
Expand Down Expand Up @@ -908,6 +908,10 @@ N: Evgueni Tcherniaev
E: [email protected]
D: Paint3DAlgorithms used by the LEGO and SURF options

N: Enric Tejedor
E: [email protected]
D: IO, Parallelisation, Jupyter integration, TDataFrame

N: Jan Therhaag
E: [email protected]
D: author of the TMVA package
Expand All @@ -928,6 +932,10 @@ N: Georg Troska
E: [email protected]
D: Enhancement of the CANDLE drawing option

N: Xavier Valls
E: [email protected]
D: Interfaces to the MP and MT runtimes, parallelisation, vectorisation of fits

N: Alexandre V. Vaniachine
E: [email protected]
D: byteswapping assembler code for the i486 and up
Expand Down
12 changes: 6 additions & 6 deletions README/ReleaseNotes/empty.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,12 @@ The following people have contributed to this new version:
## Core Libraries


## I/O Libraries


## TTree Libraries


## Histogram Libraries


Expand All @@ -50,9 +56,6 @@ The following people have contributed to this new version:
## RooFit Libraries


## TTree Libraries


## 2D Graphics Libraries


Expand All @@ -62,9 +65,6 @@ The following people have contributed to this new version:
## Geometry Libraries


## I/O Libraries


## Database Libraries


Expand Down
Loading

0 comments on commit 2544e31

Please sign in to comment.