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