Skip to content
Snippets Groups Projects
  1. Sep 26, 2018
  2. Sep 25, 2018
  3. Sep 21, 2018
  4. Sep 20, 2018
    • Elie Khairallah's avatar
      Final changes to py2help new (#2516) · dc825fc4
      Elie Khairallah authored
      * Centralise the generation of help for root command
      
      Add argparse2help.py, add root-argparse.py, delete the old help of root, add the cmake commands needed to generate the header containing the command line options help and to generate manual page for the root command.
      
      The python file argparse2help.py can be called with the root-argparse.py and the output name as arguments. This call will generate the header file if the output has an extension ".h" and will generate the manual page if the extension is ".1"
      
      * Centralise the generation of help for the rest of the commands
      
      Add cmake changes to generate headers and manual pages for rootcling hadd and hist2workspace
      Delete old man pages of hadd and hist2workspace
      Add commented out generation of man pages for python commands, we need to add a dependency before uncommenting them out
      Add hadd rootcling hist2workspace argparse modules
      
      * make the path compatible with windows
      
      * review modifications
      
      * add dependency on the input and the generation script of man pages
      
      * remove installation of headers
      
      * Update CMakeLists.txt
      
      It makes no sense to generates man pages on Windows. Windows does not have the `man` command.
      
      * Update argparse2help.py
      
      * Update argparse2help.py
      
      * Update argparse2help.py
      
      * Update hadd.cxx
      
      haddCommandLineOptionsHelp.h was not included for windows
      
      * Update root-argparse.py
      
      add the option --version
      
      * Update argparse2help.py
      
      simplified version (Thanks Bertrand !)
      dc825fc4
  5. Sep 04, 2018
  6. Aug 31, 2018
  7. Aug 29, 2018
    • Oksana Shadura's avatar
      Updates for generation of correct relative path for core headers · e56b4a96
      Oksana Shadura authored
      After removing globbing in core module, if to fetch a fresh master
      some headers were not able to get a valid relative path causing next error:
      -- /home/oksana/CERN_sources/root/builds/include/TArrayF.h
      CMake Error at cmake/modules/RootNewMacros.cmake:292 (message):
        Header path '/home/oksana/CERN_sources/root/builds/include/TArrayF.h'
        TArrayF.h is not relative!
      Call Stack (most recent call first):
        core/base/CMakeLists.txt:232 (ROOT_GENERATE_DICTIONARY)
      Adding extra replacement pattern, matching - $CMAKE_BUILD_DIR/include, fixes issue.
      e56b4a96
  8. Aug 27, 2018
  9. Aug 17, 2018
  10. Aug 10, 2018
  11. Jul 16, 2018
    • Guilherme Amadio's avatar
      Use all-keyword style in target_link_libraries() · fe4ffa75
      Guilherme Amadio authored
      When using builtin_openssl=ON, CMake erroneously exports the builtin
      static libraries in ROOTConfig-targets.cmake, which causes problems with
      dependent projects. In order to avoid this, we need Net and RHTTP to use
      SSL as a private dependency. Since CMake requires target_link_libraries()
      to either be all-plain (as before) or all-keyword (required to allow
      PRIVATE linking), we need to move the build system to use all-keyword
      linking only.
      
      Fixes: ROOT-9532
      fe4ffa75
  12. May 17, 2018
    • Raphael Isemann's avatar
      [cxxmodules] Better check if we should generate a C++ module · a91175d4
      Raphael Isemann authored
      We currently have two checks (that are supposed to have the same
      result) in the changed if-stmt and a few lines above where we
      set cpp_module_file. Obviously if we generate a module, we should
      also set cpp_module_file, however (due to the duplicated code) in
      the case of multidicts we generate a module without specifying the
      file. This probably causes CMake to behave incorrectly when rebuilding
      PCM files.
      a91175d4
    • Raphael Isemann's avatar
      [cxxmodules] Also install generated C++ modules · 8275e4a6
      Raphael Isemann authored
      We generate C++ modules, but we currently don't install them where
      they belong.
      8275e4a6
  13. May 12, 2018
    • Raphael Isemann's avatar
      [cxxmodules] Fix absolute paths for v7 headers in modulemap · a9da30b4
      Raphael Isemann authored
      Our CMake code for making path to headers relative is broken
      for the v7 headers (as they don't have the 'CURRENT_SOURCE/inc'
      prefix we check for). This caused that we have absolute paths for
      those headers in the modulemap we ship with ROOT. As the paths
      are only valid on the same system in the specific build folder,
      they prevent anyone from successfully building any ROOT module
      with this modulemap.
      
      This patch adds the additional check for v7 headers and also
      adds a fallback where we always remove the current source dir
      from the paths (which is necessary for all the tests which
      don't follow any directory structure).
      
      Also adds a sanity check that should prevent this error in the
      future by checking that paths are not absolute before we write
      them to the modulemap.
      a9da30b4
  14. Apr 10, 2018
  15. Mar 14, 2018
  16. Feb 28, 2018
  17. Feb 26, 2018
  18. Feb 22, 2018
  19. Feb 21, 2018
    • Guilherme Amadio's avatar
      Turn find_package() into no-op if looking for builtins · 08529687
      Guilherme Amadio authored
      From now on, if a package Foo is built by ROOT itself, its name should
      be added to the 'ROOT_BUILTINS' list, which turns find_package(Foo) into
      a no-op. This prevents find_package(Foo) from wrongly finding a version
      of the package already installed in the system, which would lead to
      inconsistencies in the build. Packages moving to this new system must
      make sure to setup all variables that would normally be set up by the
      call to find_package(), including the creation of imported targets with
      the appropriate properties (i.e., include directories, etc).
      08529687
  20. Feb 19, 2018
  21. Feb 18, 2018
    • Vassil Vassilev's avatar
      [modules][cxxmodules] Improve the layering of our special modules. · 1ff71841
      Vassil Vassilev authored
      There are three different kinds of header files in Core:
        * C headers - they can be included in C contexts
        * Config headers - they are supposed to be textually included in each
          TU.
        * No RTTI C++ headers - they can be built in non-rtti context which is
          needed for stage1 builds.
      
      The rest of the headers in Core require rtti in order to be built, either
      because they use typeinfo or exceptions.
      
      This patch structures the ROOT's special modules in that way allowing
      implicit module builds to be trigger from the right complation. For
      example, we cannot (and should not) trigger build of C++ module when
      compiling C code.
      1ff71841
  22. Jan 23, 2018
  23. Jan 17, 2018
  24. Dec 14, 2017
    • Raphael Isemann's avatar
      [cxxmodules] Also traverse 'used' C++ modules for the header check. · f8f9a14f
      Raphael Isemann authored
      rootcling performs an integrity check on the headers that are passed
      via the command line and the ones we have in the modulemap. As this
      check currently fails because we had to split up the Core and Thread,
      we signal with a `use` directive that these other modules belong to
      the current module.
      
      The `use` directive is usually only for signalling that we intend
      to use this other module from our module, but as we anyway don't
      use `-fmodules-decluse` in ROOT we can just reuse this for telling
      rootcling that it should also check the split out submodules when
      doing the integrity check for the headers.
      
      To give a concrete example: `ThreadLocalStorage` had to split
      out of `Thread` to fix a cycle between `Core` and `Thread`.
      However, rootcling now doesn't see the ThreadLocalStorage headers
      in the `Thread` module but we pass them to the rootcling invocation
      for `Thread`. This adds a `use ThreadLocalStorage` to Thread and
      lets rootcling also iterate all `use`'d other modules when doing
      this check, so we again have the full set of modules here.
      f8f9a14f
    • Raphael Isemann's avatar
      [cxxmodules] Don't generate C++ modules for clingutil STL dicts. · 8759b1a9
      Raphael Isemann authored
      These C++ modules serve no purpose as we
      1. already have an STL dict.
      2. they contain just interpreter clutter therefore.
      3. care only about the generated IO information.
      
      Let's disable them to get rid of all the build warning
      when rootcling can't find the specific STL header that doesn't
      exist inside ROOT:
      
      ```
      Warning in <GenerateModule>: warning: Couldn't find the following specified headers in the module listDict:
        list
      Warning in <GenerateModule>: warning: Couldn't find the following specified headers in the module multisetDict:
        set
      ```
      8759b1a9
    • Raphael Isemann's avatar
      [cxxmodules] Move away from environment variable · 3754fe59
      Raphael Isemann authored
      Beside the general aversion against using an environment variable
      for this setting, it also turns out that we can't easily set an
      environment variable for a rootcling invocation in roottest.
      
      This patch adds the -cxxmodule flag to rootcling to allow activating
      this feature without the old environment variable. For backwards
      compability, we keep the ROOT_MODULES support alive (for now).
      3754fe59
    • Raphael Isemann's avatar
      [cxxmodules] Remove TVersionCheck.h from Core C++ module blacklist · 2ec9ee8d
      Raphael Isemann authored
      This header is supported in the C++ module, so we can remove it from
      the blacklist.
      2ec9ee8d
  25. Oct 11, 2017
  26. Oct 09, 2017
  27. Oct 08, 2017
  28. Oct 03, 2017
    • Bertrand Bellenot's avatar
      Add support for Windows (Visual Studio) in the cmake infrastructure · 9d93e0df
      Bertrand Bellenot authored
       - Add missing includes (gdk/glib) for TGWin32 dictionary generation
       - Replace use of bindexplib by CMake's built-in WINDOWS_EXPORT_ALL_SYMBOLS property
       - Replace old nmake based build by the CMake based one for builtin_freetype and builtin_pcre
       - Add support for Visual Studio for LZ4
       - Fix compilation of builtin_afterimage
       - Add a few missing compilation flags
       - Filter out the multiproc sub-directory
      9d93e0df
    • Raphael Isemann's avatar
      [cxxmodules] Generating private/non-ROOT modulemaps. · d8950f7d
      Raphael Isemann authored
      Right now we only generate modulemaps for the ROOT libraries which
      are exposed to the user. But we also have generate dictionary
      calls for dictionaries that are not exposed to the user and should
      only be private (such as TBench, TMathCoreUnitDict etc.).
      
      Right now we fail when compiling root on those dictionaries as we
      don't have a modulemap for those dictionaries and we don't generate
      one. This will also break tests that use the generate dictionary
      call as those also don't have a modulemap now.
      
      This patch reuses the existing CMake code for generating modulemaps
      and also uses it in those cases to provide a dictionary that
      rootcling can use to generate a C++ module.
      d8950f7d
  29. Sep 29, 2017
    • Raphael Isemann's avatar
      [cxxmodules] Fix path to module file in CMake · be1fbe9a
      Raphael Isemann authored
      Currently CMake has the wrong path to check for this file, which
      means it always regenerates the modules with runtime_cxxmodules
      enabled as it never sees the generated file (which is in another
      path).
      be1fbe9a
  30. Sep 27, 2017
Loading