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 RatingStability.cpp 145 RatingUtils.cpp 146 support.cpp 147 ScreenshotWindow.cpp 148 ScrollableGroupView.cpp 149 SharedBitmap.cpp 150 ToLatestUserUsageConditionsWindow.cpp 151 UserCredentials.cpp 152 UserDetail.cpp 153 UserLoginWindow.cpp 154 UserUsageConditions.cpp 155 UserUsageConditionsWindow.cpp 156 ValidationFailure.cpp 157 ValidationUtils.cpp 158 WorkStatusView.cpp 159 160 # network + server / local processes 161 AbstractProcess.cpp 162 AbstractServerProcess.cpp 163 AbstractSingleFileServerProcess.cpp 164 LocalPkgDataLoadProcess.cpp 165 LocalRepositoryUpdateProcess.cpp 166 ProcessCoordinator.cpp 167 ProcessCoordinatorFactory.cpp 168 ProcessNode.cpp 169 ServerHelper.cpp 170 ServerSettings.cpp 171 ServerPkgDataUpdateProcess.cpp 172 ServerReferenceDataUpdateProcess.cpp 173 ServerRepositoryDataUpdateProcess.cpp 174 ServerIconExportUpdateProcess.cpp 175 StandardMetaDataJsonEventListener.cpp 176 StandardMetaData.cpp 177 UserDetailVerifierProcess.cpp 178 WebAppInterface.cpp 179 180 # tar 181 TarArchiveHeader.cpp 182 TarArchiveService.cpp 183 184 # util 185 AppUtils.cpp 186 DataIOUtils.cpp 187 LanguageMenuUtils.cpp 188 LocaleUtils.cpp 189 RepositoryUrlUtils.cpp 190 StorageUtils.cpp 191 ToFileUrlProtocolListener.cpp 192 193 # package_daemon 194 ProblemWindow.cpp 195 ResultWindow.cpp 196; 197 198local generatedPkgModelSourceFiles = 199 DumpExportPkg.cpp 200 DumpExportPkgCategory.cpp 201 DumpExportPkgScreenshot.cpp 202 DumpExportPkgVersion.cpp 203; 204 205local generatedRepositoryModelSourceFiles = 206 DumpExportRepository.cpp 207 DumpExportRepositorySource.cpp 208 DumpExportRepositorySourceMirror.cpp 209; 210 211local generatedReferenceModelSourceFiles = 212 DumpExportReference.cpp 213 DumpExportReferenceNaturalLanguage.cpp 214 DumpExportReferencePkgCategory.cpp 215 DumpExportReferenceUserRatingStability.cpp 216 DumpExportReferenceCountry.cpp 217; 218 219local generatedPkgParserSourceFiles = 220 DumpExportPkgJsonListener.cpp 221; 222 223local generatedRepositoryParserSourceFiles = 224 DumpExportRepositoryJsonListener.cpp 225; 226 227local generatedReferenceParserSourceFiles = 228 DumpExportReferenceJsonListener.cpp 229; 230 231Application HaikuDepot 232 : 233 $(applicationSources) 234 $(textDocumentSources) 235 $(generatedPkgModelSourceFiles) 236 $(generatedRepositoryModelSourceFiles) 237 $(generatedReferenceModelSourceFiles) 238 $(generatedPkgParserSourceFiles) 239 $(generatedRepositoryParserSourceFiles) 240 $(generatedReferenceParserSourceFiles) 241 : 242 be package bnetapi translation libcolumnlistview.a shared 243 [ TargetLibstdc++ ] [ TargetLibsupc++ ] localestub 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 275# The following use of rules configures the generation of .cpp and .h files from 276# JSON schemas that are defined in the HaikuDepotServer system. See the 277# included Jam rules and actions for the definitions. 278 279HdsSchemaGenModel $(dumpExportPkgModelTargetFile) 280 : dumpexportpkg.json : jsonschema2cppmodel.py ; 281 282HdsSchemaGenModel $(dumpExportRepositoryModelTargetFile) 283 : dumpexportrepository.json : jsonschema2cppmodel.py ; 284 285HdsSchemaGenModel $(dumpExportReferenceModelTargetFile) 286 : dumpexportreference.json : jsonschema2cppmodel.py ; 287 288HdsSchemaGenBulkParser $(dumpExportRepositoryBulkListerTargetFile) 289 : dumpexportrepository.json : jsonschema2cppparser.py ; 290 291HdsSchemaGenBulkParser $(dumpExportPkgBulkListenerTargetFile) 292 : dumpexportpkg.json : jsonschema2cppparser.py ; 293 294HdsSchemaGenParser $(dumpExportReferenceListenerTargetFile) 295 : dumpexportreference.json : jsonschema2cppparser.py ; 296 297HdsSchemaGenAppSrcDependsOnGeneration 298 [ FGristFiles $(generatedPkgParserSourceFiles) ] 299 [ FGristFiles $(generatedPkgParserSourceFiles:S=.h) ] 300 : $(dumpExportPkgBulkListenerTargetFile) ; 301 302HdsSchemaGenAppSrcDependsOnGeneration 303 [ FGristFiles $(generatedRepositoryParserSourceFiles) ] 304 [ FGristFiles $(generatedRepositoryParserSourceFiles:S=.h) ] 305 : $(dumpExportRepositoryBulkListerTargetFile) ; 306 307HdsSchemaGenAppSrcDependsOnGeneration 308 [ FGristFiles $(generatedReferenceParserSourceFiles) ] 309 [ FGristFiles $(generatedReferenceParserSourceFiles:S=.h) ] 310 : $(dumpExportReferenceListenerTargetFile) ; 311 312HdsSchemaGenAppSrcDependsOnGeneration 313 [ FGristFiles $(generatedRepositoryModelSourceFiles) ] 314 [ FGristFiles $(generatedRepositoryModelSourceFiles:S=.h) ] 315 : $(dumpExportRepositoryModelTargetFile) ; 316 317HdsSchemaGenAppSrcDependsOnGeneration 318 [ FGristFiles $(generatedPkgModelSourceFiles) ] 319 [ FGristFiles $(generatedPkgModelSourceFiles:S=.h) ] 320 : $(dumpExportPkgModelTargetFile) ; 321 322HdsSchemaGenAppSrcDependsOnGeneration 323 [ FGristFiles $(generatedReferenceModelSourceFiles) ] 324 [ FGristFiles $(generatedReferenceModelSourceFiles:S=.h) ] 325 : $(dumpExportReferenceModelTargetFile) ; 326 327# This will ensure that if any of the generated files' header files change, then 328# the application should be re-built. 329 330Depends [ FGristFiles $(applicationSources:S=.o) ] 331 : 332 [ FGristFiles $(generatedPkgParserSourceFiles:S=.h) ] 333 [ FGristFiles $(generatedPkgModelSourceFiles:S=.h) ] 334 [ FGristFiles $(generatedRepositoryParserSourceFiles:S=.h) ] 335 [ FGristFiles $(generatedRepositoryModelSourceFiles:S=.h) ] 336 [ FGristFiles $(generatedReferenceParserSourceFiles:S=.h) ] 337 [ FGristFiles $(generatedReferenceModelSourceFiles:S=.h) ] 338; 339