Mercurial > irccd
comparison cmake/function/IrccdDefinePlugin.cmake @ 858:6af323b76970
cmake: install macros and reduce IrccdOptions.cmake, closes #951 @1h
author | David Demelier <markand@malikania.fr> |
---|---|
date | Thu, 25 Jul 2019 20:15:00 +0000 |
parents | 00a4720c4874 |
children | bf2bdb41f181 |
comparison
equal
deleted
inserted
replaced
857:8b4becff9fbb | 858:6af323b76970 |
---|---|
89 if (NOT PLG_SOURCES) | 89 if (NOT PLG_SOURCES) |
90 message(FATAL_ERROR "Missing SOURCES parameter") | 90 message(FATAL_ERROR "Missing SOURCES parameter") |
91 endif () | 91 endif () |
92 | 92 |
93 add_library(plugin-${PLG_NAME} MODULE ${PLG_SOURCES} ${PLG_OUTPUT_DOC} ${PLG_MAN}) | 93 add_library(plugin-${PLG_NAME} MODULE ${PLG_SOURCES} ${PLG_OUTPUT_DOC} ${PLG_MAN}) |
94 target_link_libraries(plugin-${PLG_NAME} libirccd-daemon ${PLG_LIBRARIES}) | 94 target_link_libraries(plugin-${PLG_NAME} irccd::libirccd-daemon ${PLG_LIBRARIES}) |
95 target_include_directories(plugin-${PLG_NAME} PRIVATE ${PLG_INCLUDES}) | 95 target_include_directories(plugin-${PLG_NAME} PRIVATE ${PLG_INCLUDES}) |
96 | 96 |
97 # Change output name. | 97 # Change output name. |
98 set_target_properties( | 98 set_target_properties( |
99 plugin-${PLG_NAME} | 99 plugin-${PLG_NAME} |
100 PROPERTIES | 100 PROPERTIES |
101 PREFIX "" | 101 PREFIX "" |
102 OUTPUT_NAME ${PLG_NAME} | 102 OUTPUT_NAME ${PLG_NAME} |
103 CXX_STANDARD 17 | |
104 CXX_STANDARD_REQUIRED On | |
103 ) | 105 ) |
104 foreach (cfg ${CMAKE_CONFIGURATION_TYPES}) | 106 foreach (cfg ${CMAKE_CONFIGURATION_TYPES}) |
105 string(TOUPPER ${cfg} CFG) | 107 string(TOUPPER ${cfg} CFG) |
106 set_target_properties( | 108 set_target_properties( |
107 plugin-${PLG_NAME} | 109 plugin-${PLG_NAME} |
133 | 135 |
134 string(TOUPPER ${PLG_NAME} PLG_UPPER_NAME) | 136 string(TOUPPER ${PLG_NAME} PLG_UPPER_NAME) |
135 option(IRCCD_WITH_PLUGIN_${PLG_UPPER_NAME} "Enable ${PLG_NAME} plugin" On) | 137 option(IRCCD_WITH_PLUGIN_${PLG_UPPER_NAME} "Enable ${PLG_NAME} plugin" On) |
136 | 138 |
137 if (NOT IRCCD_WITH_PLUGIN_${PLG_UPPER_NAME}) | 139 if (NOT IRCCD_WITH_PLUGIN_${PLG_UPPER_NAME}) |
138 setg(IRCCD_WITH_PLUGIN_${PLG_UPPER_NAME}_MSG "No (disabled by user)") | 140 irccd_set_global(IRCCD_WITH_PLUGIN_${PLG_UPPER_NAME}_MSG "No (disabled by user)") |
139 elseif (NOT IRCCD_WITH_JS AND PLG_TYPE MATCHES "JS") | 141 elseif (NOT IRCCD_WITH_JS AND PLG_TYPE MATCHES "JS") |
140 setg(IRCCD_WITH_PLUGIN_${PLG_UPPER_NAME}_MSG "No (Javascript disabled)") | 142 irccd_set_global(IRCCD_WITH_PLUGIN_${PLG_UPPER_NAME}_MSG "No (Javascript disabled)") |
141 else () | 143 else () |
142 setg(IRCCD_WITH_PLUGIN_${PLG_UPPER_NAME}_MSG "Yes") | 144 irccd_set_global(IRCCD_WITH_PLUGIN_${PLG_UPPER_NAME}_MSG "Yes") |
143 | 145 |
144 # Optional documentation. | 146 # Optional documentation. |
145 if (PLG_MAN) | 147 if (PLG_MAN) |
146 get_filename_component(man ${PLG_MAN} NAME) | 148 get_filename_component(man ${PLG_MAN} NAME) |
147 | 149 |
167 FOLDER "plugins" | 169 FOLDER "plugins" |
168 PROJECT_NAME ${PLG_NAME} | 170 PROJECT_NAME ${PLG_NAME} |
169 ) | 171 ) |
170 | 172 |
171 # Component grouping in installer. | 173 # Component grouping in installer. |
172 setg(CPACK_COMPONENT_${PLG_UPPER_NAME}_GROUP "Plugins") | 174 irccd_set_global(CPACK_COMPONENT_${PLG_UPPER_NAME}_GROUP "Plugins") |
173 setg(CPACK_COMPONENT_${PLG_UPPER_NAME}_DESCRIPTION "Install ${PLG_NAME} plugin.") | 175 irccd_set_global(CPACK_COMPONENT_${PLG_UPPER_NAME}_DESCRIPTION "Install ${PLG_NAME} plugin.") |
174 endif () | 176 endif () |
175 endfunction() | 177 endfunction() |