Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[cmake] use only source dirs as include paths when building ROOT #5181

Merged
merged 64 commits into from Apr 22, 2020

Conversation

linev
Copy link
Member

@linev linev commented Mar 19, 2020

Fully exclude ${CMAKE_BUILD_DIR)/include from includes paths when buiding ROOT libraries

Several generated files placed first to ${CMAKE_BUILD_DIR)/ginclude and then copied to include.

Dictionary generation still uses only ${CMAKE_BUILD_DIR)/include, otherwise cling complains about similar includes in different places. Once problem with cling fixed, source dirs can be used for it as well

@phsft-bot
Copy link
Collaborator

Starting build on ROOT-performance-centos7-multicore/default, ROOT-fedora27/noimt, ROOT-fedora29/python3, ROOT-fedora30/cxx14, ROOT-ubuntu16/nortcxxmod, ROOT-ubuntu18.04-i386/cxx14, mac1014/cxx17, windows10/cxx14
How to customize builds

@phsft-bot
Copy link
Collaborator

Build failed on ROOT-performance-centos7-multicore/default.
See console output.

Errors:

@phsft-bot
Copy link
Collaborator

Build failed on ROOT-fedora30/cxx14.
See console output.

Errors:

@phsft-bot
Copy link
Collaborator

Build failed on ROOT-fedora27/noimt.
See console output.

Errors:

@phsft-bot
Copy link
Collaborator

Build failed on ROOT-fedora29/python3.
See console output.

Errors:

@phsft-bot
Copy link
Collaborator

Starting build on ROOT-performance-centos7-multicore/default, ROOT-fedora27/noimt, ROOT-fedora29/python3, ROOT-fedora30/cxx14, ROOT-ubuntu16/nortcxxmod, ROOT-ubuntu18.04-i386/cxx14, mac1014/cxx17, windows10/cxx14
How to customize builds

@phsft-bot
Copy link
Collaborator

Build failed on ROOT-performance-centos7-multicore/default.
See console output.

Errors:

@phsft-bot
Copy link
Collaborator

Build failed on ROOT-fedora30/cxx14.
See console output.

Errors:

@phsft-bot
Copy link
Collaborator

Build failed on ROOT-fedora29/python3.
See console output.

Errors:

@phsft-bot
Copy link
Collaborator

Build failed on ROOT-fedora27/noimt.
See console output.

Errors:

@phsft-bot
Copy link
Collaborator

Build failed on ROOT-ubuntu16/nortcxxmod.
See console output.

Errors:

@phsft-bot
Copy link
Collaborator

Build failed on windows10/cxx14.
See console output.

Errors:

@phsft-bot
Copy link
Collaborator

Starting build on ROOT-performance-centos7-multicore/default, ROOT-fedora27/noimt, ROOT-fedora29/python3, ROOT-fedora30/cxx14, ROOT-ubuntu16/nortcxxmod, ROOT-ubuntu18.04-i386/cxx14, mac1014/cxx17, windows10/cxx14
How to customize builds

@phsft-bot
Copy link
Collaborator

Build failed on ROOT-fedora29/python3.
See console output.

Errors:

@phsft-bot
Copy link
Collaborator

Build failed on ROOT-fedora30/cxx14.
See console output.

Errors:

@phsft-bot
Copy link
Collaborator

Build failed on ROOT-fedora27/noimt.
See console output.

Errors:

@phsft-bot
Copy link
Collaborator

Build failed on ROOT-ubuntu16/nortcxxmod.
See console output.

Errors:

@phsft-bot
Copy link
Collaborator

Build failed on ROOT-performance-centos7-multicore/default.
See console output.

Errors:

@phsft-bot
Copy link
Collaborator

Build failed on windows10/cxx14.
See console output.

Errors:

linev and others added 23 commits April 22, 2020 11:14
Always provide them via target_include_directoris
ginclude/RConfigure.h created during configure and have to be copied
into include/ directory.
ginclude/RGitCommit.h created in core/CMakeLists.txt and also copied
into include/ directory.
Files from ginclude/ used for INSTALL
These was happening for G__Smatrix32 and G__GenVector32
It has PUBLIC section, which can be used to extract necessary
dependency for all libraries
When rootmap generated, all includes paths are stored
in the dictionary. For several very basic dictionaries
from clingutils one can reduce them, otherwise it pollute
gInterpreter->GetIncludeDirs()
It is used only from TROOT.cxx and was not installed before
While ${CMAKE_BINARY_DIR}/include used for some externals,
rootcling facing same includes twice and may fail.
Co-Authored-By: Axel Naumann <Axel.Naumann@cern.ch>
This required because of modules but also while
gInterpreter->GetIncludePath() will return all source dirs in output
@phsft-bot
Copy link
Collaborator

Starting build on ROOT-debian10-i386/cxx14, ROOT-performance-centos7-multicore/default, ROOT-fedora29/python3, ROOT-fedora30/cxx14, ROOT-fedora31/noimt, ROOT-ubuntu16/nortcxxmod, mac1015/cxx17, windows10/cxx14
How to customize builds

@linev linev dismissed amadio’s stale review April 22, 2020 10:59

Issues, mentioned by Guilherme, will be reolved in other PRs

@linev linev merged commit e1751b1 into root-project:master Apr 22, 2020
@linev linev deleted the only_local_includes branch April 22, 2020 14:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

8 participants