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 locale ; 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 Captcha.cpp 118 CreateUserDetail.cpp 119 DecisionProvider.cpp 120 FeaturedPackagesView.cpp 121 FilterView.cpp 122 IconTarPtr.cpp 123 JobStateListener.cpp 124 LanguageModel.cpp 125 LinkView.cpp 126 LinkedBitmapView.cpp 127 Logger.cpp 128 main.cpp 129 MainWindow.cpp 130 MarkupTextView.cpp 131 MessagePackageListener.cpp 132 Model.cpp 133 PackageAction.cpp 134 PackageActionHandler.cpp 135 PackageContentsView.cpp 136 PackageIconTarRepository.cpp 137 PackageInfo.cpp 138 PackageInfoListener.cpp 139 PackageInfoView.cpp 140 PackageListView.cpp 141 PackageManager.cpp 142 RatePackageWindow.cpp 143 RatingView.cpp 144 RatingUtils.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 : 244 HaikuDepot.rdef 245; 246 247DoCatalogs HaikuDepot : 248 x-vnd.Haiku-HaikuDepot 249 : 250 App.cpp 251 FeaturedPackagesView.cpp 252 FilterView.cpp 253 LocaleUtils.cpp 254 LocalPkgDataLoadProcess.cpp 255 LocalRepositoryUpdateProcess.cpp 256 MainWindow.cpp 257 Model.cpp 258 PackageContentsView.cpp 259 PackageInfoView.cpp 260 PackageListView.cpp 261 PackageManager.cpp 262 ProcessCoordinator.cpp 263 RatePackageWindow.cpp 264 ScreenshotWindow.cpp 265 ServerHelper.cpp 266 ServerIconExportUpdateProcess.cpp 267 ServerPkgDataUpdateProcess.cpp 268 ServerReferenceDataUpdateProcess.cpp 269 ServerRepositoryDataUpdateProcess.cpp 270 UserLoginWindow.cpp 271 WorkStatusView.cpp 272; 273 274# The following use of rules configures the generation of .cpp and .h files from 275# JSON schemas that are defined in the HaikuDepotServer system. See the 276# included Jam rules and actions for the definitions. 277 278HdsSchemaGenModel $(dumpExportPkgModelTargetFile) 279 : dumpexportpkg.json : jsonschema2cppmodel.py ; 280 281HdsSchemaGenModel $(dumpExportRepositoryModelTargetFile) 282 : dumpexportrepository.json : jsonschema2cppmodel.py ; 283 284HdsSchemaGenModel $(dumpExportReferenceModelTargetFile) 285 : dumpexportreference.json : jsonschema2cppmodel.py ; 286 287HdsSchemaGenBulkParser $(dumpExportRepositoryBulkListerTargetFile) 288 : dumpexportrepository.json : jsonschema2cppparser.py ; 289 290HdsSchemaGenBulkParser $(dumpExportPkgBulkListenerTargetFile) 291 : dumpexportpkg.json : jsonschema2cppparser.py ; 292 293HdsSchemaGenParser $(dumpExportReferenceListenerTargetFile) 294 : dumpexportreference.json : jsonschema2cppparser.py ; 295 296HdsSchemaGenAppSrcDependsOnGeneration 297 [ FGristFiles $(generatedPkgParserSourceFiles) ] 298 [ FGristFiles $(generatedPkgParserSourceFiles:S=.h) ] 299 : $(dumpExportPkgBulkListenerTargetFile) ; 300 301HdsSchemaGenAppSrcDependsOnGeneration 302 [ FGristFiles $(generatedRepositoryParserSourceFiles) ] 303 [ FGristFiles $(generatedRepositoryParserSourceFiles:S=.h) ] 304 : $(dumpExportRepositoryBulkListerTargetFile) ; 305 306HdsSchemaGenAppSrcDependsOnGeneration 307 [ FGristFiles $(generatedReferenceParserSourceFiles) ] 308 [ FGristFiles $(generatedReferenceParserSourceFiles:S=.h) ] 309 : $(dumpExportReferenceListenerTargetFile) ; 310 311HdsSchemaGenAppSrcDependsOnGeneration 312 [ FGristFiles $(generatedRepositoryModelSourceFiles) ] 313 [ FGristFiles $(generatedRepositoryModelSourceFiles:S=.h) ] 314 : $(dumpExportRepositoryModelTargetFile) ; 315 316HdsSchemaGenAppSrcDependsOnGeneration 317 [ FGristFiles $(generatedPkgModelSourceFiles) ] 318 [ FGristFiles $(generatedPkgModelSourceFiles:S=.h) ] 319 : $(dumpExportPkgModelTargetFile) ; 320 321HdsSchemaGenAppSrcDependsOnGeneration 322 [ FGristFiles $(generatedReferenceModelSourceFiles) ] 323 [ FGristFiles $(generatedReferenceModelSourceFiles:S=.h) ] 324 : $(dumpExportReferenceModelTargetFile) ; 325 326# This will ensure that if any of the generated files' header files change, then 327# the application should be re-built. 328 329Depends [ FGristFiles $(applicationSources:S=.o) ] 330 : 331 [ FGristFiles $(generatedPkgParserSourceFiles:S=.h) ] 332 [ FGristFiles $(generatedPkgModelSourceFiles:S=.h) ] 333 [ FGristFiles $(generatedRepositoryParserSourceFiles:S=.h) ] 334 [ FGristFiles $(generatedRepositoryModelSourceFiles:S=.h) ] 335 [ FGristFiles $(generatedReferenceParserSourceFiles:S=.h) ] 336 [ FGristFiles $(generatedReferenceModelSourceFiles:S=.h) ] 337; 338