summaryrefslogtreecommitdiff
path: root/cmake/InstallPkgConfigFile.cmake
diff options
context:
space:
mode:
authorirungentoo <irungentoo@gmail.com>2013-08-23 17:43:27 -0700
committerirungentoo <irungentoo@gmail.com>2013-08-23 17:43:27 -0700
commitc2c4ad8e5bfc25a50437b2486a46d07e10d497c9 (patch)
tree0d2d86c9d092610fc6495b5d7c6c4ec940b75a8a /cmake/InstallPkgConfigFile.cmake
parente2aa8161adc85795fe4d63d4642f47e90937ddc2 (diff)
parent1ec70337cfbf42f5f10d20c6152cdc5cf635df1b (diff)
Merge pull request #484 from jin-eld/shared-lib-pr
autotools build scripts - improved PR version 2
Diffstat (limited to 'cmake/InstallPkgConfigFile.cmake')
-rw-r--r--cmake/InstallPkgConfigFile.cmake78
1 files changed, 0 insertions, 78 deletions
diff --git a/cmake/InstallPkgConfigFile.cmake b/cmake/InstallPkgConfigFile.cmake
deleted file mode 100644
index 7c4e5859..00000000
--- a/cmake/InstallPkgConfigFile.cmake
+++ /dev/null
@@ -1,78 +0,0 @@
1# A Macro to simplify creating a pkg-config file
2
3# install_pkg_config_file(<package-name>
4# [VERSION <version>]
5# [DESCRIPTION <description>]
6# [CFLAGS <cflag> ...]
7# [LIBS <lflag> ...]
8# [REQUIRES <required-package-name> ...])
9#
10# Create and install a pkg-config .pc file to CMAKE_INSTALL_PREFIX/lib/pkgconfig
11# assuming the following install layout:
12# libraries: CMAKE_INSTALL_PREFIX/lib
13# headers : CMAKE_INSTALL_PREFIX/include
14#
15# example:
16# add_library(mylib mylib.c)
17# install_pkg_config_file(mylib
18# DESCRIPTION My Library
19# CFLAGS
20# LIBS -lmylib
21# REQUIRES glib-2.0 lcm
22# VERSION 0.0.1)
23#
24#
25function(install_pkg_config_file)
26 list(GET ARGV 0 pc_name)
27 # TODO error check
28
29 set(pc_version 0.0.1)
30 set(pc_description ${pc_name})
31 set(pc_requires "")
32 set(pc_libs "")
33 set(pc_cflags "")
34 set(pc_fname "${CMAKE_BINARY_DIR}/lib/pkgconfig/${pc_name}.pc")
35
36 set(modewords LIBS CFLAGS REQUIRES VERSION DESCRIPTION)
37 set(curmode "")
38
39 # parse function arguments and populate pkg-config parameters
40 list(REMOVE_AT ARGV 0)
41 foreach(word ${ARGV})
42 list(FIND modewords ${word} mode_index)
43 if(${mode_index} GREATER -1)
44 set(curmode ${word})
45 elseif(curmode STREQUAL LIBS)
46 set(pc_libs "${pc_libs} ${word}")
47 elseif(curmode STREQUAL CFLAGS)
48 set(pc_cflags "${pc_cflags} ${word}")
49 elseif(curmode STREQUAL REQUIRES)
50 set(pc_requires "${pc_requires} ${word}")
51 elseif(curmode STREQUAL VERSION)
52 set(pc_version ${word})
53 set(curmode "")
54 elseif(curmode STREQUAL DESCRIPTION)
55 set(pc_description "${word}")
56 set(curmode "")
57 else(${mode_index} GREATER -1)
58 message("WARNING incorrect use of install_pkg_config_file (${word})")
59 break()
60 endif(${mode_index} GREATER -1)
61 endforeach(word)
62
63 # write the .pc file out
64 file(WRITE ${pc_fname}
65 "prefix=${CMAKE_INSTALL_PREFIX}\n"
66 "libdir=\${prefix}/lib\n"
67 "includedir=\${prefix}/include\n"
68 "\n"
69 "Name: ${pc_name}\n"
70 "Description: ${pc_description}\n"
71 "Requires: ${pc_requires}\n"
72 "Version: ${pc_version}\n"
73 "Libs: -L\${libdir} ${pc_libs}\n"
74 "Cflags: -I\${includedir} ${pc_cflags}\n")
75
76 # mark the .pc file for installation to the lib/pkgconfig directory
77 install(FILES ${pc_fname} DESTINATION lib/pkgconfig)
78endfunction(install_pkg_config_file)