SubDir HAIKU_TOP src apps haikudepot ; include [ FDirName $(HAIKU_TOP) src apps haikudepot build jam HdsSchemaGenRules ] ; UsePrivateHeaders interface kernel net package shared storage support ; HAIKUDEPOT_GENERATED_SOURCES_DIRECTORY = $(TARGET_COMMON_DEBUG_LOCATE_TARGET) ; # During the build process, some sources are generated into directories. These # are the directories. local dumpExportRepositoryBulkListerTargetDirectory = [ FDirName $(HAIKUDEPOT_GENERATED_SOURCES_DIRECTORY) dumpexportrepositorybulklistener ] ; local dumpExportPkgBulkListenerTargetDirectory = [ FDirName $(HAIKUDEPOT_GENERATED_SOURCES_DIRECTORY) dumpexportpkgbulklistener ] ; local dumpExportPkgModelTargetDirectory = [ FDirName $(HAIKUDEPOT_GENERATED_SOURCES_DIRECTORY) dumpexportpkgmodel ] ; local dumpExportRepositoryModelTargetDirectory = [ FDirName $(HAIKUDEPOT_GENERATED_SOURCES_DIRECTORY) dumpexportrepositorymodel ] ; # During the build process, some sources are generated into a directory. In # order to maintain a timestamp on that generation process, a dummy file is # used to signify the target of the generation. The leafname of this dummy file # is defined here. local dummyFile = "dummy.dat" ; local dumpExportRepositoryBulkListerTargetFile = [ FDirName $(dumpExportRepositoryBulkListerTargetDirectory) $(dummyFile) ] ; local dumpExportPkgBulkListenerTargetFile = [ FDirName $(dumpExportPkgBulkListenerTargetDirectory) $(dummyFile) ] ; local dumpExportPkgModelTargetFile = [ FDirName $(dumpExportPkgModelTargetDirectory) $(dummyFile) ] ; local dumpExportRepositoryModelTargetFile = [ FDirName $(dumpExportRepositoryModelTargetDirectory) $(dummyFile) ] ; # source directories local sourceDirs = edits_generic model textview ui ui_generic server tar util ; local sourceDir ; for sourceDir in $(sourceDirs) { SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src apps haikudepot $(sourceDir) ] ; } SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src servers package ] ; SEARCH_SOURCE += $(dumpExportRepositoryBulkListerTargetDirectory) ; SEARCH_SOURCE += $(dumpExportPkgBulkListenerTargetDirectory) ; SEARCH_SOURCE += $(dumpExportPkgModelTargetDirectory) ; SEARCH_SOURCE += $(dumpExportRepositoryModelTargetDirectory) ; local textDocumentSources = # edits_generic CompoundEdit.cpp EditContext.cpp EditManager.cpp EditStack.cpp UndoableEdit.cpp # textview Bullet.cpp BulletData.cpp CharacterStyle.cpp CharacterStyleData.cpp MarkupParser.cpp Paragraph.cpp ParagraphLayout.cpp ParagraphStyle.cpp ParagraphStyleData.cpp TextDocument.cpp TextDocumentLayout.cpp TextDocumentView.cpp TextEditor.cpp TextListener.cpp TextSelection.cpp TextSpan.cpp TextView.cpp UndoableEditListener.cpp ; local applicationSources = App.cpp BarberPole.cpp BitmapButton.cpp BitmapView.cpp DecisionProvider.cpp FeaturedPackagesView.cpp FilterView.cpp LocalIconStore.cpp JobStateListener.cpp LinkView.cpp LinkedBitmapView.cpp Logger.cpp main.cpp MainWindow.cpp MarkupTextView.cpp MessagePackageListener.cpp Model.cpp PackageAction.cpp PackageActionHandler.cpp PackageContentsView.cpp PackageInfo.cpp PackageInfoListener.cpp PackageInfoView.cpp PackageListView.cpp PackageManager.cpp RatePackageWindow.cpp RatingView.cpp support.cpp ScreenshotWindow.cpp ScrollableGroupView.cpp SharedBitmap.cpp UserLoginWindow.cpp WorkStatusView.cpp # network + server / local processes AbstractProcess.cpp AbstractServerProcess.cpp AbstractSingleFileServerProcess.cpp LocalPkgDataLoadProcess.cpp LocalRepositoryUpdateProcess.cpp ProcessCoordinator.cpp ProcessCoordinatorFactory.cpp ProcessNode.cpp ServerHelper.cpp ServerSettings.cpp ServerPkgDataUpdateProcess.cpp ServerRepositoryDataUpdateProcess.cpp ServerIconExportUpdateProcess.cpp StandardMetaDataJsonEventListener.cpp StandardMetaData.cpp WebAppInterface.cpp # tar TarArchiveHeader.cpp TarArchiveService.cpp # util AppUtils.cpp DataIOUtils.cpp RepositoryUrlUtils.cpp StorageUtils.cpp ToFileUrlProtocolListener.cpp # package_daemon ProblemWindow.cpp ResultWindow.cpp ; local generatedPkgModelSourceFiles = DumpExportPkg.cpp DumpExportPkgCategory.cpp DumpExportPkgScreenshot.cpp DumpExportPkgVersion.cpp ; local generatedRepositoryModelSourceFiles = DumpExportRepository.cpp DumpExportRepositorySource.cpp DumpExportRepositorySourceMirror.cpp ; local generatedPkgParserSourceFiles = DumpExportPkgJsonListener.cpp ; local generatedRepositoryParserSourceFiles = DumpExportRepositoryJsonListener.cpp ; Application HaikuDepot : $(applicationSources) $(textDocumentSources) $(generatedPkgModelSourceFiles) $(generatedRepositoryModelSourceFiles) $(generatedPkgParserSourceFiles) $(generatedRepositoryParserSourceFiles) : be package bnetapi translation libcolumnlistview.a shared [ TargetLibstdc++ ] [ TargetLibsupc++ ] localestub : HaikuDepot.rdef ; DoCatalogs HaikuDepot : x-vnd.Haiku-HaikuDepot : App.cpp FeaturedPackagesView.cpp FilterView.cpp MainWindow.cpp Model.cpp PackageContentsView.cpp PackageInfoView.cpp PackageListView.cpp PackageManager.cpp RatePackageWindow.cpp ScreenshotWindow.cpp UserLoginWindow.cpp WorkStatusView.cpp ; Application TextDocumentTest : TextDocumentTest.cpp $(textDocumentSources) : be translation shared [ TargetLibsupc++ ] ; # The following use of rules configures the generation of .cpp and .h files from # JSON schemas that are defined in the HaikuDepotServer system. See the # included Jam rules and actions for the definitions. HdsSchemaGenModel $(dumpExportPkgModelTargetFile) : dumpexportpkg.json : jsonschema2cppmodel.py ; HdsSchemaGenModel $(dumpExportRepositoryModelTargetFile) : dumpexportrepository.json : jsonschema2cppmodel.py ; HdsSchemaGenBulkParser $(dumpExportRepositoryBulkListerTargetFile) : dumpexportrepository.json : jsonschema2cppparser.py ; HdsSchemaGenBulkParser $(dumpExportPkgBulkListenerTargetFile) : dumpexportpkg.json : jsonschema2cppparser.py ; HdsSchemaGenAppSrcDependsOnGeneration [ FGristFiles $(generatedPkgParserSourceFiles) ] [ FGristFiles $(generatedPkgParserSourceFiles:S=.h) ] : $(dumpExportPkgBulkListenerTargetFile) ; HdsSchemaGenAppSrcDependsOnGeneration [ FGristFiles $(generatedRepositoryParserSourceFiles) ] [ FGristFiles $(generatedRepositoryParserSourceFiles:S=.h) ] : $(dumpExportRepositoryBulkListerTargetFile) ; HdsSchemaGenAppSrcDependsOnGeneration [ FGristFiles $(generatedRepositoryModelSourceFiles) ] [ FGristFiles $(generatedRepositoryModelSourceFiles:S=.h) ] : $(dumpExportRepositoryModelTargetFile) ; HdsSchemaGenAppSrcDependsOnGeneration [ FGristFiles $(generatedPkgModelSourceFiles) ] [ FGristFiles $(generatedPkgModelSourceFiles:S=.h) ] : $(dumpExportPkgModelTargetFile) ; # This will ensure that if any of the generated files' header files change, then # the application should be re-built. Depends [ FGristFiles $(applicationSources:S=.o) ] : [ FGristFiles $(generatedPkgParserSourceFiles:S=.h) ] [ FGristFiles $(generatedRepositoryParserSourceFiles:S=.h) ] [ FGristFiles $(generatedRepositoryModelSourceFiles:S=.h) ] [ FGristFiles $(generatedPkgModelSourceFiles:S=.h) ] ;