aboutsummaryrefslogtreecommitdiffstats
path: root/build/cmake/CreatePkgConfigFile.cmake
blob: bc5a43f72af17a24b9dee174de16f87a7c604396 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# - Generate a libarchive.pc like autotools for pkg-config
#

# Set the required variables (we use the same input file as autotools)
SET(prefix ${CMAKE_INSTALL_PREFIX})
SET(exec_prefix \${prefix})
SET(libdir \${exec_prefix}/lib)
SET(includedir \${prefix}/include)
# Now, this is not particularly pretty, nor is it terribly accurate...
# Loop over all our additional libs
FOREACH(mylib ${ADDITIONAL_LIBS})
	# Extract the filename from the absolute path
	GET_FILENAME_COMPONENT(mylib_name ${mylib} NAME_WE)
	# Strip the lib prefix
	STRING(REGEX REPLACE "^lib" "" mylib_name ${mylib_name})
	# Append it to our LIBS string
	SET(LIBS "${LIBS} -l${mylib_name}")
ENDFOREACH()
# libxml2 is easier, since it's already using pkg-config
FOREACH(mylib ${PC_LIBXML_STATIC_LDFLAGS})
	SET(LIBS "${LIBS} ${mylib}")
ENDFOREACH()
# FIXME: The order of the libraries doesn't take dependencies into account,
#	 thus there's a good chance it'll make some binutils versions unhappy...
#	 This only affects Libs.private (looked up for static builds) though.
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/build/pkgconfig/libarchive.pc.in
		${CMAKE_CURRENT_BINARY_DIR}/build/pkgconfig/libarchive.pc
		@ONLY)
# And install it, of course ;).
IF(ENABLE_INSTALL)
  INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/build/pkgconfig/libarchive.pc
          DESTINATION "lib/pkgconfig")
ENDIF()