xref: /haiku/src/apps/haikudepot/Jamfile (revision 77fb9ca3e653f72d1d15c9f1a50c3d4287f680e0)
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	LocalPkgDataLoadProcess.cpp
239	LocalRepositoryUpdateProcess.cpp
240	MainWindow.cpp
241	Model.cpp
242	PackageContentsView.cpp
243	PackageInfoView.cpp
244	PackageListView.cpp
245	PackageManager.cpp
246	ProcessCoordinator.cpp
247	RatePackageWindow.cpp
248	ScreenshotWindow.cpp
249	ServerHelper.cpp
250	ServerIconExportUpdateProcess.cpp
251	ServerPkgDataUpdateProcess.cpp
252	ServerReferenceDataUpdateProcess.cpp
253	ServerRepositoryDataUpdateProcess.cpp
254	UserLoginWindow.cpp
255	WorkStatusView.cpp
256;
257
258Application TextDocumentTest :
259	TextDocumentTest.cpp
260	$(textDocumentSources)
261
262	: be translation shared [ TargetLibsupc++ ]
263;
264
265# The following use of rules configures the generation of .cpp and .h files from
266# JSON schemas that are defined in the HaikuDepotServer system.  See the
267# included Jam rules and actions for the definitions.
268
269HdsSchemaGenModel $(dumpExportPkgModelTargetFile)
270	: dumpexportpkg.json : jsonschema2cppmodel.py ;
271
272HdsSchemaGenModel $(dumpExportRepositoryModelTargetFile)
273	: dumpexportrepository.json : jsonschema2cppmodel.py ;
274
275HdsSchemaGenModel $(dumpExportReferenceModelTargetFile)
276	: dumpexportreference.json : jsonschema2cppmodel.py ;
277
278HdsSchemaGenBulkParser $(dumpExportRepositoryBulkListerTargetFile)
279	: dumpexportrepository.json : jsonschema2cppparser.py ;
280
281HdsSchemaGenBulkParser $(dumpExportPkgBulkListenerTargetFile)
282	: dumpexportpkg.json : jsonschema2cppparser.py ;
283
284HdsSchemaGenParser $(dumpExportReferenceListenerTargetFile)
285	: dumpexportreference.json : jsonschema2cppparser.py ;
286
287HdsSchemaGenAppSrcDependsOnGeneration
288	[ FGristFiles $(generatedPkgParserSourceFiles) ]
289	[ FGristFiles $(generatedPkgParserSourceFiles:S=.h) ]
290	: $(dumpExportPkgBulkListenerTargetFile) ;
291
292HdsSchemaGenAppSrcDependsOnGeneration
293	[ FGristFiles $(generatedRepositoryParserSourceFiles) ]
294	[ FGristFiles $(generatedRepositoryParserSourceFiles:S=.h) ]
295	: $(dumpExportRepositoryBulkListerTargetFile) ;
296
297HdsSchemaGenAppSrcDependsOnGeneration
298	[ FGristFiles $(generatedReferenceParserSourceFiles) ]
299	[ FGristFiles $(generatedReferenceParserSourceFiles:S=.h) ]
300	: $(dumpExportReferenceListenerTargetFile) ;
301
302HdsSchemaGenAppSrcDependsOnGeneration
303	[ FGristFiles $(generatedRepositoryModelSourceFiles) ]
304	[ FGristFiles $(generatedRepositoryModelSourceFiles:S=.h) ]
305	: $(dumpExportRepositoryModelTargetFile) ;
306
307HdsSchemaGenAppSrcDependsOnGeneration
308	[ FGristFiles $(generatedPkgModelSourceFiles) ]
309	[ FGristFiles $(generatedPkgModelSourceFiles:S=.h) ]
310	: $(dumpExportPkgModelTargetFile) ;
311
312HdsSchemaGenAppSrcDependsOnGeneration
313	[ FGristFiles $(generatedReferenceModelSourceFiles) ]
314	[ FGristFiles $(generatedReferenceModelSourceFiles:S=.h) ]
315	: $(dumpExportReferenceModelTargetFile) ;
316
317# This will ensure that if any of the generated files' header files change, then
318# the application should be re-built.
319
320Depends [ FGristFiles $(applicationSources:S=.o) ]
321	:
322	[ FGristFiles $(generatedPkgParserSourceFiles:S=.h) ]
323	[ FGristFiles $(generatedPkgModelSourceFiles:S=.h) ]
324	[ FGristFiles $(generatedRepositoryParserSourceFiles:S=.h) ]
325	[ FGristFiles $(generatedRepositoryModelSourceFiles:S=.h) ]
326	[ FGristFiles $(generatedReferenceParserSourceFiles:S=.h) ]
327	[ FGristFiles $(generatedReferenceModelSourceFiles:S=.h) ]
328;
329