Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
rootcling_impl.h
Go to the documentation of this file.
1 // Authors: Axel Naumann, Philippe Canal, Danilo Piparo
2 
3 /*************************************************************************
4  * Copyright (C) 1995-2016, Rene Brun and Fons Rademakers. *
5  * All rights reserved. *
6  * *
7  * For the licensing terms see $ROOTSYS/LICENSE. *
8  * For the list of contributors see $ROOTSYS/README/CREDITS. *
9  *************************************************************************/
10 
11 #include <string>
12 
13 namespace cling {
14  class Interpreter;
15 }
16 
17 namespace ROOT {
18 namespace Internal {
19 namespace RootCling {
20  struct DriverConfig {
21  bool fBuildingROOTStage1 = false;
22  const char** fPRootDir = nullptr;
23 
24  // Function that might (rootcling) or might not (rootcling_stage1) be there.
25  const char ** * (*fTROOT__GetExtraInterpreterArgs)() = nullptr;
26  const char *(*fTROOT__GetIncludeDir)() = nullptr;
27  const char *(*fTROOT__GetEtcDir)() = nullptr;
28  cling::Interpreter *(*fTCling__GetInterpreter)() = nullptr;
29  void (*fInitializeStreamerInfoROOTFile)(const char *filename) = nullptr;
30  void (*fAddStreamerInfoToROOTFile)(const char *normName) = nullptr;
31  void (*fAddTypedefToROOTFile)(const char *tdname) = nullptr;
32  void (*fAddEnumToROOTFile)(const char *tdname) = nullptr;
33  void (*fAddAncestorPCMROOTFile)(const char *pcmName) = nullptr;
34  bool (*fCloseStreamerInfoROOTFile)(bool writeEmptyRootPCM) = nullptr;
35  };
36 
37  struct TROOTSYSSetter {
38  TROOTSYSSetter();
39  };
40 } // namespace RootCling
41 } // namespace Internal
42 } // namespace ROOT
43 
44 #ifndef R__DLLEXPORT
45 #ifdef _MSC_VER
46 #define R__DLLEXPORT __declspec(dllexport)
47 #else
48 #define R__DLLEXPORT __attribute__ ((visibility ("default")))
49 #endif
50 #endif
51 
52 extern "C" R__DLLEXPORT
53 int ROOT_rootcling_Driver(int argc, char **argv, const ROOT::Internal::RootCling::DriverConfig& config);