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