1SubDir HAIKU_TOP src apps haikudepot ; 2 3# disable -Werror for this directory only 4SubDirC++Flags -Wno-error ; 5 6include [ FDirName $(HAIKU_TOP) src apps haikudepot build jam 7 HdsSchemaGenRules ] ; 8 9UsePrivateHeaders interface kernel net package shared storage support ; 10 11HAIKUDEPOT_GENERATED_SOURCES_DIRECTORY = $(TARGET_COMMON_DEBUG_LOCATE_TARGET) ; 12 13# During the build process, some sources are generated into directories. These 14# are the directories. 15 16local dumpExportRepositoryBulkListerTargetDirectory = 17 [ FDirName $(HAIKUDEPOT_GENERATED_SOURCES_DIRECTORY) 18 dumpexportrepositorybulklistener ] ; 19local dumpExportPkgBulkListenerTargetDirectory = 20 [ FDirName $(HAIKUDEPOT_GENERATED_SOURCES_DIRECTORY) 21 dumpexportpkgbulklistener ] ; 22local dumpExportReferenceListenerTargetDirectory = 23 [ FDirName $(HAIKUDEPOT_GENERATED_SOURCES_DIRECTORY) 24 dumpexportreferencelistener ] ; 25 26local dumpExportPkgModelTargetDirectory = 27 [ FDirName $(HAIKUDEPOT_GENERATED_SOURCES_DIRECTORY) 28 dumpexportpkgmodel ] ; 29local dumpExportRepositoryModelTargetDirectory = 30 [ FDirName $(HAIKUDEPOT_GENERATED_SOURCES_DIRECTORY) 31 dumpexportrepositorymodel ] ; 32local dumpExportReferenceModelTargetDirectory = 33 [ FDirName $(HAIKUDEPOT_GENERATED_SOURCES_DIRECTORY) 34 dumpexportreferencemodel ] ; 35 36# During the build process, some sources are generated into a directory. In 37# order to maintain a timestamp on that generation process, a dummy file is 38# used to signify the target of the generation. The leafname of this dummy file 39# is defined here. 40 41local dummyFile = "dummy.dat" ; 42 43local dumpExportRepositoryBulkListerTargetFile = 44 [ FDirName $(dumpExportRepositoryBulkListerTargetDirectory) $(dummyFile) ] ; 45local dumpExportPkgBulkListenerTargetFile = 46 [ FDirName $(dumpExportPkgBulkListenerTargetDirectory) $(dummyFile) ] ; 47local dumpExportReferenceListenerTargetFile = 48 [ FDirName $(dumpExportReferenceListenerTargetDirectory) $(dummyFile) ] ; 49 50local dumpExportPkgModelTargetFile = 51 [ FDirName $(dumpExportPkgModelTargetDirectory) $(dummyFile) ] ; 52local dumpExportRepositoryModelTargetFile = 53 [ FDirName $(dumpExportRepositoryModelTargetDirectory) $(dummyFile) ] ; 54local dumpExportReferenceModelTargetFile = 55 [ FDirName $(dumpExportReferenceModelTargetDirectory) $(dummyFile) ] ; 56 57# source directories 58local sourceDirs = 59 edits_generic 60 model 61 textview 62 ui 63 ui_generic 64 server 65 tar 66 util 67; 68 69local sourceDir ; 70for sourceDir in $(sourceDirs) { 71 SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src apps haikudepot $(sourceDir) ] ; 72} 73 74SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src servers package ] ; 75 76SEARCH_SOURCE += $(dumpExportRepositoryBulkListerTargetDirectory) ; 77SEARCH_SOURCE += $(dumpExportPkgBulkListenerTargetDirectory) ; 78SEARCH_SOURCE += $(dumpExportReferenceListenerTargetDirectory) ; 79 80SEARCH_SOURCE += $(dumpExportPkgModelTargetDirectory) ; 81SEARCH_SOURCE += $(dumpExportRepositoryModelTargetDirectory) ; 82SEARCH_SOURCE += $(dumpExportReferenceModelTargetDirectory) ; 83 84local textDocumentSources = 85 # edits_generic 86 CompoundEdit.cpp 87 EditContext.cpp 88 EditManager.cpp 89 EditStack.cpp 90 UndoableEdit.cpp 91 92 # textview 93 Bullet.cpp 94 BulletData.cpp 95 CharacterStyle.cpp 96 CharacterStyleData.cpp 97 MarkupParser.cpp 98 Paragraph.cpp 99 ParagraphLayout.cpp 100 ParagraphStyle.cpp 101 ParagraphStyleData.cpp 102 TextDocument.cpp 103 TextDocumentLayout.cpp 104 TextDocumentView.cpp 105 TextEditor.cpp 106 TextListener.cpp 107 TextSelection.cpp 108 TextSpan.cpp 109 TextView.cpp 110 UndoableEditListener.cpp 111; 112 113local applicationSources = 114 App.cpp 115 BarberPole.cpp 116 BitmapView.cpp 117 DecisionProvider.cpp 118 FeaturedPackagesView.cpp 119 FilterView.cpp 120 LocalIconStore.cpp 121 JobStateListener.cpp 122 LanguageModel.cpp 123 LinkView.cpp 124 LinkedBitmapView.cpp 125 Logger.cpp 126 main.cpp 127 MainWindow.cpp 128 MarkupTextView.cpp 129 MessagePackageListener.cpp 130 Model.cpp 131 PackageAction.cpp 132 PackageActionHandler.cpp 133 PackageContentsView.cpp 134 PackageInfo.cpp 135 PackageInfoListener.cpp 136 PackageInfoView.cpp 137 PackageListView.cpp 138 PackageManager.cpp 139 RatePackageWindow.cpp 140 RatingView.cpp 141 support.cpp 142 ScreenshotWindow.cpp 143 ScrollableGroupView.cpp 144 SharedBitmap.cpp 145 UserLoginWindow.cpp 146 WorkStatusView.cpp 147 148 # network + server / local processes 149 AbstractProcess.cpp 150 AbstractServerProcess.cpp 151 AbstractSingleFileServerProcess.cpp 152 LocalPkgDataLoadProcess.cpp 153 LocalRepositoryUpdateProcess.cpp 154 ProcessCoordinator.cpp 155 ProcessCoordinatorFactory.cpp 156 ProcessNode.cpp 157 ServerHelper.cpp 158 ServerSettings.cpp 159 ServerPkgDataUpdateProcess.cpp 160 ServerReferenceDataUpdateProcess.cpp 161 ServerRepositoryDataUpdateProcess.cpp 162 ServerIconExportUpdateProcess.cpp 163 StandardMetaDataJsonEventListener.cpp 164 StandardMetaData.cpp 165 WebAppInterface.cpp 166 167 # tar 168 TarArchiveHeader.cpp 169 TarArchiveService.cpp 170 171 # util 172 AppUtils.cpp 173 DataIOUtils.cpp 174 LanguageMenuUtils.cpp 175 LocaleUtils.cpp 176 RepositoryUrlUtils.cpp 177 StorageUtils.cpp 178 ToFileUrlProtocolListener.cpp 179 180 # package_daemon 181 ProblemWindow.cpp 182 ResultWindow.cpp 183; 184 185local generatedPkgModelSourceFiles = 186 DumpExportPkg.cpp 187 DumpExportPkgCategory.cpp 188 DumpExportPkgScreenshot.cpp 189 DumpExportPkgVersion.cpp 190; 191 192local generatedRepositoryModelSourceFiles = 193 DumpExportRepository.cpp 194 DumpExportRepositorySource.cpp 195 DumpExportRepositorySourceMirror.cpp 196; 197 198local generatedReferenceModelSourceFiles = 199 DumpExportReference.cpp 200 DumpExportReferenceNaturalLanguage.cpp 201 DumpExportReferencePkgCategory.cpp 202 DumpExportReferenceUserRatingStability.cpp 203 DumpExportReferenceCountry.cpp 204; 205 206local generatedPkgParserSourceFiles = 207 DumpExportPkgJsonListener.cpp 208; 209 210local generatedRepositoryParserSourceFiles = 211 DumpExportRepositoryJsonListener.cpp 212; 213 214local generatedReferenceParserSourceFiles = 215 DumpExportReferenceJsonListener.cpp 216; 217 218Application HaikuDepot 219 : $(applicationSources) 220 $(textDocumentSources) 221 $(generatedPkgModelSourceFiles) 222 $(generatedRepositoryModelSourceFiles) 223 $(generatedReferenceModelSourceFiles) 224 $(generatedPkgParserSourceFiles) 225 $(generatedRepositoryParserSourceFiles) 226 $(generatedReferenceParserSourceFiles) 227 : be package bnetapi translation libcolumnlistview.a shared 228 [ TargetLibstdc++ ] [ TargetLibsupc++ ] localestub 229 : HaikuDepot.rdef 230; 231 232DoCatalogs HaikuDepot : 233 x-vnd.Haiku-HaikuDepot 234 : 235 App.cpp 236 FeaturedPackagesView.cpp 237 FilterView.cpp 238 LocalPkgDataLoadProcess.cpp 239 LocalRepositoryUpdateProcess.cpp 240 MainWindow.cpp 241 Model.cpp 242 PackageContentsView.cpp 243 PackageInfoView.cpp 244 PackageListView.cpp 245 PackageManager.cpp 246 ProcessCoordinator.cpp 247 RatePackageWindow.cpp 248 ScreenshotWindow.cpp 249 ServerHelper.cpp 250 ServerIconExportUpdateProcess.cpp 251 ServerPkgDataUpdateProcess.cpp 252 ServerReferenceDataUpdateProcess.cpp 253 ServerRepositoryDataUpdateProcess.cpp 254 UserLoginWindow.cpp 255 WorkStatusView.cpp 256; 257 258Application TextDocumentTest : 259 TextDocumentTest.cpp 260 $(textDocumentSources) 261 262 : be translation shared [ TargetLibsupc++ ] 263; 264 265# The following use of rules configures the generation of .cpp and .h files from 266# JSON schemas that are defined in the HaikuDepotServer system. See the 267# included Jam rules and actions for the definitions. 268 269HdsSchemaGenModel $(dumpExportPkgModelTargetFile) 270 : dumpexportpkg.json : jsonschema2cppmodel.py ; 271 272HdsSchemaGenModel $(dumpExportRepositoryModelTargetFile) 273 : dumpexportrepository.json : jsonschema2cppmodel.py ; 274 275HdsSchemaGenModel $(dumpExportReferenceModelTargetFile) 276 : dumpexportreference.json : jsonschema2cppmodel.py ; 277 278HdsSchemaGenBulkParser $(dumpExportRepositoryBulkListerTargetFile) 279 : dumpexportrepository.json : jsonschema2cppparser.py ; 280 281HdsSchemaGenBulkParser $(dumpExportPkgBulkListenerTargetFile) 282 : dumpexportpkg.json : jsonschema2cppparser.py ; 283 284HdsSchemaGenParser $(dumpExportReferenceListenerTargetFile) 285 : dumpexportreference.json : jsonschema2cppparser.py ; 286 287HdsSchemaGenAppSrcDependsOnGeneration 288 [ FGristFiles $(generatedPkgParserSourceFiles) ] 289 [ FGristFiles $(generatedPkgParserSourceFiles:S=.h) ] 290 : $(dumpExportPkgBulkListenerTargetFile) ; 291 292HdsSchemaGenAppSrcDependsOnGeneration 293 [ FGristFiles $(generatedRepositoryParserSourceFiles) ] 294 [ FGristFiles $(generatedRepositoryParserSourceFiles:S=.h) ] 295 : $(dumpExportRepositoryBulkListerTargetFile) ; 296 297HdsSchemaGenAppSrcDependsOnGeneration 298 [ FGristFiles $(generatedReferenceParserSourceFiles) ] 299 [ FGristFiles $(generatedReferenceParserSourceFiles:S=.h) ] 300 : $(dumpExportReferenceListenerTargetFile) ; 301 302HdsSchemaGenAppSrcDependsOnGeneration 303 [ FGristFiles $(generatedRepositoryModelSourceFiles) ] 304 [ FGristFiles $(generatedRepositoryModelSourceFiles:S=.h) ] 305 : $(dumpExportRepositoryModelTargetFile) ; 306 307HdsSchemaGenAppSrcDependsOnGeneration 308 [ FGristFiles $(generatedPkgModelSourceFiles) ] 309 [ FGristFiles $(generatedPkgModelSourceFiles:S=.h) ] 310 : $(dumpExportPkgModelTargetFile) ; 311 312HdsSchemaGenAppSrcDependsOnGeneration 313 [ FGristFiles $(generatedReferenceModelSourceFiles) ] 314 [ FGristFiles $(generatedReferenceModelSourceFiles:S=.h) ] 315 : $(dumpExportReferenceModelTargetFile) ; 316 317# This will ensure that if any of the generated files' header files change, then 318# the application should be re-built. 319 320Depends [ FGristFiles $(applicationSources:S=.o) ] 321 : 322 [ FGristFiles $(generatedPkgParserSourceFiles:S=.h) ] 323 [ FGristFiles $(generatedPkgModelSourceFiles:S=.h) ] 324 [ FGristFiles $(generatedRepositoryParserSourceFiles:S=.h) ] 325 [ FGristFiles $(generatedRepositoryModelSourceFiles:S=.h) ] 326 [ FGristFiles $(generatedReferenceParserSourceFiles:S=.h) ] 327 [ FGristFiles $(generatedReferenceModelSourceFiles:S=.h) ] 328; 329