annotate lib/CMakeLists.txt @ 203:c26754e419c4

Irccd: rename RemoteCommand to Command
author David Demelier <markand@malikania.fr>
date Thu, 09 Jun 2016 13:50:55 +0200
parents c1acfacc46bd
children 6635b9187d71
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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>
101
113d909fdfe1 CMake: disallow absolute paths, #389
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
30 $<BUILD_INTERFACE:${IRCCD_FAKEROOTDIR}/include/irccd>
113d909fdfe1 CMake: disallow absolute paths, #389
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
31 $<BUILD_INTERFACE:${IRCCD_FAKEROOTDIR}/include>
75
f8160d515a76 Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents: 74
diff changeset
32 $<BUILD_INTERFACE:${lib_SOURCE_DIR}>
f8160d515a76 Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents: 74
diff changeset
33 $<INSTALL_INTERFACE:include>
72
98ac3c79009f Irccd: start making a library, #429
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 ${OPENSSL_INCLUDE_DIR}
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
160
c1acfacc46bd Irccd: dll export and style
David Demelier <markand@malikania.fr>
parents: 138
diff changeset
37 source_group(irccd FILES ${HEADERS} ${SOURCES})
c1acfacc46bd Irccd: dll export and style
David Demelier <markand@malikania.fr>
parents: 138
diff changeset
38
72
98ac3c79009f Irccd: start making a library, #429
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 if (IRCCD_SYSTEM_WINDOWS)
98ac3c79009f Irccd: start making a library, #429
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 list(APPEND LIBRARIES ws2_32 shlwapi)
160
c1acfacc46bd Irccd: dll export and style
David Demelier <markand@malikania.fr>
parents: 138
diff changeset
41
c1acfacc46bd Irccd: dll export and style
David Demelier <markand@malikania.fr>
parents: 138
diff changeset
42 if (BUILD_SHARED_LIBS)
c1acfacc46bd Irccd: dll export and style
David Demelier <markand@malikania.fr>
parents: 138
diff changeset
43 list(APPEND FLAGS IRCCD_BUILDING_DLL)
c1acfacc46bd Irccd: dll export and style
David Demelier <markand@malikania.fr>
parents: 138
diff changeset
44 endif ()
72
98ac3c79009f Irccd: start making a library, #429
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 elseif (IRCCD_SYSTEM_MAC)
98ac3c79009f Irccd: start making a library, #429
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 list(APPEND LIBRARIES resolv)
136
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents: 104
diff changeset
47 elseif (IRCCD_SYSTEM_LINUX)
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents: 104
diff changeset
48 list(APPEND LIBRARIES dl)
72
98ac3c79009f Irccd: start making a library, #429
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 endif ()
98ac3c79009f Irccd: start making a library, #429
David Demelier <markand@malikania.fr>
parents:
diff changeset
50
138
ff26bd33a45d CMake: improve VS2015 support, #425
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
51 target_link_libraries(libirccd extern-duktape extern-ircclient extern-jansson extern-cppformat ${LIBRARIES})
160
c1acfacc46bd Irccd: dll export and style
David Demelier <markand@malikania.fr>
parents: 138
diff changeset
52 target_compile_definitions(libirccd PRIVATE ${FLAGS})
74
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 set_target_properties(
35ef15100de8 CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents: 72
diff changeset
55 libirccd
35ef15100de8 CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents: 72
diff changeset
56 PROPERTIES
35ef15100de8 CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents: 72
diff changeset
57 PREFIX ""
35ef15100de8 CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents: 72
diff changeset
58 OUTPUT_NAME_DEBUG libirccd2d
160
c1acfacc46bd Irccd: dll export and style
David Demelier <markand@malikania.fr>
parents: 138
diff changeset
59 RUNTIME_OUTPUT_DIRECTORY ${IRCCD_FAKEROOTDIR}/${WITH_BINDIR}
c1acfacc46bd Irccd: dll export and style
David Demelier <markand@malikania.fr>
parents: 138
diff changeset
60 RUNTIME_OUTPUT_DIRECTORY_DEBUG ${IRCCD_FAKEROOTDIR}/${WITH_BINDIR}
c1acfacc46bd Irccd: dll export and style
David Demelier <markand@malikania.fr>
parents: 138
diff changeset
61 RUNTIME_OUTPUT_DIRECTORY_RELEASE ${IRCCD_FAKEROOTDIR}/${WITH_BINDIR}
c1acfacc46bd Irccd: dll export and style
David Demelier <markand@malikania.fr>
parents: 138
diff changeset
62 RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO ${IRCCD_FAKEROOTDIR}/${WITH_BINDIR}
c1acfacc46bd Irccd: dll export and style
David Demelier <markand@malikania.fr>
parents: 138
diff changeset
63 RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL ${IRCCD_FAKEROOTDIR}/${WITH_BINDIR}
74
35ef15100de8 CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents: 72
diff changeset
64 VERSION ${IRCCD_VERSION}
35ef15100de8 CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents: 72
diff changeset
65 SOVERSION ${IRCCD_VERSION_SHLIB}
35ef15100de8 CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents: 72
diff changeset
66 )
35ef15100de8 CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents: 72
diff changeset
67
35ef15100de8 CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents: 72
diff changeset
68 install(
35ef15100de8 CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents: 72
diff changeset
69 TARGETS libirccd
76
7e9a1faeb6f6 CMake: temporarily disable CMake export as it requires Ph.D
David Demelier <markand@malikania.fr>
parents: 75
diff changeset
70 # EXPORT Irccd2Targets
74
35ef15100de8 CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents: 72
diff changeset
71 RUNTIME DESTINATION bin
35ef15100de8 CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents: 72
diff changeset
72 LIBRARY DESTINATION lib
35ef15100de8 CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents: 72
diff changeset
73 ARCHIVE DESTINATION lib
35ef15100de8 CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents: 72
diff changeset
74 )
72
98ac3c79009f Irccd: start making a library, #429
David Demelier <markand@malikania.fr>
parents:
diff changeset
75
76
7e9a1faeb6f6 CMake: temporarily disable CMake export as it requires Ph.D
David Demelier <markand@malikania.fr>
parents: 75
diff changeset
76 # # CMake target exports.
7e9a1faeb6f6 CMake: temporarily disable CMake export as it requires Ph.D
David Demelier <markand@malikania.fr>
parents: 75
diff changeset
77 # export(
7e9a1faeb6f6 CMake: temporarily disable CMake export as it requires Ph.D
David Demelier <markand@malikania.fr>
parents: 75
diff changeset
78 # EXPORT Irccd2Targets
7e9a1faeb6f6 CMake: temporarily disable CMake export as it requires Ph.D
David Demelier <markand@malikania.fr>
parents: 75
diff changeset
79 # FILE "${CMAKE_BINARY_DIR}/Irccd2Targets.cmake"
7e9a1faeb6f6 CMake: temporarily disable CMake export as it requires Ph.D
David Demelier <markand@malikania.fr>
parents: 75
diff changeset
80 # NAMESPACE Irccd2::
7e9a1faeb6f6 CMake: temporarily disable CMake export as it requires Ph.D
David Demelier <markand@malikania.fr>
parents: 75
diff changeset
81 # )
75
f8160d515a76 Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents: 74
diff changeset
82
f8160d515a76 Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents: 74
diff changeset
83 # CMake version file.
76
7e9a1faeb6f6 CMake: temporarily disable CMake export as it requires Ph.D
David Demelier <markand@malikania.fr>
parents: 75
diff changeset
84 # include(CMakePackageConfigHelpers)
75
f8160d515a76 Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents: 74
diff changeset
85
76
7e9a1faeb6f6 CMake: temporarily disable CMake export as it requires Ph.D
David Demelier <markand@malikania.fr>
parents: 75
diff changeset
86 # write_basic_package_version_file(
7e9a1faeb6f6 CMake: temporarily disable CMake export as it requires Ph.D
David Demelier <markand@malikania.fr>
parents: 75
diff changeset
87 # "${CMAKE_CURRENT_BINARY_DIR}/Irccd2ConfigVersion.cmake"
7e9a1faeb6f6 CMake: temporarily disable CMake export as it requires Ph.D
David Demelier <markand@malikania.fr>
parents: 75
diff changeset
88 # VERSION ${IRCCD_VERSION}
7e9a1faeb6f6 CMake: temporarily disable CMake export as it requires Ph.D
David Demelier <markand@malikania.fr>
parents: 75
diff changeset
89 # COMPATIBILITY AnyNewerVersion
7e9a1faeb6f6 CMake: temporarily disable CMake export as it requires Ph.D
David Demelier <markand@malikania.fr>
parents: 75
diff changeset
90 # )
75
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 # Irccd main module file.
76
7e9a1faeb6f6 CMake: temporarily disable CMake export as it requires Ph.D
David Demelier <markand@malikania.fr>
parents: 75
diff changeset
93 # configure_file(
7e9a1faeb6f6 CMake: temporarily disable CMake export as it requires Ph.D
David Demelier <markand@malikania.fr>
parents: 75
diff changeset
94 # "${CMAKE_SOURCE_DIR}/cmake/internal/Irccd2Config.cmake.in"
7e9a1faeb6f6 CMake: temporarily disable CMake export as it requires Ph.D
David Demelier <markand@malikania.fr>
parents: 75
diff changeset
95 # "${CMAKE_BINARY_DIR}/Irccd2Config.cmake"
7e9a1faeb6f6 CMake: temporarily disable CMake export as it requires Ph.D
David Demelier <markand@malikania.fr>
parents: 75
diff changeset
96 # COPYONLY
7e9a1faeb6f6 CMake: temporarily disable CMake export as it requires Ph.D
David Demelier <markand@malikania.fr>
parents: 75
diff changeset
97 # )
75
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 # Install all CMake stuff.
76
7e9a1faeb6f6 CMake: temporarily disable CMake export as it requires Ph.D
David Demelier <markand@malikania.fr>
parents: 75
diff changeset
100 # install(
7e9a1faeb6f6 CMake: temporarily disable CMake export as it requires Ph.D
David Demelier <markand@malikania.fr>
parents: 75
diff changeset
101 # EXPORT Irccd2Targets
7e9a1faeb6f6 CMake: temporarily disable CMake export as it requires Ph.D
David Demelier <markand@malikania.fr>
parents: 75
diff changeset
102 # FILE Irccd2Targets.cmake
7e9a1faeb6f6 CMake: temporarily disable CMake export as it requires Ph.D
David Demelier <markand@malikania.fr>
parents: 75
diff changeset
103 # NAMESPACE Irccd2::
7e9a1faeb6f6 CMake: temporarily disable CMake export as it requires Ph.D
David Demelier <markand@malikania.fr>
parents: 75
diff changeset
104 # DESTINATION ${WITH_CMAKEDIR}/Irccd2
7e9a1faeb6f6 CMake: temporarily disable CMake export as it requires Ph.D
David Demelier <markand@malikania.fr>
parents: 75
diff changeset
105 # )
7e9a1faeb6f6 CMake: temporarily disable CMake export as it requires Ph.D
David Demelier <markand@malikania.fr>
parents: 75
diff changeset
106 #
7e9a1faeb6f6 CMake: temporarily disable CMake export as it requires Ph.D
David Demelier <markand@malikania.fr>
parents: 75
diff changeset
107 # install(
7e9a1faeb6f6 CMake: temporarily disable CMake export as it requires Ph.D
David Demelier <markand@malikania.fr>
parents: 75
diff changeset
108 # FILES
7e9a1faeb6f6 CMake: temporarily disable CMake export as it requires Ph.D
David Demelier <markand@malikania.fr>
parents: 75
diff changeset
109 # "${CMAKE_BINARY_DIR}/Irccd2Config.cmake"
7e9a1faeb6f6 CMake: temporarily disable CMake export as it requires Ph.D
David Demelier <markand@malikania.fr>
parents: 75
diff changeset
110 # "${CMAKE_BINARY_DIR}/Irccd2ConfigVersion.cmake"
7e9a1faeb6f6 CMake: temporarily disable CMake export as it requires Ph.D
David Demelier <markand@malikania.fr>
parents: 75
diff changeset
111 # DESTINATION ${WITH_CMAKEDIR}/Irccd2
7e9a1faeb6f6 CMake: temporarily disable CMake export as it requires Ph.D
David Demelier <markand@malikania.fr>
parents: 75
diff changeset
112 # )
75
f8160d515a76 Irccd: rework a lot the JavaScript library
David Demelier <markand@malikania.fr>
parents: 74
diff changeset
113
74
35ef15100de8 CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents: 72
diff changeset
114 # pkg-config
35ef15100de8 CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents: 72
diff changeset
115 if (WITH_PKGCONFIG)
35ef15100de8 CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents: 72
diff changeset
116 # Configure the pkg-config file.
35ef15100de8 CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents: 72
diff changeset
117 configure_file(
35ef15100de8 CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents: 72
diff changeset
118 ${CMAKE_SOURCE_DIR}/cmake/internal/irccd2.pc.in
83
f1a3026027f1 CMake: fix invalid creation of pkg-config file ending in permanent CMake re-run
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
119 ${CMAKE_BINARY_DIR}/irccd2.pc
74
35ef15100de8 CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents: 72
diff changeset
120 @ONLY
35ef15100de8 CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents: 72
diff changeset
121 )
35ef15100de8 CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents: 72
diff changeset
122
35ef15100de8 CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents: 72
diff changeset
123 # Adjust the library output name if debug.
35ef15100de8 CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents: 72
diff changeset
124 file(
35ef15100de8 CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents: 72
diff changeset
125 GENERATE
35ef15100de8 CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents: 72
diff changeset
126 OUTPUT ${CMAKE_BINARY_DIR}/irccd2.pc
83
f1a3026027f1 CMake: fix invalid creation of pkg-config file ending in permanent CMake re-run
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
127 INPUT ${CMAKE_BINARY_DIR}/irccd2.pc
74
35ef15100de8 CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents: 72
diff changeset
128 )
35ef15100de8 CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents: 72
diff changeset
129
35ef15100de8 CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents: 72
diff changeset
130 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
131 endif ()