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