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