1SubDir HAIKU_TOP src apps haikudepot ; 2 3# disable -Werror for this directory only 4SubDirC++Flags -Wno-error ; 5 6include [ FDirName $(HAIKU_TOP) src apps haikudepot build jam 7 HdsSchemaGenRules ] ; 8 9UsePrivateHeaders interface kernel net package shared storage support ; 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 textview 62 ui 63 ui_generic 64 server 65 tar 66 util 67; 68 69local sourceDir ; 70for sourceDir in $(sourceDirs) { 71 SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src apps haikudepot $(sourceDir) ] ; 72} 73 74SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src servers package ] ; 75 76SEARCH_SOURCE += $(dumpExportRepositoryBulkListerTargetDirectory) ; 77SEARCH_SOURCE += $(dumpExportPkgBulkListenerTargetDirectory) ; 78SEARCH_SOURCE += $(dumpExportReferenceListenerTargetDirectory) ; 79 80SEARCH_SOURCE += $(dumpExportPkgModelTargetDirectory) ; 81SEARCH_SOURCE += $(dumpExportRepositoryModelTargetDirectory) ; 82SEARCH_SOURCE += $(dumpExportReferenceModelTargetDirectory) ; 83 84local textDocumentSources = 85 # edits_generic 86 CompoundEdit.cpp 87 EditContext.cpp 88 EditManager.cpp 89 EditStack.cpp 90 UndoableEdit.cpp 91 92 # textview 93 Bullet.cpp 94 BulletData.cpp 95 CharacterStyle.cpp 96 CharacterStyleData.cpp 97 MarkupParser.cpp 98 Paragraph.cpp 99 ParagraphLayout.cpp 100 ParagraphStyle.cpp 101 ParagraphStyleData.cpp 102 TextDocument.cpp 103 TextDocumentLayout.cpp 104 TextDocumentView.cpp 105 TextEditor.cpp 106 TextListener.cpp 107 TextSelection.cpp 108 TextSpan.cpp 109 TextView.cpp 110 UndoableEditListener.cpp 111; 112 113local applicationSources = 114 App.cpp 115 BarberPole.cpp 116 BitmapView.cpp 117 DecisionProvider.cpp 118 FeaturedPackagesView.cpp 119 FilterView.cpp 120 LocalIconStore.cpp 121 JobStateListener.cpp 122 LanguageModel.cpp 123 LinkView.cpp 124 LinkedBitmapView.cpp 125 Logger.cpp 126 main.cpp 127 MainWindow.cpp 128 MarkupTextView.cpp 129 MessagePackageListener.cpp 130 Model.cpp 131 PackageAction.cpp 132 PackageActionHandler.cpp 133 PackageContentsView.cpp 134 PackageInfo.cpp 135 PackageInfoListener.cpp 136 PackageInfoView.cpp 137 PackageListView.cpp 138 PackageManager.cpp 139 RatePackageWindow.cpp 140 RatingView.cpp 141 support.cpp 142 ScreenshotWindow.cpp 143 ScrollableGroupView.cpp 144 SharedBitmap.cpp 145 UserLoginWindow.cpp 146 WorkStatusView.cpp 147 148 # network + server / local processes 149 AbstractProcess.cpp 150 AbstractServerProcess.cpp 151 AbstractSingleFileServerProcess.cpp 152 LocalPkgDataLoadProcess.cpp 153 LocalRepositoryUpdateProcess.cpp 154 ProcessCoordinator.cpp 155 ProcessCoordinatorFactory.cpp 156 ProcessNode.cpp 157 ServerHelper.cpp 158 ServerSettings.cpp 159 ServerPkgDataUpdateProcess.cpp 160 ServerReferenceDataUpdateProcess.cpp 161 ServerRepositoryDataUpdateProcess.cpp 162 ServerIconExportUpdateProcess.cpp 163 StandardMetaDataJsonEventListener.cpp 164 StandardMetaData.cpp 165 WebAppInterface.cpp 166 167 # tar 168 TarArchiveHeader.cpp 169 TarArchiveService.cpp 170 171 # util 172 AppUtils.cpp 173 DataIOUtils.cpp 174 LanguageMenuUtils.cpp 175 LocaleUtils.cpp 176 RepositoryUrlUtils.cpp 177 StorageUtils.cpp 178 ToFileUrlProtocolListener.cpp 179 180 # package_daemon 181 ProblemWindow.cpp 182 ResultWindow.cpp 183; 184 185local generatedPkgModelSourceFiles = 186 DumpExportPkg.cpp 187 DumpExportPkgCategory.cpp 188 DumpExportPkgScreenshot.cpp 189 DumpExportPkgVersion.cpp 190; 191 192local generatedRepositoryModelSourceFiles = 193 DumpExportRepository.cpp 194 DumpExportRepositorySource.cpp 195 DumpExportRepositorySourceMirror.cpp 196; 197 198local generatedReferenceModelSourceFiles = 199 DumpExportReference.cpp 200 DumpExportReferenceNaturalLanguage.cpp 201 DumpExportReferencePkgCategory.cpp 202 DumpExportReferenceUserRatingStability.cpp 203 DumpExportReferenceCountry.cpp 204; 205 206local generatedPkgParserSourceFiles = 207 DumpExportPkgJsonListener.cpp 208; 209 210local generatedRepositoryParserSourceFiles = 211 DumpExportRepositoryJsonListener.cpp 212; 213 214local generatedReferenceParserSourceFiles = 215 DumpExportReferenceJsonListener.cpp 216; 217 218Application HaikuDepot 219 : $(applicationSources) 220 $(textDocumentSources) 221 $(generatedPkgModelSourceFiles) 222 $(generatedRepositoryModelSourceFiles) 223 $(generatedReferenceModelSourceFiles) 224 $(generatedPkgParserSourceFiles) 225 $(generatedRepositoryParserSourceFiles) 226 $(generatedReferenceParserSourceFiles) 227 : be package bnetapi translation libcolumnlistview.a shared 228 [ TargetLibstdc++ ] [ TargetLibsupc++ ] localestub 229 : HaikuDepot.rdef 230; 231 232DoCatalogs HaikuDepot : 233 x-vnd.Haiku-HaikuDepot 234 : 235 App.cpp 236 FeaturedPackagesView.cpp 237 FilterView.cpp 238 MainWindow.cpp 239 Model.cpp 240 PackageContentsView.cpp 241 PackageInfoView.cpp 242 PackageListView.cpp 243 PackageManager.cpp 244 RatePackageWindow.cpp 245 ScreenshotWindow.cpp 246 UserLoginWindow.cpp 247 WorkStatusView.cpp 248; 249 250Application TextDocumentTest : 251 TextDocumentTest.cpp 252 $(textDocumentSources) 253 254 : be translation shared [ TargetLibsupc++ ] 255; 256 257# The following use of rules configures the generation of .cpp and .h files from 258# JSON schemas that are defined in the HaikuDepotServer system. See the 259# included Jam rules and actions for the definitions. 260 261HdsSchemaGenModel $(dumpExportPkgModelTargetFile) 262 : dumpexportpkg.json : jsonschema2cppmodel.py ; 263 264HdsSchemaGenModel $(dumpExportRepositoryModelTargetFile) 265 : dumpexportrepository.json : jsonschema2cppmodel.py ; 266 267HdsSchemaGenModel $(dumpExportReferenceModelTargetFile) 268 : dumpexportreference.json : jsonschema2cppmodel.py ; 269 270HdsSchemaGenBulkParser $(dumpExportRepositoryBulkListerTargetFile) 271 : dumpexportrepository.json : jsonschema2cppparser.py ; 272 273HdsSchemaGenBulkParser $(dumpExportPkgBulkListenerTargetFile) 274 : dumpexportpkg.json : jsonschema2cppparser.py ; 275 276HdsSchemaGenParser $(dumpExportReferenceListenerTargetFile) 277 : dumpexportreference.json : jsonschema2cppparser.py ; 278 279HdsSchemaGenAppSrcDependsOnGeneration 280 [ FGristFiles $(generatedPkgParserSourceFiles) ] 281 [ FGristFiles $(generatedPkgParserSourceFiles:S=.h) ] 282 : $(dumpExportPkgBulkListenerTargetFile) ; 283 284HdsSchemaGenAppSrcDependsOnGeneration 285 [ FGristFiles $(generatedRepositoryParserSourceFiles) ] 286 [ FGristFiles $(generatedRepositoryParserSourceFiles:S=.h) ] 287 : $(dumpExportRepositoryBulkListerTargetFile) ; 288 289HdsSchemaGenAppSrcDependsOnGeneration 290 [ FGristFiles $(generatedReferenceParserSourceFiles) ] 291 [ FGristFiles $(generatedReferenceParserSourceFiles:S=.h) ] 292 : $(dumpExportReferenceListenerTargetFile) ; 293 294HdsSchemaGenAppSrcDependsOnGeneration 295 [ FGristFiles $(generatedRepositoryModelSourceFiles) ] 296 [ FGristFiles $(generatedRepositoryModelSourceFiles:S=.h) ] 297 : $(dumpExportRepositoryModelTargetFile) ; 298 299HdsSchemaGenAppSrcDependsOnGeneration 300 [ FGristFiles $(generatedPkgModelSourceFiles) ] 301 [ FGristFiles $(generatedPkgModelSourceFiles:S=.h) ] 302 : $(dumpExportPkgModelTargetFile) ; 303 304HdsSchemaGenAppSrcDependsOnGeneration 305 [ FGristFiles $(generatedReferenceModelSourceFiles) ] 306 [ FGristFiles $(generatedReferenceModelSourceFiles:S=.h) ] 307 : $(dumpExportReferenceModelTargetFile) ; 308 309# This will ensure that if any of the generated files' header files change, then 310# the application should be re-built. 311 312Depends [ FGristFiles $(applicationSources:S=.o) ] 313 : 314 [ FGristFiles $(generatedPkgParserSourceFiles:S=.h) ] 315 [ FGristFiles $(generatedPkgModelSourceFiles:S=.h) ] 316 [ FGristFiles $(generatedRepositoryParserSourceFiles:S=.h) ] 317 [ FGristFiles $(generatedRepositoryModelSourceFiles:S=.h) ] 318 [ FGristFiles $(generatedReferenceParserSourceFiles:S=.h) ] 319 [ FGristFiles $(generatedReferenceModelSourceFiles:S=.h) ] 320; 321