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 process 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 $(SUBDIR) $(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 UndoableEdit.cpp 92 93 # textview 94 Bullet.cpp 95 BulletData.cpp 96 CharacterStyle.cpp 97 CharacterStyleData.cpp 98 MarkupParser.cpp 99 Paragraph.cpp 100 ParagraphLayout.cpp 101 ParagraphStyle.cpp 102 ParagraphStyleData.cpp 103 TextDocument.cpp 104 TextDocumentLayout.cpp 105 TextDocumentView.cpp 106 TextEditor.cpp 107 TextListener.cpp 108 TextSelection.cpp 109 TextSpan.cpp 110 TextView.cpp 111 UndoableEditListener.cpp 112; 113 114local applicationSources = 115 App.cpp 116 BarberPole.cpp 117 BitmapView.cpp 118 Captcha.cpp 119 CreateUserDetail.cpp 120 DecisionProvider.cpp 121 DeskbarLink.cpp 122 FeaturedPackagesView.cpp 123 FilterView.cpp 124 GeneralContentScrollView.cpp 125 IconTarPtr.cpp 126 IncrementViewCounterProcess.cpp 127 JobStateListener.cpp 128 LanguageModel.cpp 129 LinkView.cpp 130 LinkedBitmapView.cpp 131 Logger.cpp 132 main.cpp 133 MainWindow.cpp 134 MarkupTextView.cpp 135 MessagePackageListener.cpp 136 Model.cpp 137 PackageContentsView.cpp 138 PackageIconTarRepository.cpp 139 PackageInfo.cpp 140 PackageInfoListener.cpp 141 PackageInfoView.cpp 142 PackageListView.cpp 143 PasswordRequirements.cpp 144 RatePackageWindow.cpp 145 RatingView.cpp 146 RatingStability.cpp 147 RatingUtils.cpp 148 support.cpp 149 ScreenshotWindow.cpp 150 ScrollableGroupView.cpp 151 SettingsWindow.cpp 152 SharedBitmap.cpp 153 ShuttingDownWindow.cpp 154 ToLatestUserUsageConditionsWindow.cpp 155 UserCredentials.cpp 156 UserDetail.cpp 157 UserLoginWindow.cpp 158 UserUsageConditions.cpp 159 UserUsageConditionsWindow.cpp 160 ValidationFailure.cpp 161 ValidationUtils.cpp 162 WorkStatusView.cpp 163 164 # packagemanagement 165 AbstractPackageProcess.cpp 166 InstallPackageProcess.cpp 167 OpenPackageProcess.cpp 168 PackageAction.cpp 169 PackageManager.cpp 170 UninstallPackageProcess.cpp 171 172 # network + server / local processes 173 AbstractProcess.cpp 174 AbstractProcessNode.cpp 175 AbstractServerProcess.cpp 176 AbstractSingleFileServerProcess.cpp 177 LocalPkgDataLoadProcess.cpp 178 LocalRepositoryUpdateProcess.cpp 179 ProcessCoordinator.cpp 180 ProcessCoordinatorFactory.cpp 181 ServerHelper.cpp 182 ServerSettings.cpp 183 ServerPkgDataUpdateProcess.cpp 184 ServerReferenceDataUpdateProcess.cpp 185 ServerRepositoryDataUpdateProcess.cpp 186 ServerIconExportUpdateProcess.cpp 187 StandardMetaDataJsonEventListener.cpp 188 StandardMetaData.cpp 189 ThreadedProcessNode.cpp 190 UserDetailVerifierProcess.cpp 191 WebAppInterface.cpp 192 193 # tar 194 TarArchiveHeader.cpp 195 TarArchiveService.cpp 196 197 # util 198 AppUtils.cpp 199 DataIOUtils.cpp 200 LanguageMenuUtils.cpp 201 LocaleUtils.cpp 202 PackageUtils.cpp 203 RepositoryUrlUtils.cpp 204 StorageUtils.cpp 205 LoggingUrlProtocolListener.cpp 206 207 # package_daemon 208 ProblemWindow.cpp 209 ResultWindow.cpp 210; 211 212local generatedPkgModelSourceFiles = 213 DumpExportPkg.cpp 214 DumpExportPkgCategory.cpp 215 DumpExportPkgScreenshot.cpp 216 DumpExportPkgVersion.cpp 217; 218 219local generatedRepositoryModelSourceFiles = 220 DumpExportRepository.cpp 221 DumpExportRepositorySource.cpp 222 DumpExportRepositorySourceMirror.cpp 223; 224 225local generatedReferenceModelSourceFiles = 226 DumpExportReference.cpp 227 DumpExportReferenceNaturalLanguage.cpp 228 DumpExportReferencePkgCategory.cpp 229 DumpExportReferenceUserRatingStability.cpp 230 DumpExportReferenceCountry.cpp 231; 232 233local generatedPkgParserSourceFiles = 234 DumpExportPkgJsonListener.cpp 235; 236 237local generatedRepositoryParserSourceFiles = 238 DumpExportRepositoryJsonListener.cpp 239; 240 241local generatedReferenceParserSourceFiles = 242 DumpExportReferenceJsonListener.cpp 243; 244 245Application HaikuDepot 246 : 247 $(applicationSources) 248 $(textDocumentSources) 249 $(generatedPkgModelSourceFiles) 250 $(generatedRepositoryModelSourceFiles) 251 $(generatedReferenceModelSourceFiles) 252 $(generatedPkgParserSourceFiles) 253 $(generatedRepositoryParserSourceFiles) 254 $(generatedReferenceParserSourceFiles) 255 : 256 be package bnetapi translation libnetservices.a libcolumnlistview.a shared 257 [ TargetLibstdc++ ] [ TargetLibsupc++ ] localestub 258 : 259 HaikuDepot.rdef 260; 261 262DoCatalogs HaikuDepot : 263 x-vnd.Haiku-HaikuDepot 264 : 265 $(applicationSources) 266; 267 268# The following use of rules configures the generation of .cpp and .h files from 269# JSON schemas that are defined in the HaikuDepotServer system. See the 270# included Jam rules and actions for the definitions. 271 272HdsSchemaGenModel $(dumpExportPkgModelTargetFile) 273 : dumpexportpkg.json : jsonschema2cppmodel.py ; 274 275HdsSchemaGenModel $(dumpExportRepositoryModelTargetFile) 276 : dumpexportrepository.json : jsonschema2cppmodel.py ; 277 278HdsSchemaGenModel $(dumpExportReferenceModelTargetFile) 279 : dumpexportreference.json : jsonschema2cppmodel.py ; 280 281HdsSchemaGenBulkParser $(dumpExportRepositoryBulkListerTargetFile) 282 : dumpexportrepository.json : jsonschema2cppparser.py ; 283 284HdsSchemaGenBulkParser $(dumpExportPkgBulkListenerTargetFile) 285 : dumpexportpkg.json : jsonschema2cppparser.py ; 286 287HdsSchemaGenParser $(dumpExportReferenceListenerTargetFile) 288 : dumpexportreference.json : jsonschema2cppparser.py ; 289 290HdsSchemaGenAppSrcDependsOnGeneration 291 [ FGristFiles $(generatedPkgParserSourceFiles) ] 292 [ FGristFiles $(generatedPkgParserSourceFiles:S=.h) ] 293 : $(dumpExportPkgBulkListenerTargetDirectory) 294 : $(dumpExportPkgBulkListenerTargetFile) ; 295 296HdsSchemaGenAppSrcDependsOnGeneration 297 [ FGristFiles $(generatedRepositoryParserSourceFiles) ] 298 [ FGristFiles $(generatedRepositoryParserSourceFiles:S=.h) ] 299 : $(dumpExportRepositoryBulkListerTargetDirectory) 300 : $(dumpExportRepositoryBulkListerTargetFile) ; 301 302HdsSchemaGenAppSrcDependsOnGeneration 303 [ FGristFiles $(generatedReferenceParserSourceFiles) ] 304 [ FGristFiles $(generatedReferenceParserSourceFiles:S=.h) ] 305 : $(dumpExportReferenceListenerTargetDirectory) 306 : $(dumpExportReferenceListenerTargetFile) ; 307 308HdsSchemaGenAppSrcDependsOnGeneration 309 [ FGristFiles $(generatedRepositoryModelSourceFiles) ] 310 [ FGristFiles $(generatedRepositoryModelSourceFiles:S=.h) ] 311 : $(dumpExportRepositoryModelTargetDirectory) 312 : $(dumpExportRepositoryModelTargetFile) ; 313 314HdsSchemaGenAppSrcDependsOnGeneration 315 [ FGristFiles $(generatedPkgModelSourceFiles) ] 316 [ FGristFiles $(generatedPkgModelSourceFiles:S=.h) ] 317 : $(dumpExportPkgModelTargetDirectory) 318 : $(dumpExportPkgModelTargetFile) ; 319 320HdsSchemaGenAppSrcDependsOnGeneration 321 [ FGristFiles $(generatedReferenceModelSourceFiles) ] 322 [ FGristFiles $(generatedReferenceModelSourceFiles:S=.h) ] 323 : $(dumpExportReferenceModelTargetDirectory) 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 329Includes [ FGristFiles $(applicationSources) ] 330 : 331 $(dumpExportRepositoryBulkListerTargetDirectory) 332 $(dumpExportPkgBulkListenerTargetDirectory) 333 $(dumpExportReferenceListenerTargetDirectory) 334 $(dumpExportPkgModelTargetDirectory) 335 $(dumpExportRepositoryModelTargetDirectory) 336 $(dumpExportReferenceModelTargetDirectory) 337; 338 339Depends [ FGristFiles $(applicationSources:S=.o) ] 340 : 341 [ FGristFiles $(generatedPkgParserSourceFiles:S=.h) ] 342 [ FGristFiles $(generatedPkgModelSourceFiles:S=.h) ] 343 [ FGristFiles $(generatedRepositoryParserSourceFiles:S=.h) ] 344 [ FGristFiles $(generatedRepositoryModelSourceFiles:S=.h) ] 345 [ FGristFiles $(generatedReferenceParserSourceFiles:S=.h) ] 346 [ FGristFiles $(generatedReferenceModelSourceFiles:S=.h) ] 347; 348