1SubDir HAIKU_TOP src apps haikudepot ; 2 3# disable -Werror for this directory only 4SubDirC++Flags -Wno-error ; 5 6include [ FDirName $(SUBDIR) build jam HdsSchemaGenRules ] ; 7 8UsePrivateHeaders interface kernel net netservices package shared storage ; 9UsePrivateHeaders 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 packagemanagement 62 packagemodel 63 process 64 textview 65 ui 66 ui_generic 67 server 68 tar 69 util 70; 71 72local sourceDir ; 73for sourceDir in $(sourceDirs) { 74 SEARCH_SOURCE += [ FDirName $(SUBDIR) $(sourceDir) ] ; 75} 76 77SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src servers package ] ; 78 79SEARCH_SOURCE += $(dumpExportRepositoryBulkListerTargetDirectory) ; 80SEARCH_SOURCE += $(dumpExportPkgBulkListenerTargetDirectory) ; 81SEARCH_SOURCE += $(dumpExportReferenceListenerTargetDirectory) ; 82 83SEARCH_SOURCE += $(dumpExportPkgModelTargetDirectory) ; 84SEARCH_SOURCE += $(dumpExportRepositoryModelTargetDirectory) ; 85SEARCH_SOURCE += $(dumpExportReferenceModelTargetDirectory) ; 86 87local textDocumentSources = 88 # edits_generic 89 CompoundEdit.cpp 90 EditContext.cpp 91 EditManager.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 AccessToken.cpp 118 BitmapView.cpp 119 Captcha.cpp 120 CreateUserDetail.cpp 121 DecisionProvider.cpp 122 DeskbarLink.cpp 123 FeaturedPackagesView.cpp 124 FilterView.cpp 125 GeneralContentScrollView.cpp 126 IconTarPtr.cpp 127 IncrementViewCounterProcess.cpp 128 JobStateListener.cpp 129 JwtTokenHelper.cpp 130 LanguageModel.cpp 131 LinkView.cpp 132 LinkedBitmapView.cpp 133 Logger.cpp 134 main.cpp 135 MainWindow.cpp 136 MarkupTextView.cpp 137 MessagePackageListener.cpp 138 Model.cpp 139 PackageContentsView.cpp 140 PackageIconTarRepository.cpp 141 PackageInfoListener.cpp 142 PackageInfoView.cpp 143 PackageListView.cpp 144 PasswordRequirements.cpp 145 RatePackageWindow.cpp 146 RatingView.cpp 147 RatingStability.cpp 148 RatingUtils.cpp 149 support.cpp 150 ScreenshotWindow.cpp 151 ScrollableGroupView.cpp 152 SettingsWindow.cpp 153 SharedBitmap.cpp 154 ShuttingDownWindow.cpp 155 ToLatestUserUsageConditionsWindow.cpp 156 UserCredentials.cpp 157 UserDetail.cpp 158 UserLoginWindow.cpp 159 UserUsageConditions.cpp 160 UserUsageConditionsWindow.cpp 161 ValidationFailure.cpp 162 ValidationUtils.cpp 163 WorkStatusView.cpp 164 165 # packagemanagement 166 AbstractPackageProcess.cpp 167 InstallPackageProcess.cpp 168 OpenPackageProcess.cpp 169 PackageAction.cpp 170 PackageManager.cpp 171 UninstallPackageProcess.cpp 172 173 #packagemodel 174 DepotInfo.cpp 175 Language.cpp 176 PackageCategory.cpp 177 PackageInfo.cpp 178 PublisherInfo.cpp 179 RatingSummary.cpp 180 ScreenshotInfo.cpp 181 UserInfo.cpp 182 UserRating.cpp 183 184 # network + server / local processes 185 AbstractProcess.cpp 186 AbstractProcessNode.cpp 187 AbstractServerProcess.cpp 188 AbstractSingleFileServerProcess.cpp 189 LocalPkgDataLoadProcess.cpp 190 LocalRepositoryUpdateProcess.cpp 191 PopulatePkgSizesProcess.cpp 192 ProcessCoordinator.cpp 193 ProcessCoordinatorFactory.cpp 194 ServerHelper.cpp 195 ServerSettings.cpp 196 ServerPkgDataUpdateProcess.cpp 197 ServerReferenceDataUpdateProcess.cpp 198 ServerRepositoryDataUpdateProcess.cpp 199 ServerIconExportUpdateProcess.cpp 200 StandardMetaDataJsonEventListener.cpp 201 StandardMetaData.cpp 202 ThreadedProcessNode.cpp 203 UserDetailVerifierProcess.cpp 204 WebAppInterface.cpp 205 206 # tar 207 TarArchiveHeader.cpp 208 TarArchiveService.cpp 209 210 # util 211 AppUtils.cpp 212 DataIOUtils.cpp 213 LanguageMenuUtils.cpp 214 LocaleUtils.cpp 215 PackageUtils.cpp 216 StorageUtils.cpp 217 StringUtils.cpp 218 LoggingUrlProtocolListener.cpp 219 220 # package_daemon 221 ProblemWindow.cpp 222 ResultWindow.cpp 223; 224 225local generatedPkgModelSourceFiles = 226 DumpExportPkg.cpp 227 DumpExportPkgCategory.cpp 228 DumpExportPkgScreenshot.cpp 229 DumpExportPkgVersion.cpp 230; 231 232local generatedRepositoryModelSourceFiles = 233 DumpExportRepository.cpp 234 DumpExportRepositorySource.cpp 235 DumpExportRepositorySourceMirror.cpp 236; 237 238local generatedReferenceModelSourceFiles = 239 DumpExportReference.cpp 240 DumpExportReferenceNaturalLanguage.cpp 241 DumpExportReferencePkgCategory.cpp 242 DumpExportReferenceUserRatingStability.cpp 243 DumpExportReferenceCountry.cpp 244; 245 246local generatedPkgParserSourceFiles = 247 DumpExportPkgJsonListener.cpp 248; 249 250local generatedRepositoryParserSourceFiles = 251 DumpExportRepositoryJsonListener.cpp 252; 253 254local generatedReferenceParserSourceFiles = 255 DumpExportReferenceJsonListener.cpp 256; 257 258Application HaikuDepot 259 : 260 $(applicationSources) 261 $(textDocumentSources) 262 $(generatedPkgModelSourceFiles) 263 $(generatedRepositoryModelSourceFiles) 264 $(generatedReferenceModelSourceFiles) 265 $(generatedPkgParserSourceFiles) 266 $(generatedRepositoryParserSourceFiles) 267 $(generatedReferenceParserSourceFiles) 268 : 269 be package bnetapi translation libnetservices.a libcolumnlistview.a shared 270 [ TargetLibstdc++ ] [ TargetLibsupc++ ] localestub 271 : 272 HaikuDepot.rdef 273; 274 275DoCatalogs HaikuDepot : 276 x-vnd.Haiku-HaikuDepot 277 : 278 $(applicationSources) 279; 280 281# The following use of rules configures the generation of .cpp and .h files from 282# JSON schemas that are defined in the HaikuDepotServer system. See the 283# included Jam rules and actions for the definitions. 284 285HdsSchemaGenModel $(dumpExportPkgModelTargetFile) 286 : dumpexportpkg.json : jsonschema2cppmodel.py ; 287 288HdsSchemaGenModel $(dumpExportRepositoryModelTargetFile) 289 : dumpexportrepository.json : jsonschema2cppmodel.py ; 290 291HdsSchemaGenModel $(dumpExportReferenceModelTargetFile) 292 : dumpexportreference.json : jsonschema2cppmodel.py ; 293 294HdsSchemaGenBulkParser $(dumpExportRepositoryBulkListerTargetFile) 295 : dumpexportrepository.json : jsonschema2cppparser.py ; 296 297HdsSchemaGenBulkParser $(dumpExportPkgBulkListenerTargetFile) 298 : dumpexportpkg.json : jsonschema2cppparser.py ; 299 300HdsSchemaGenParser $(dumpExportReferenceListenerTargetFile) 301 : dumpexportreference.json : jsonschema2cppparser.py ; 302 303HdsSchemaGenAppSrcDependsOnGeneration 304 [ FGristFiles $(generatedPkgParserSourceFiles) ] 305 [ FGristFiles $(generatedPkgParserSourceFiles:S=.h) ] 306 : $(dumpExportPkgBulkListenerTargetDirectory) 307 : $(dumpExportPkgBulkListenerTargetFile) ; 308 309HdsSchemaGenAppSrcDependsOnGeneration 310 [ FGristFiles $(generatedRepositoryParserSourceFiles) ] 311 [ FGristFiles $(generatedRepositoryParserSourceFiles:S=.h) ] 312 : $(dumpExportRepositoryBulkListerTargetDirectory) 313 : $(dumpExportRepositoryBulkListerTargetFile) ; 314 315HdsSchemaGenAppSrcDependsOnGeneration 316 [ FGristFiles $(generatedReferenceParserSourceFiles) ] 317 [ FGristFiles $(generatedReferenceParserSourceFiles:S=.h) ] 318 : $(dumpExportReferenceListenerTargetDirectory) 319 : $(dumpExportReferenceListenerTargetFile) ; 320 321HdsSchemaGenAppSrcDependsOnGeneration 322 [ FGristFiles $(generatedRepositoryModelSourceFiles) ] 323 [ FGristFiles $(generatedRepositoryModelSourceFiles:S=.h) ] 324 : $(dumpExportRepositoryModelTargetDirectory) 325 : $(dumpExportRepositoryModelTargetFile) ; 326 327HdsSchemaGenAppSrcDependsOnGeneration 328 [ FGristFiles $(generatedPkgModelSourceFiles) ] 329 [ FGristFiles $(generatedPkgModelSourceFiles:S=.h) ] 330 : $(dumpExportPkgModelTargetDirectory) 331 : $(dumpExportPkgModelTargetFile) ; 332 333HdsSchemaGenAppSrcDependsOnGeneration 334 [ FGristFiles $(generatedReferenceModelSourceFiles) ] 335 [ FGristFiles $(generatedReferenceModelSourceFiles:S=.h) ] 336 : $(dumpExportReferenceModelTargetDirectory) 337 : $(dumpExportReferenceModelTargetFile) ; 338 339# This will ensure that if any of the generated files' header files change, then 340# the application should be re-built. 341 342Includes [ FGristFiles $(applicationSources) ] 343 : 344 $(dumpExportRepositoryBulkListerTargetDirectory) 345 $(dumpExportPkgBulkListenerTargetDirectory) 346 $(dumpExportReferenceListenerTargetDirectory) 347 $(dumpExportPkgModelTargetDirectory) 348 $(dumpExportRepositoryModelTargetDirectory) 349 $(dumpExportReferenceModelTargetDirectory) 350; 351 352Depends [ FGristFiles $(applicationSources:S=.o) ] 353 : 354 [ FGristFiles $(generatedPkgParserSourceFiles:S=.h) ] 355 [ FGristFiles $(generatedPkgModelSourceFiles:S=.h) ] 356 [ FGristFiles $(generatedRepositoryParserSourceFiles:S=.h) ] 357 [ FGristFiles $(generatedRepositoryModelSourceFiles:S=.h) ] 358 [ FGristFiles $(generatedReferenceParserSourceFiles:S=.h) ] 359 [ FGristFiles $(generatedReferenceModelSourceFiles:S=.h) ] 360; 361