Mercurial > irccd
annotate libirccd/CMakeLists.txt @ 930:5ec14fdb00cf
misc: merge from stable-3
author | David Demelier <markand@malikania.fr> |
---|---|
date | Mon, 04 Jan 2021 10:30:17 +0100 |
parents | 5e25439fe98d |
children |
rev | line source |
---|---|
377
cd7270ec6c8e
CMake: general cleanup
David Demelier <markand@malikania.fr>
parents:
364
diff
changeset
|
1 # |
cd7270ec6c8e
CMake: general cleanup
David Demelier <markand@malikania.fr>
parents:
364
diff
changeset
|
2 # CMakeLists.txt -- CMake build system for irccd |
cd7270ec6c8e
CMake: general cleanup
David Demelier <markand@malikania.fr>
parents:
364
diff
changeset
|
3 # |
913 | 4 # Copyright (c) 2013-2020 David Demelier <markand@malikania.fr> |
377
cd7270ec6c8e
CMake: general cleanup
David Demelier <markand@malikania.fr>
parents:
364
diff
changeset
|
5 # |
cd7270ec6c8e
CMake: general cleanup
David Demelier <markand@malikania.fr>
parents:
364
diff
changeset
|
6 # Permission to use, copy, modify, and/or distribute this software for any |
cd7270ec6c8e
CMake: general cleanup
David Demelier <markand@malikania.fr>
parents:
364
diff
changeset
|
7 # purpose with or without fee is hereby granted, provided that the above |
cd7270ec6c8e
CMake: general cleanup
David Demelier <markand@malikania.fr>
parents:
364
diff
changeset
|
8 # copyright notice and this permission notice appear in all copies. |
cd7270ec6c8e
CMake: general cleanup
David Demelier <markand@malikania.fr>
parents:
364
diff
changeset
|
9 # |
cd7270ec6c8e
CMake: general cleanup
David Demelier <markand@malikania.fr>
parents:
364
diff
changeset
|
10 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
cd7270ec6c8e
CMake: general cleanup
David Demelier <markand@malikania.fr>
parents:
364
diff
changeset
|
11 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
cd7270ec6c8e
CMake: general cleanup
David Demelier <markand@malikania.fr>
parents:
364
diff
changeset
|
12 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
cd7270ec6c8e
CMake: general cleanup
David Demelier <markand@malikania.fr>
parents:
364
diff
changeset
|
13 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
cd7270ec6c8e
CMake: general cleanup
David Demelier <markand@malikania.fr>
parents:
364
diff
changeset
|
14 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
cd7270ec6c8e
CMake: general cleanup
David Demelier <markand@malikania.fr>
parents:
364
diff
changeset
|
15 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
cd7270ec6c8e
CMake: general cleanup
David Demelier <markand@malikania.fr>
parents:
364
diff
changeset
|
16 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
cd7270ec6c8e
CMake: general cleanup
David Demelier <markand@malikania.fr>
parents:
364
diff
changeset
|
17 # |
cd7270ec6c8e
CMake: general cleanup
David Demelier <markand@malikania.fr>
parents:
364
diff
changeset
|
18 |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
797
diff
changeset
|
19 project(libirccd) |
290
24bb45724dc0
Irccd: split lib into libcommon, #564
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 |
818
49fa22f0b4b9
windows: support for VS2017
David Demelier <markand@malikania.fr>
parents:
812
diff
changeset
|
21 find_package(Boost 1.60 REQUIRED QUIET COMPONENTS date_time filesystem system) |
477
bf201d09ee6a
Irccd: use boost::filesystem (fs::exists), #594
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
22 |
290
24bb45724dc0
Irccd: split lib into libcommon, #564
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
23 set( |
797
2dfba38e93f0
cmake: fix headers installation, closes #924 @1h
David Demelier <markand@malikania.fr>
parents:
782
diff
changeset
|
24 SOURCES |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
797
diff
changeset
|
25 ${libirccd_SOURCE_DIR}/irccd/acceptor.hpp |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
797
diff
changeset
|
26 ${libirccd_SOURCE_DIR}/irccd/config.cpp |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
797
diff
changeset
|
27 ${libirccd_SOURCE_DIR}/irccd/config.hpp |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
797
diff
changeset
|
28 ${libirccd_SOURCE_DIR}/irccd/connector.hpp |
812
e29af7701b21
misc: add convenient headers, closes #956 @30m
David Demelier <markand@malikania.fr>
parents:
809
diff
changeset
|
29 ${libirccd_SOURCE_DIR}/irccd/core.hpp |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
797
diff
changeset
|
30 ${libirccd_SOURCE_DIR}/irccd/fs_util.cpp |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
797
diff
changeset
|
31 ${libirccd_SOURCE_DIR}/irccd/fs_util.hpp |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
797
diff
changeset
|
32 ${libirccd_SOURCE_DIR}/irccd/ini.cpp |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
797
diff
changeset
|
33 ${libirccd_SOURCE_DIR}/irccd/ini.hpp |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
797
diff
changeset
|
34 ${libirccd_SOURCE_DIR}/irccd/ini_util.hpp |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
797
diff
changeset
|
35 ${libirccd_SOURCE_DIR}/irccd/json_util.cpp |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
797
diff
changeset
|
36 ${libirccd_SOURCE_DIR}/irccd/json_util.hpp |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
797
diff
changeset
|
37 ${libirccd_SOURCE_DIR}/irccd/options.hpp |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
797
diff
changeset
|
38 ${libirccd_SOURCE_DIR}/irccd/stream.hpp |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
797
diff
changeset
|
39 ${libirccd_SOURCE_DIR}/irccd/string_util.cpp |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
797
diff
changeset
|
40 ${libirccd_SOURCE_DIR}/irccd/string_util.hpp |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
797
diff
changeset
|
41 ${libirccd_SOURCE_DIR}/irccd/system.cpp |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
797
diff
changeset
|
42 ${libirccd_SOURCE_DIR}/irccd/system.hpp |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
797
diff
changeset
|
43 ${libirccd_SOURCE_DIR}/irccd/xdg.hpp |
290
24bb45724dc0
Irccd: split lib into libcommon, #564
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
44 ) |
24bb45724dc0
Irccd: split lib into libcommon, #564
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
45 |
24bb45724dc0
Irccd: split lib into libcommon, #564
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
46 set( |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
730
diff
changeset
|
47 LIBRARIES |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
730
diff
changeset
|
48 ${CMAKE_DL_LIBS} |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
730
diff
changeset
|
49 libjson |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
730
diff
changeset
|
50 Threads::Threads |
818
49fa22f0b4b9
windows: support for VS2017
David Demelier <markand@malikania.fr>
parents:
812
diff
changeset
|
51 Boost::disable_autolinking |
49fa22f0b4b9
windows: support for VS2017
David Demelier <markand@malikania.fr>
parents:
812
diff
changeset
|
52 Boost::dynamic_linking |
49fa22f0b4b9
windows: support for VS2017
David Demelier <markand@malikania.fr>
parents:
812
diff
changeset
|
53 Boost::date_time |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
730
diff
changeset
|
54 Boost::filesystem |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
730
diff
changeset
|
55 Boost::system |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
730
diff
changeset
|
56 ) |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
730
diff
changeset
|
57 |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
730
diff
changeset
|
58 if (CMAKE_SYSTEM_NAME MATCHES Windows) |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
730
diff
changeset
|
59 list(APPEND LIBRARIES mswsock shlwapi ws2_32) |
782
2d188a3e8802
Core: disable epoll backend by default
David Demelier <markand@malikania.fr>
parents:
780
diff
changeset
|
60 elseif (CMAKE_SYSTEM_NAME MATCHES "Linux") |
2d188a3e8802
Core: disable epoll backend by default
David Demelier <markand@malikania.fr>
parents:
780
diff
changeset
|
61 # |
2d188a3e8802
Core: disable epoll backend by default
David Demelier <markand@malikania.fr>
parents:
780
diff
changeset
|
62 # Disable epoll in boost until it get fixed: |
2d188a3e8802
Core: disable epoll backend by default
David Demelier <markand@malikania.fr>
parents:
780
diff
changeset
|
63 # https://github.com/boostorg/asio/issues/150 |
2d188a3e8802
Core: disable epoll backend by default
David Demelier <markand@malikania.fr>
parents:
780
diff
changeset
|
64 # |
2d188a3e8802
Core: disable epoll backend by default
David Demelier <markand@malikania.fr>
parents:
780
diff
changeset
|
65 list(APPEND FLAGS "BOOST_ASIO_DISABLE_EPOLL") |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
730
diff
changeset
|
66 elseif (APPLE) |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
730
diff
changeset
|
67 list(APPEND LIBRARIES resolv) |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
730
diff
changeset
|
68 endif () |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
730
diff
changeset
|
69 |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
730
diff
changeset
|
70 if (IRCCD_HAVE_SSL) |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
730
diff
changeset
|
71 list(APPEND LIBRARIES OpenSSL::Crypto OpenSSL::SSL) |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
730
diff
changeset
|
72 endif () |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
730
diff
changeset
|
73 |
290
24bb45724dc0
Irccd: split lib into libcommon, #564
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
74 irccd_define_library( |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
797
diff
changeset
|
75 TARGET libirccd |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
730
diff
changeset
|
76 EXPORT |
782
2d188a3e8802
Core: disable epoll backend by default
David Demelier <markand@malikania.fr>
parents:
780
diff
changeset
|
77 FLAGS ${FLAGS} |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
797
diff
changeset
|
78 HEADERS ${libirccd_SOURCE_DIR}/irccd/ |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
730
diff
changeset
|
79 SOURCES ${SOURCES} |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
730
diff
changeset
|
80 LIBRARIES ${LIBRARIES} |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
730
diff
changeset
|
81 PUBLIC_INCLUDES |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
730
diff
changeset
|
82 $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}> |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
797
diff
changeset
|
83 $<BUILD_INTERFACE:${libirccd_SOURCE_DIR}> |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
730
diff
changeset
|
84 $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> |
290
24bb45724dc0
Irccd: split lib into libcommon, #564
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
85 ) |