Mercurial > irccd
annotate lib/CMakeLists.txt @ 75:f8160d515a76
Irccd: rework a lot the JavaScript library
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 30 Mar 2016 13:52:47 +0200 |
parents | 35ef15100de8 |
children | 7e9a1faeb6f6 |
rev | line source |
---|---|
74
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
1 # |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
2 # CMakeLists.txt -- CMake build system for irccd |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
3 # |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
4 # Copyright (c) 2013-2016 David Demelier <markand@malikania.fr> |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
5 # |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
6 # Permission to use, copy, modify, and/or distribute this software for any |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
7 # purpose with or without fee is hereby granted, provided that the above |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
8 # copyright notice and this permission notice appear in all copies. |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
9 # |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
10 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
11 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
12 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
13 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
14 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
15 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
16 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
17 # |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
18 |
72
98ac3c79009f
Irccd: start making a library, #429
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
19 project(lib) |
98ac3c79009f
Irccd: start making a library, #429
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 |
98ac3c79009f
Irccd: start making a library, #429
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 include(irccd/CMakeSources.cmake) |
98ac3c79009f
Irccd: start making a library, #429
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
22 |
98ac3c79009f
Irccd: start making a library, #429
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
23 add_library(libirccd ${HEADERS} ${SOURCES}) |
98ac3c79009f
Irccd: start making a library, #429
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
24 |
98ac3c79009f
Irccd: start making a library, #429
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
25 target_include_directories( |
98ac3c79009f
Irccd: start making a library, #429
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
26 libirccd |
98ac3c79009f
Irccd: start making a library, #429
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
27 PUBLIC |
75
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
28 $<BUILD_INTERFACE:${duktape_SOURCE_DIR}> |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
29 $<BUILD_INTERFACE:${extern-libircclient_SOURCE_DIR}/include> |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
30 $<BUILD_INTERFACE:${irccd_BINARY_DIR}> |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
31 $<BUILD_INTERFACE:${lib_SOURCE_DIR}> |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
32 $<INSTALL_INTERFACE:include> |
72
98ac3c79009f
Irccd: start making a library, #429
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
33 ${OPENSSL_INCLUDE_DIR} |
98ac3c79009f
Irccd: start making a library, #429
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
34 ) |
98ac3c79009f
Irccd: start making a library, #429
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
35 |
98ac3c79009f
Irccd: start making a library, #429
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
36 if (IRCCD_SYSTEM_WINDOWS) |
98ac3c79009f
Irccd: start making a library, #429
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
37 list(APPEND LIBRARIES ws2_32 shlwapi) |
98ac3c79009f
Irccd: start making a library, #429
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
38 elseif (IRCCD_SYSTEM_MAC) |
98ac3c79009f
Irccd: start making a library, #429
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
39 list(APPEND LIBRARIES resolv) |
98ac3c79009f
Irccd: start making a library, #429
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
40 endif () |
98ac3c79009f
Irccd: start making a library, #429
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
41 |
75
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
42 target_link_libraries(libirccd PRIVATE extern-duktape extern-ircclient extern-jansson) |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
43 target_link_libraries(libirccd ${LIBRARIES}) |
74
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
44 |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
45 set_target_properties( |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
46 libirccd |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
47 PROPERTIES |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
48 PREFIX "" |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
49 OUTPUT_NAME_DEBUG libirccd2d |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
50 VERSION ${IRCCD_VERSION} |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
51 SOVERSION ${IRCCD_VERSION_SHLIB} |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
52 ) |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
53 |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
54 install( |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
55 TARGETS libirccd |
75
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
56 EXPORT Irccd2Targets |
74
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
57 RUNTIME DESTINATION bin |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
58 LIBRARY DESTINATION lib |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
59 ARCHIVE DESTINATION lib |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
60 ) |
72
98ac3c79009f
Irccd: start making a library, #429
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
61 |
75
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
62 # CMake target exports. |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
63 export( |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
64 EXPORT Irccd2Targets |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
65 FILE "${CMAKE_BINARY_DIR}/Irccd2Targets.cmake" |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
66 NAMESPACE Irccd2:: |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
67 ) |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
68 |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
69 # CMake version file. |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
70 include(CMakePackageConfigHelpers) |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
71 |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
72 write_basic_package_version_file( |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
73 "${CMAKE_CURRENT_BINARY_DIR}/Irccd2ConfigVersion.cmake" |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
74 VERSION ${IRCCD_VERSION} |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
75 COMPATIBILITY AnyNewerVersion |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
76 ) |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
77 |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
78 # Irccd main module file. |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
79 configure_file( |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
80 "${CMAKE_SOURCE_DIR}/cmake/internal/Irccd2Config.cmake.in" |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
81 "${CMAKE_BINARY_DIR}/Irccd2Config.cmake" |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
82 COPYONLY |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
83 ) |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
84 |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
85 # Install all CMake stuff. |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
86 install( |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
87 EXPORT Irccd2Targets |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
88 FILE Irccd2Targets.cmake |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
89 NAMESPACE Irccd2:: |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
90 DESTINATION ${WITH_CMAKEDIR}/Irccd2 |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
91 ) |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
92 |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
93 install( |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
94 FILES |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
95 "${CMAKE_BINARY_DIR}/Irccd2Config.cmake" |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
96 "${CMAKE_BINARY_DIR}/Irccd2ConfigVersion.cmake" |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
97 DESTINATION ${WITH_CMAKEDIR}/Irccd2 |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
98 ) |
f8160d515a76
Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents:
74
diff
changeset
|
99 |
74
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
100 # pkg-config |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
101 if (WITH_PKGCONFIG) |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
102 # Configure the pkg-config file. |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
103 configure_file( |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
104 ${CMAKE_SOURCE_DIR}/cmake/internal/irccd2.pc.in |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
105 ${CMAKE_BINARY_DIR}/irccd2.pc.tmp |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
106 @ONLY |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
107 ) |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
108 |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
109 # Adjust the library output name if debug. |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
110 file( |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
111 GENERATE |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
112 OUTPUT ${CMAKE_BINARY_DIR}/irccd2.pc |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
113 INPUT ${CMAKE_BINARY_DIR}/irccd2.pc.tmp |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
114 ) |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
115 |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
116 install(FILES ${CMAKE_BINARY_DIR}/irccd2.pc DESTINATION ${WITH_PKGCONFIGDIR}) |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
72
diff
changeset
|
117 endif () |