annotate cmake/export/CMakeLists.txt @ 711:fc66cc9706a7

CMake: export pkg-config files, closes #874 @1h While here rename libcommon to libirccd-core to avoid collision when installed. For consistency, rename libirccdctl to libirccd-ctl.
author David Demelier <markand@malikania.fr>
date Sat, 07 Jul 2018 15:40:46 +0200
parents a17de53db29b
children 8c44bbcbbab9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
710
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 #
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 # CMakeLists.txt -- CMake build system for irccd
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 #
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 # Copyright (c) 2013-2018 David Demelier <markand@malikania.fr>
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 #
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 # Permission to use, copy, modify, and/or distribute this software for any
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 # purpose with or without fee is hereby granted, provided that the above
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 # copyright notice and this permission notice appear in all copies.
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 #
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 #
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 include(CMakePackageConfigHelpers)
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
20
711
fc66cc9706a7 CMake: export pkg-config files, closes #874 @1h
David Demelier <markand@malikania.fr>
parents: 710
diff changeset
21 # CMake export files.
710
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 write_basic_package_version_file(
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 ${CMAKE_CURRENT_BINARY_DIR}/irccd-config-version.cmake
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 VERSION ${IRCCD_VERSION}
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 COMPATIBILITY SameMajorVersion
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 )
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
27
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 install(
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 EXPORT irccd-targets
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
30 FILE irccd-targets.cmake
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 NAMESPACE irccd::
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/irccd
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 )
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
34
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 install(
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 FILES
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 ${CMAKE_CURRENT_SOURCE_DIR}/irccd-config.cmake
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 ${CMAKE_CURRENT_BINARY_DIR}/irccd-config-version.cmake
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/irccd
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 COMPONENT Devel
a17de53db29b Misc: export libraries
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 )
711
fc66cc9706a7 CMake: export pkg-config files, closes #874 @1h
David Demelier <markand@malikania.fr>
parents: 710
diff changeset
42
fc66cc9706a7 CMake: export pkg-config files, closes #874 @1h
David Demelier <markand@malikania.fr>
parents: 710
diff changeset
43 # pkg-config files.
fc66cc9706a7 CMake: export pkg-config files, closes #874 @1h
David Demelier <markand@malikania.fr>
parents: 710
diff changeset
44 if (IRCCD_WITH_PKGCONFIG)
fc66cc9706a7 CMake: export pkg-config files, closes #874 @1h
David Demelier <markand@malikania.fr>
parents: 710
diff changeset
45 # Since javascript is optional, add it only if required.
fc66cc9706a7 CMake: export pkg-config files, closes #874 @1h
David Demelier <markand@malikania.fr>
parents: 710
diff changeset
46 if (IRCCD_HAVE_JS)
fc66cc9706a7 CMake: export pkg-config files, closes #874 @1h
David Demelier <markand@malikania.fr>
parents: 710
diff changeset
47 set(IRCCD_EXTRA_REQUIRES libirccd-js)
fc66cc9706a7 CMake: export pkg-config files, closes #874 @1h
David Demelier <markand@malikania.fr>
parents: 710
diff changeset
48 endif ()
fc66cc9706a7 CMake: export pkg-config files, closes #874 @1h
David Demelier <markand@malikania.fr>
parents: 710
diff changeset
49 if (IRCCD_HAVE_SSL)
fc66cc9706a7 CMake: export pkg-config files, closes #874 @1h
David Demelier <markand@malikania.fr>
parents: 710
diff changeset
50 set(IRCCD_EXTRA_LIBS "-lssl -lcrypto")
fc66cc9706a7 CMake: export pkg-config files, closes #874 @1h
David Demelier <markand@malikania.fr>
parents: 710
diff changeset
51 endif ()
fc66cc9706a7 CMake: export pkg-config files, closes #874 @1h
David Demelier <markand@malikania.fr>
parents: 710
diff changeset
52
fc66cc9706a7 CMake: export pkg-config files, closes #874 @1h
David Demelier <markand@malikania.fr>
parents: 710
diff changeset
53 foreach (pkg libirccd-core libirccd libirccd-ctl libirccd-js libirccd-test)
fc66cc9706a7 CMake: export pkg-config files, closes #874 @1h
David Demelier <markand@malikania.fr>
parents: 710
diff changeset
54 configure_file(
fc66cc9706a7 CMake: export pkg-config files, closes #874 @1h
David Demelier <markand@malikania.fr>
parents: 710
diff changeset
55 ${CMAKE_CURRENT_SOURCE_DIR}/${pkg}.pc
fc66cc9706a7 CMake: export pkg-config files, closes #874 @1h
David Demelier <markand@malikania.fr>
parents: 710
diff changeset
56 ${CMAKE_CURRENT_BINARY_DIR}/${pkg}.pc
fc66cc9706a7 CMake: export pkg-config files, closes #874 @1h
David Demelier <markand@malikania.fr>
parents: 710
diff changeset
57 @ONLY
fc66cc9706a7 CMake: export pkg-config files, closes #874 @1h
David Demelier <markand@malikania.fr>
parents: 710
diff changeset
58 )
fc66cc9706a7 CMake: export pkg-config files, closes #874 @1h
David Demelier <markand@malikania.fr>
parents: 710
diff changeset
59 install(
fc66cc9706a7 CMake: export pkg-config files, closes #874 @1h
David Demelier <markand@malikania.fr>
parents: 710
diff changeset
60 FILES ${CMAKE_CURRENT_BINARY_DIR}/${pkg}.pc
fc66cc9706a7 CMake: export pkg-config files, closes #874 @1h
David Demelier <markand@malikania.fr>
parents: 710
diff changeset
61 DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
fc66cc9706a7 CMake: export pkg-config files, closes #874 @1h
David Demelier <markand@malikania.fr>
parents: 710
diff changeset
62 )
fc66cc9706a7 CMake: export pkg-config files, closes #874 @1h
David Demelier <markand@malikania.fr>
parents: 710
diff changeset
63 endforeach ()
fc66cc9706a7 CMake: export pkg-config files, closes #874 @1h
David Demelier <markand@malikania.fr>
parents: 710
diff changeset
64 endif ()