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()