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