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 StringUtils.cpp 207 LoggingUrlProtocolListener.cpp 208 209 # package_daemon 210 ProblemWindow.cpp 211 ResultWindow.cpp 212; 213 214local generatedPkgModelSourceFiles = 215 DumpExportPkg.cpp 216 DumpExportPkgCategory.cpp 217 DumpExportPkgScreenshot.cpp 218 DumpExportPkgVersion.cpp 219; 220 221local generatedRepositoryModelSourceFiles = 222 DumpExportRepository.cpp 223 DumpExportRepositorySource.cpp 224 DumpExportRepositorySourceMirror.cpp 225; 226 227local generatedReferenceModelSourceFiles = 228 DumpExportReference.cpp 229 DumpExportReferenceNaturalLanguage.cpp 230 DumpExportReferencePkgCategory.cpp 231 DumpExportReferenceUserRatingStability.cpp 232 DumpExportReferenceCountry.cpp 233; 234 235local generatedPkgParserSourceFiles = 236 DumpExportPkgJsonListener.cpp 237; 238 239local generatedRepositoryParserSourceFiles = 240 DumpExportRepositoryJsonListener.cpp 241; 242 243local generatedReferenceParserSourceFiles = 244 DumpExportReferenceJsonListener.cpp 245; 246 247Application HaikuDepot 248 : 249 $(applicationSources) 250 $(textDocumentSources) 251 $(generatedPkgModelSourceFiles) 252 $(generatedRepositoryModelSourceFiles) 253 $(generatedReferenceModelSourceFiles) 254 $(generatedPkgParserSourceFiles) 255 $(generatedRepositoryParserSourceFiles) 256 $(generatedReferenceParserSourceFiles) 257 : 258 be package bnetapi translation libnetservices.a libcolumnlistview.a shared 259 [ TargetLibstdc++ ] [ TargetLibsupc++ ] localestub 260 : 261 HaikuDepot.rdef 262; 263 264DoCatalogs HaikuDepot : 265 x-vnd.Haiku-HaikuDepot 266 : 267 $(applicationSources) 268; 269 270# The following use of rules configures the generation of .cpp and .h files from 271# JSON schemas that are defined in the HaikuDepotServer system. See the 272# included Jam rules and actions for the definitions. 273 274HdsSchemaGenModel $(dumpExportPkgModelTargetFile) 275 : dumpexportpkg.json : jsonschema2cppmodel.py ; 276 277HdsSchemaGenModel $(dumpExportRepositoryModelTargetFile) 278 : dumpexportrepository.json : jsonschema2cppmodel.py ; 279 280HdsSchemaGenModel $(dumpExportReferenceModelTargetFile) 281 : dumpexportreference.json : jsonschema2cppmodel.py ; 282 283HdsSchemaGenBulkParser $(dumpExportRepositoryBulkListerTargetFile) 284 : dumpexportrepository.json : jsonschema2cppparser.py ; 285 286HdsSchemaGenBulkParser $(dumpExportPkgBulkListenerTargetFile) 287 : dumpexportpkg.json : jsonschema2cppparser.py ; 288 289HdsSchemaGenParser $(dumpExportReferenceListenerTargetFile) 290 : dumpexportreference.json : jsonschema2cppparser.py ; 291 292HdsSchemaGenAppSrcDependsOnGeneration 293 [ FGristFiles $(generatedPkgParserSourceFiles) ] 294 [ FGristFiles $(generatedPkgParserSourceFiles:S=.h) ] 295 : $(dumpExportPkgBulkListenerTargetDirectory) 296 : $(dumpExportPkgBulkListenerTargetFile) ; 297 298HdsSchemaGenAppSrcDependsOnGeneration 299 [ FGristFiles $(generatedRepositoryParserSourceFiles) ] 300 [ FGristFiles $(generatedRepositoryParserSourceFiles:S=.h) ] 301 : $(dumpExportRepositoryBulkListerTargetDirectory) 302 : $(dumpExportRepositoryBulkListerTargetFile) ; 303 304HdsSchemaGenAppSrcDependsOnGeneration 305 [ FGristFiles $(generatedReferenceParserSourceFiles) ] 306 [ FGristFiles $(generatedReferenceParserSourceFiles:S=.h) ] 307 : $(dumpExportReferenceListenerTargetDirectory) 308 : $(dumpExportReferenceListenerTargetFile) ; 309 310HdsSchemaGenAppSrcDependsOnGeneration 311 [ FGristFiles $(generatedRepositoryModelSourceFiles) ] 312 [ FGristFiles $(generatedRepositoryModelSourceFiles:S=.h) ] 313 : $(dumpExportRepositoryModelTargetDirectory) 314 : $(dumpExportRepositoryModelTargetFile) ; 315 316HdsSchemaGenAppSrcDependsOnGeneration 317 [ FGristFiles $(generatedPkgModelSourceFiles) ] 318 [ FGristFiles $(generatedPkgModelSourceFiles:S=.h) ] 319 : $(dumpExportPkgModelTargetDirectory) 320 : $(dumpExportPkgModelTargetFile) ; 321 322HdsSchemaGenAppSrcDependsOnGeneration 323 [ FGristFiles $(generatedReferenceModelSourceFiles) ] 324 [ FGristFiles $(generatedReferenceModelSourceFiles:S=.h) ] 325 : $(dumpExportReferenceModelTargetDirectory) 326 : $(dumpExportReferenceModelTargetFile) ; 327 328# This will ensure that if any of the generated files' header files change, then 329# the application should be re-built. 330 331Includes [ FGristFiles $(applicationSources) ] 332 : 333 $(dumpExportRepositoryBulkListerTargetDirectory) 334 $(dumpExportPkgBulkListenerTargetDirectory) 335 $(dumpExportReferenceListenerTargetDirectory) 336 $(dumpExportPkgModelTargetDirectory) 337 $(dumpExportRepositoryModelTargetDirectory) 338 $(dumpExportReferenceModelTargetDirectory) 339; 340 341Depends [ FGristFiles $(applicationSources:S=.o) ] 342 : 343 [ FGristFiles $(generatedPkgParserSourceFiles:S=.h) ] 344 [ FGristFiles $(generatedPkgModelSourceFiles:S=.h) ] 345 [ FGristFiles $(generatedRepositoryParserSourceFiles:S=.h) ] 346 [ FGristFiles $(generatedRepositoryModelSourceFiles:S=.h) ] 347 [ FGristFiles $(generatedReferenceParserSourceFiles:S=.h) ] 348 [ FGristFiles $(generatedReferenceModelSourceFiles:S=.h) ] 349; 350