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 AccessToken.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 JwtTokenHelper.cpp 129 LanguageModel.cpp 130 LinkView.cpp 131 LinkedBitmapView.cpp 132 Logger.cpp 133 main.cpp 134 MainWindow.cpp 135 MarkupTextView.cpp 136 MessagePackageListener.cpp 137 Model.cpp 138 PackageContentsView.cpp 139 PackageIconTarRepository.cpp 140 PackageInfo.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 # network + server / local processes 174 AbstractProcess.cpp 175 AbstractProcessNode.cpp 176 AbstractServerProcess.cpp 177 AbstractSingleFileServerProcess.cpp 178 LocalPkgDataLoadProcess.cpp 179 LocalRepositoryUpdateProcess.cpp 180 PopulatePkgSizesProcess.cpp 181 ProcessCoordinator.cpp 182 ProcessCoordinatorFactory.cpp 183 ServerHelper.cpp 184 ServerSettings.cpp 185 ServerPkgDataUpdateProcess.cpp 186 ServerReferenceDataUpdateProcess.cpp 187 ServerRepositoryDataUpdateProcess.cpp 188 ServerIconExportUpdateProcess.cpp 189 StandardMetaDataJsonEventListener.cpp 190 StandardMetaData.cpp 191 ThreadedProcessNode.cpp 192 UserDetailVerifierProcess.cpp 193 WebAppInterface.cpp 194 195 # tar 196 TarArchiveHeader.cpp 197 TarArchiveService.cpp 198 199 # util 200 AppUtils.cpp 201 DataIOUtils.cpp 202 LanguageMenuUtils.cpp 203 LocaleUtils.cpp 204 PackageUtils.cpp 205 RepositoryUrlUtils.cpp 206 StorageUtils.cpp 207 StringUtils.cpp 208 LoggingUrlProtocolListener.cpp 209 210 # package_daemon 211 ProblemWindow.cpp 212 ResultWindow.cpp 213; 214 215local generatedPkgModelSourceFiles = 216 DumpExportPkg.cpp 217 DumpExportPkgCategory.cpp 218 DumpExportPkgScreenshot.cpp 219 DumpExportPkgVersion.cpp 220; 221 222local generatedRepositoryModelSourceFiles = 223 DumpExportRepository.cpp 224 DumpExportRepositorySource.cpp 225 DumpExportRepositorySourceMirror.cpp 226; 227 228local generatedReferenceModelSourceFiles = 229 DumpExportReference.cpp 230 DumpExportReferenceNaturalLanguage.cpp 231 DumpExportReferencePkgCategory.cpp 232 DumpExportReferenceUserRatingStability.cpp 233 DumpExportReferenceCountry.cpp 234; 235 236local generatedPkgParserSourceFiles = 237 DumpExportPkgJsonListener.cpp 238; 239 240local generatedRepositoryParserSourceFiles = 241 DumpExportRepositoryJsonListener.cpp 242; 243 244local generatedReferenceParserSourceFiles = 245 DumpExportReferenceJsonListener.cpp 246; 247 248Application HaikuDepot 249 : 250 $(applicationSources) 251 $(textDocumentSources) 252 $(generatedPkgModelSourceFiles) 253 $(generatedRepositoryModelSourceFiles) 254 $(generatedReferenceModelSourceFiles) 255 $(generatedPkgParserSourceFiles) 256 $(generatedRepositoryParserSourceFiles) 257 $(generatedReferenceParserSourceFiles) 258 : 259 be package bnetapi translation libnetservices.a libcolumnlistview.a shared 260 [ TargetLibstdc++ ] [ TargetLibsupc++ ] localestub 261 : 262 HaikuDepot.rdef 263; 264 265DoCatalogs HaikuDepot : 266 x-vnd.Haiku-HaikuDepot 267 : 268 $(applicationSources) 269; 270 271# The following use of rules configures the generation of .cpp and .h files from 272# JSON schemas that are defined in the HaikuDepotServer system. See the 273# included Jam rules and actions for the definitions. 274 275HdsSchemaGenModel $(dumpExportPkgModelTargetFile) 276 : dumpexportpkg.json : jsonschema2cppmodel.py ; 277 278HdsSchemaGenModel $(dumpExportRepositoryModelTargetFile) 279 : dumpexportrepository.json : jsonschema2cppmodel.py ; 280 281HdsSchemaGenModel $(dumpExportReferenceModelTargetFile) 282 : dumpexportreference.json : jsonschema2cppmodel.py ; 283 284HdsSchemaGenBulkParser $(dumpExportRepositoryBulkListerTargetFile) 285 : dumpexportrepository.json : jsonschema2cppparser.py ; 286 287HdsSchemaGenBulkParser $(dumpExportPkgBulkListenerTargetFile) 288 : dumpexportpkg.json : jsonschema2cppparser.py ; 289 290HdsSchemaGenParser $(dumpExportReferenceListenerTargetFile) 291 : dumpexportreference.json : jsonschema2cppparser.py ; 292 293HdsSchemaGenAppSrcDependsOnGeneration 294 [ FGristFiles $(generatedPkgParserSourceFiles) ] 295 [ FGristFiles $(generatedPkgParserSourceFiles:S=.h) ] 296 : $(dumpExportPkgBulkListenerTargetDirectory) 297 : $(dumpExportPkgBulkListenerTargetFile) ; 298 299HdsSchemaGenAppSrcDependsOnGeneration 300 [ FGristFiles $(generatedRepositoryParserSourceFiles) ] 301 [ FGristFiles $(generatedRepositoryParserSourceFiles:S=.h) ] 302 : $(dumpExportRepositoryBulkListerTargetDirectory) 303 : $(dumpExportRepositoryBulkListerTargetFile) ; 304 305HdsSchemaGenAppSrcDependsOnGeneration 306 [ FGristFiles $(generatedReferenceParserSourceFiles) ] 307 [ FGristFiles $(generatedReferenceParserSourceFiles:S=.h) ] 308 : $(dumpExportReferenceListenerTargetDirectory) 309 : $(dumpExportReferenceListenerTargetFile) ; 310 311HdsSchemaGenAppSrcDependsOnGeneration 312 [ FGristFiles $(generatedRepositoryModelSourceFiles) ] 313 [ FGristFiles $(generatedRepositoryModelSourceFiles:S=.h) ] 314 : $(dumpExportRepositoryModelTargetDirectory) 315 : $(dumpExportRepositoryModelTargetFile) ; 316 317HdsSchemaGenAppSrcDependsOnGeneration 318 [ FGristFiles $(generatedPkgModelSourceFiles) ] 319 [ FGristFiles $(generatedPkgModelSourceFiles:S=.h) ] 320 : $(dumpExportPkgModelTargetDirectory) 321 : $(dumpExportPkgModelTargetFile) ; 322 323HdsSchemaGenAppSrcDependsOnGeneration 324 [ FGristFiles $(generatedReferenceModelSourceFiles) ] 325 [ FGristFiles $(generatedReferenceModelSourceFiles:S=.h) ] 326 : $(dumpExportReferenceModelTargetDirectory) 327 : $(dumpExportReferenceModelTargetFile) ; 328 329# This will ensure that if any of the generated files' header files change, then 330# the application should be re-built. 331 332Includes [ FGristFiles $(applicationSources) ] 333 : 334 $(dumpExportRepositoryBulkListerTargetDirectory) 335 $(dumpExportPkgBulkListenerTargetDirectory) 336 $(dumpExportReferenceListenerTargetDirectory) 337 $(dumpExportPkgModelTargetDirectory) 338 $(dumpExportRepositoryModelTargetDirectory) 339 $(dumpExportReferenceModelTargetDirectory) 340; 341 342Depends [ FGristFiles $(applicationSources:S=.o) ] 343 : 344 [ FGristFiles $(generatedPkgParserSourceFiles:S=.h) ] 345 [ FGristFiles $(generatedPkgModelSourceFiles:S=.h) ] 346 [ FGristFiles $(generatedRepositoryParserSourceFiles:S=.h) ] 347 [ FGristFiles $(generatedRepositoryModelSourceFiles:S=.h) ] 348 [ FGristFiles $(generatedReferenceParserSourceFiles:S=.h) ] 349 [ FGristFiles $(generatedReferenceModelSourceFiles:S=.h) ] 350; 351