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