# Copyright (C) 1995-2019, Rene Brun and Fons Rademakers.
# All rights reserved.
#
# For the licensing terms see $ROOTSYS/LICENSE.
# For the list of contributors see $ROOTSYS/README/CREDITS.

############################################################################
# CMakeLists.txt file for building ROOT roofitcore package
# @author Pere Mato, CERN
############################################################################

ROOT_STANDARD_LIBRARY_PACKAGE(RooFitCore
  HEADERS
    Roo1DTable.h
    RooAbsAnaConvPdf.h
    RooAbsArg.h
    RooAbsBinning.h
    RooAbsCachedPdf.h
    RooAbsCachedReal.h
    RooAbsCacheElement.h
    RooAbsCache.h
    RooAbsCategory.h
    RooAbsCategoryLValue.h
    RooAbsCollection.h
    RooAbsData.h
    RooAbsDataStore.h
    RooAbsFunc.h
    RooAbsGenContext.h
    RooAbsHiddenReal.h
    RooAbsIntegrator.h
    RooAbsLValue.h
    RooAbsMCStudyModule.h
    RooAbsMoment.h
    RooAbsNumGenerator.h
    RooAbsOptTestStatistic.h
    RooAbsPdf.h
    RooAbsProxy.h
    RooAbsReal.h
    RooAbsRealLValue.h
    RooAbsRootFinder.h
    RooAbsSelfCachedPdf.h
    RooAbsSelfCachedReal.h
    RooAbsString.h
    RooAbsStudy.h
    RooAbsTestStatistic.h
    RooAcceptReject.h
    RooAdaptiveIntegratorND.h
    RooAddGenContext.h
    RooAddition.h
    RooAddModel.h
    RooAddPdf.h
    RooAICRegistry.h
    RooArgList.h
    RooArgProxy.h
    RooArgSet.h
    RooBanner.h
    RooBinIntegrator.h
    RooBinnedGenContext.h
    RooBinningCategory.h
    RooBinning.h
    RooBrentRootFinder.h
    RooCachedPdf.h
    RooCachedReal.h
    RooCacheManager.h
    RooCategory.h
    RooCategoryProxy.h
    RooChangeTracker.h
    RooChi2Var.h
    RooClassFactory.h
    RooCmdArg.h
    RooCmdConfig.h
    RooCompositeDataStore.h
    RooConstraintSum.h
    RooConstVar.h
    RooConvCoefVar.h
    RooConvGenContext.h
    RooConvIntegrandBinding.h
    RooCurve.h
    RooCustomizer.h
    RooDataHist.h
    RooDataHistSliceIter.h
    RooDataProjBinding.h
    RooDataSet.h
    RooDataWeightedAverage.h
    RooDerivative.h
    RooDirItem.h
    RooDLLSignificanceMCSModule.h
    RooDouble.h
    RooEffGenContext.h
    RooEfficiency.h
    RooEffProd.h
    RooEllipse.h
    RooErrorHandler.h
    RooErrorVar.h
    RooExpensiveObjectCache.h
    RooExtendedBinding.h
    RooExtendedTerm.h
    RooExtendPdf.h
    RooFactoryWSTool.h
    RooFFTConvPdf.h
    RooFirstMoment.h
    RooFit.h
    RooFitResult.h
    RooFoamGenerator.h
    RooFormula.h
    RooFormulaVar.h
    RooFracRemainder.h
    RooFunctor.h
    RooGenContext.h
    RooGenericPdf.h
    RooGenFitStudy.h
    RooGenFunction.h
    RooGenProdProj.h
    RooGlobalFunc.h
    RooGrid.h
    RooHashTable.h
    RooHistError.h
    RooHistFunc.h
    RooHist.h
    RooHistPdf.h
    RooImproperIntegrator1D.h
    RooIntegrator1D.h
    RooIntegrator2D.h
    RooIntegratorBinding.h
    RooInt.h
    RooInvTransform.h
    RooLinearVar.h
    RooLinkedListElem.h
    RooLinkedList.h
    RooLinkedListIter.h
    RooLinTransBinning.h
    RooList.h
    RooListProxy.h
    RooMappedCategory.h
    RooMath.h
    RooMCIntegrator.h
    RooMCStudy.h
    RooMinimizerFcn.h
    RooMinimizer.h
    RooMinuit.h
    RooMoment.h
    RooMPSentinel.h
    RooMsgService.h
    RooMultiCategory.h
    RooMultiGenFunction.h
    RooMultiVarGaussian.h
    RooNameReg.h
    RooNameSet.h
    RooNLLVar.h
    RooNormSetCache.h
    RooNumber.h
    RooNumCdf.h
    RooNumConvolution.h
    RooNumConvPdf.h
    RooNumGenConfig.h
    RooNumGenFactory.h
    RooNumIntConfig.h
    RooNumIntFactory.h
    RooNumRunningInt.h
    RooObjCacheManager.h
    RooParamBinning.h
    RooPlotable.h
    RooPlot.h
    RooPolyVar.h
    RooPrintable.h
    RooProdGenContext.h
    RooProdPdf.h
    RooProduct.h
    RooProfileLL.h
    RooProjectedPdf.h
    RooProofDriverSelector.h
    RooPullVar.h
    RooQuasiRandomGenerator.h
    RooRandom.h
    RooRandomizeParamMCSModule.h
    RooRangeBinning.h
    RooRangeBoolean.h
    RooRealAnalytic.h
    RooRealBinding.h
    RooRealConstant.h
    RooRealIntegral.h
    RooRealMPFE.h
    RooTemplateProxy.h
    RooRealProxy.h
    RooRealSumFunc.h
    RooRealSumPdf.h
    RooRealVar.h
    RooRealVarSharedProperties.h
    RooRecursiveFraction.h
    RooRefCountList.h
    RooSTLRefCountList.h
    RooResolutionModel.h
    RooScaledFunc.h
    RooSecondMoment.h
    RooSegmentedIntegrator1D.h
    RooSegmentedIntegrator2D.h
    RooSentinel.h
    RooSetPair.h
    RooSetProxy.h
    RooSharedProperties.h
    RooSimGenContext.h
    RooSimPdfBuilder.h
    RooSimSplitGenContext.h
    RooSimultaneous.h
    RooSimWSTool.h
    RooStreamParser.h
    RooStringVar.h
    RooStudyManager.h
    RooStudyPackage.h
    RooSuperCategory.h
    RooTable.h
    RooTFoamBinding.h
    RooThresholdCategory.h
    RooTObjWrap.h
    RooTrace.h
    RooTreeData.h
    RooTreeDataStore.h
    RooTruthModel.h
    RooUniformBinning.h
    RooUnitTest.h
    RooVectorDataStore.h
    RooWorkspace.h
    RooWorkspaceHandle.h
    RooXYChi2Var.h
    RooHelpers.h
    RooSpan.h
    BatchData.h
    BatchHelpers.h
    RooVDTHeaders.h
    RooWrapperPdf.h
    RooFitLegacy/RooCatTypeLegacy.h
    RooFitLegacy/RooCategorySharedProperties.h
  SOURCES
    src/BidirMMapPipe.cxx
    src/BidirMMapPipe.h
    src/Roo1DTable.cxx
    src/RooAbsAnaConvPdf.cxx
    src/RooAbsArg.cxx
    src/RooAbsBinning.cxx
    src/RooAbsCache.cxx
    src/RooAbsCachedPdf.cxx
    src/RooAbsCachedReal.cxx
    src/RooAbsCacheElement.cxx
    src/RooAbsCategory.cxx
    src/RooAbsCategoryLValue.cxx
    src/RooAbsCollection.cxx
    src/RooAbsData.cxx
    src/RooAbsDataStore.cxx
    src/RooAbsFunc.cxx
    src/RooAbsGenContext.cxx
    src/RooAbsHiddenReal.cxx
    src/RooAbsIntegrator.cxx
    src/RooAbsLValue.cxx
    src/RooAbsMCStudyModule.cxx
    src/RooAbsMoment.cxx
    src/RooAbsNumGenerator.cxx
    src/RooAbsOptTestStatistic.cxx
    src/RooAbsPdf.cxx
    src/RooAbsProxy.cxx
    src/RooAbsReal.cxx
    src/RooAbsRealLValue.cxx
    src/RooAbsRootFinder.cxx
    src/RooAbsSelfCachedPdf.cxx
    src/RooAbsSelfCachedReal.cxx
    src/RooAbsStudy.cxx
    src/RooAbsTestStatistic.cxx
    src/RooAcceptReject.cxx
    src/RooAdaptiveIntegratorND.cxx
    src/RooAddGenContext.cxx
    src/RooAddition.cxx
    src/RooAddModel.cxx
    src/RooAddPdf.cxx
    src/RooAICRegistry.cxx
    src/RooArgList.cxx
    src/RooArgProxy.cxx
    src/RooArgSet.cxx
    src/RooBanner.cxx
    src/RooBinIntegrator.cxx
    src/RooBinnedGenContext.cxx
    src/RooBinningCategory.cxx
    src/RooBinning.cxx
    src/RooBrentRootFinder.cxx
    src/RooCachedPdf.cxx
    src/RooCachedReal.cxx
    src/RooCacheManager.cxx
    src/RooCategory.cxx
    src/RooChangeTracker.cxx
    src/RooChi2Var.cxx
    src/RooClassFactory.cxx
    src/RooCmdArg.cxx
    src/RooCmdConfig.cxx
    src/RooCompositeDataStore.cxx
    src/RooConstraintSum.cxx
    src/RooConstVar.cxx
    src/RooConvCoefVar.cxx
    src/RooConvGenContext.cxx
    src/RooConvIntegrandBinding.cxx
    src/RooCurve.cxx
    src/RooCustomizer.cxx
    src/RooDataHist.cxx
    src/RooDataHistSliceIter.cxx
    src/RooDataProjBinding.cxx
    src/RooDataSet.cxx
    src/RooDataWeightedAverage.cxx
    src/RooDerivative.cxx
    src/RooDirItem.cxx
    src/RooDLLSignificanceMCSModule.cxx
    src/RooDouble.cxx
    src/RooEffGenContext.cxx
    src/RooEfficiency.cxx
    src/RooEffProd.cxx
    src/RooEllipse.cxx
    src/RooErrorVar.cxx
    src/RooExpensiveObjectCache.cxx
    src/RooExtendedBinding.cxx
    src/RooExtendedTerm.cxx
    src/RooExtendPdf.cxx
    src/RooFactoryWSTool.cxx
    src/RooFFTConvPdf.cxx
    src/RooFirstMoment.cxx
    src/RooFitResult.cxx
    src/RooFoamGenerator.cxx
    src/RooFormula.cxx
    src/RooFormulaVar.cxx
    src/RooFracRemainder.cxx
    src/RooFunctor.cxx
    src/RooGenContext.cxx
    src/RooGenericPdf.cxx
    src/RooGenFitStudy.cxx
    src/RooGenFunction.cxx
    src/RooGenProdProj.cxx
    src/RooGlobalFunc.cxx
    src/RooGrid.cxx
    src/RooHashTable.cxx
    src/RooHist.cxx
    src/RooHistError.cxx
    src/RooHistFunc.cxx
    src/RooHistPdf.cxx
    src/RooImproperIntegrator1D.cxx
    src/RooInt.cxx
    src/RooIntegrator1D.cxx
    src/RooIntegrator2D.cxx
    src/RooIntegratorBinding.cxx
    src/RooInvTransform.cxx
    src/RooLinearVar.cxx
    src/RooLinkedList.cxx
    src/RooLinkedListElem.cxx
    src/RooLinTransBinning.cxx
    src/RooList.cxx
    src/RooListProxy.cxx
    src/RooMappedCategory.cxx
    src/RooMath.cxx
    src/RooMCIntegrator.cxx
    src/RooMCStudy.cxx
    src/RooMinimizer.cxx
    src/RooMinimizerFcn.cxx
    src/RooMinuit.cxx
    src/RooMoment.cxx
    src/RooMPSentinel.cxx
    src/RooMsgService.cxx
    src/RooMultiCategory.cxx
    src/RooMultiGenFunction.cxx
    src/RooMultiVarGaussian.cxx
    src/RooNameReg.cxx
    src/RooNameSet.cxx
    src/RooNLLVar.cxx
    src/RooNormSetCache.cxx
    src/RooNumber.cxx
    src/RooNumCdf.cxx
    src/RooNumConvolution.cxx
    src/RooNumConvPdf.cxx
    src/RooNumGenConfig.cxx
    src/RooNumGenFactory.cxx
    src/RooNumIntConfig.cxx
    src/RooNumIntFactory.cxx
    src/RooNumRunningInt.cxx
    src/RooObjCacheManager.cxx
    src/RooParamBinning.cxx
    src/RooPlotable.cxx
    src/RooPlot.cxx
    src/RooPolyVar.cxx
    src/RooPrintable.cxx
    src/RooProdGenContext.cxx
    src/RooProdPdf.cxx
    src/RooProduct.cxx
    src/RooProfileLL.cxx
    src/RooProjectedPdf.cxx
    src/RooProofDriverSelector.cxx
    src/RooPullVar.cxx
    src/RooQuasiRandomGenerator.cxx
    src/RooRandom.cxx
    src/RooRandomizeParamMCSModule.cxx
    src/RooRangeBinning.cxx
    src/RooRangeBoolean.cxx
    src/RooRealAnalytic.cxx
    src/RooRealBinding.cxx
    src/RooRealConstant.cxx
    src/RooRealIntegral.cxx
    src/RooRealMPFE.cxx
    src/RooRealSumFunc.cxx
    src/RooRealSumPdf.cxx
    src/RooRealVar.cxx
    src/RooRealVarSharedProperties.cxx
    src/RooRecursiveFraction.cxx
    src/RooRefCountList.cxx
    src/RooSTLRefCountList.cxx
    src/RooResolutionModel.cxx
    src/RooScaledFunc.cxx
    src/RooSecondMoment.cxx
    src/RooSegmentedIntegrator1D.cxx
    src/RooSegmentedIntegrator2D.cxx
    src/RooSentinel.cxx
    src/RooSetPair.cxx
    src/RooSetProxy.cxx
    src/RooSharedProperties.cxx
    src/RooSimGenContext.cxx
    src/RooSimPdfBuilder.cxx
    src/RooSimSplitGenContext.cxx
    src/RooSimultaneous.cxx
    src/RooSimWSTool.cxx
    src/RooStreamParser.cxx
    src/RooStringVar.cxx
    src/RooStudyManager.cxx
    src/RooStudyPackage.cxx
    src/RooSuperCategory.cxx
    src/RooTable.cxx
    src/RooTFoamBinding.cxx
    src/RooThresholdCategory.cxx
    src/RooTObjWrap.cxx
    src/RooTrace.cxx
    src/RooTreeData.cxx
    src/RooTreeDataStore.cxx
    src/RooTruthModel.cxx
    src/RooUniformBinning.cxx
    src/RooUnitTest.cxx
    src/RooVectorDataStore.cxx
    src/RooWorkspace.cxx
    src/RooXYChi2Var.cxx
    src/RooHelpers.cxx
    src/BatchData.cxx
    src/BatchHelpers.cxx
    src/RooWrapperPdf.cxx
    src/RooFitLegacy/RooCatTypeLegacy.cxx
    src/RooFitLegacy/RooCategorySharedProperties.cxx
    src/RooFitLegacy/RooMultiCatIter.cxx
  DICTIONARY_OPTIONS
    "-writeEmptyRootPCM"
  DEPENDENCIES
    Core
    Hist
    Graf
    Matrix
    Tree
    Minuit
    RIO
    MathCore
    Foam
    Smatrix
  LINKDEF
    inc/LinkDef.h
)

list(APPEND fitcore_incl ${CMAKE_SOURCE_DIR}/roofit/roofitcore/inc)

if(vdt OR builtin_vdt)
   target_include_directories(RooFitCore PRIVATE ${VDT_INCLUDE_DIRS})
   list(APPEND fitcore_incl ${VDT_INCLUDE_DIRS})
endif()

foreach(incl ${fitcore_incl})
   target_include_directories(RooFitCore PUBLIC $<BUILD_INTERFACE:${incl}>)
endforeach()

ROOT_ADD_TEST_SUBDIRECTORY(test)
