xref: /haiku/src/build/libpackage/Jamfile (revision 32832cbe47f991cc6d2b29824903181d8baaaa63)
1SubDir HAIKU_TOP src build libpackage ;
2
3UsePrivateBuildHeaders kernel package shared storage ;
4
5SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src kits package ] ;
6SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src kits package hpkg ] ;
7SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src kits package hpkg v1 ] ;
8SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src kits package manager ] ;
9SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src kits package solver ] ;
10
11USES_BE_API on libpackage_build.so = true ;
12LINKFLAGS on libpackage_build.so += $(HOST_PTHREAD_LINKFLAGS) ;
13
14
15{
16	# The package writer needs to know where the license files are located.
17	local dataDir = [ FDirName $(HAIKU_TOP) data system data ] ;
18	# The directory path we compile in must be absolute. If it isn't prepend
19	# pwd.
20	local defines ;
21	if ! [ Match "(^/.*)" : $(dataDir) ] {
22		dataDir = `pwd`/$(dataDir) ;
23	}
24	local defines = [ FDefines
25		\"HAIKU_BUILD_SYSTEM_DATA_DIRECTORY="\\\"$(dataDir)\\\""\"
26	] ;
27	ObjectC++Flags PackageWriterImpl.cpp : $(defines) ;
28}
29
30
31HPKG_SOURCES =
32	AttributeDataReader.cpp
33	BlockBufferPool.cpp
34	BlockBufferPoolImpl.cpp
35	BlockBufferPoolNoLock.cpp
36	BufferPool.cpp
37	PoolBuffer.cpp
38	DataReader.cpp
39	DataWriters.cpp
40	ErrorOutput.cpp
41	FDDataReader.cpp
42	GlobalWritableFileInfo.cpp
43	HPKGDefs.cpp
44	PackageContentHandler.cpp
45	PackageData.cpp
46	PackageDataReader.cpp
47	PackageEntry.cpp
48	PackageEntryAttribute.cpp
49	PackageFileHeapAccessorBase.cpp
50	PackageFileHeapReader.cpp
51	PackageFileHeapWriter.cpp
52	PackageReader.cpp
53	PackageReaderImpl.cpp
54	PackageWriter.cpp
55	PackageWriterImpl.cpp
56	ReaderImplBase.cpp
57	RepositoryContentHandler.cpp
58	RepositoryReader.cpp
59	RepositoryReaderImpl.cpp
60	RepositoryWriter.cpp
61	RepositoryWriterImpl.cpp
62	Strings.cpp
63	UserSettingsFileInfo.cpp
64	WriterImplBase.cpp
65
66	# V1 support
67	HPKGDefsV1.cpp
68	PackageContentHandlerV1.cpp
69	PackageDataReaderV1.cpp
70	PackageDataV1.cpp
71	PackageEntryAttributeV1.cpp
72	PackageEntryV1.cpp
73	PackageInfoContentHandlerV1.cpp
74	PackageReaderImplV1.cpp
75	PackageReaderV1.cpp
76	ReaderImplBaseV1.cpp
77
78	# compression
79	ZlibCompressionBase.cpp
80	ZlibCompressor.cpp
81	ZlibDecompressor.cpp
82;
83
84# TODO: remove this hack once gcc2 has -iquote implemented
85if $(HOST_PLATFORM) = haiku_host &&  $(HOST_GCC_VERSION[1]) < 3 {
86	local locations = common/non-packaged common system ;
87	SourceHdrs FetchFileJob.cpp : /boot/$(locations)/develop/headers/curl ;
88}
89
90# locate the library
91MakeLocate libpackage_build.so : $(HOST_BUILD_COMPATIBILITY_LIB_DIR) ;
92
93BuildPlatformSharedLibrary libpackage_build.so
94	:
95	ActivateRepositoryCacheJob.cpp
96	ActivateRepositoryConfigJob.cpp
97	ActivationTransaction.cpp
98	AddRepositoryRequest.cpp
99	Attributes.cpp
100	ChecksumAccessors.cpp
101	CommitTransactionResult.cpp
102	Context.cpp
103	DownloadFileRequest.cpp
104	DropRepositoryRequest.cpp
105	FetchFileJob.cpp
106	InstallationLocationInfo.cpp
107	Job.cpp
108	JobQueue.cpp
109	PackageInfo.cpp
110	PackageInfoContentHandler.cpp
111	PackageInfoParser.cpp
112	PackageInfoSet.cpp
113	PackageResolvable.cpp
114	PackageResolvableExpression.cpp
115	PackageRoster.cpp
116	PackageVersion.cpp
117	RefreshRepositoryRequest.cpp
118	RemoveRepositoryJob.cpp
119	RepositoryCache.cpp
120	RepositoryConfig.cpp
121	RepositoryInfo.cpp
122	Request.cpp
123	TempfileManager.cpp
124	User.cpp
125	ValidateChecksumJob.cpp
126
127	$(HPKG_SOURCES)
128
129	# hpkg, but only libpackage
130	NoErrorOutput.cpp
131	StandardErrorOutput.cpp
132
133	# manager
134	Exceptions.cpp
135	RepositoryBuilder.cpp
136
137	# solver
138	Solver.cpp
139	SolverPackage.cpp
140	SolverPackageSpecifier.cpp
141	SolverPackageSpecifierList.cpp
142	SolverProblem.cpp
143	SolverProblemSolution.cpp
144	SolverRepository.cpp
145	SolverResult.cpp
146	:
147	libshared_build.a $(HOST_LIBBE) curl z $(HOST_LIBSTDC++)
148;
149
150HaikuSubInclude solver ;
151