@ -19,27 +19,41 @@
# # #
#
# S u p p o r t f u n c t i o n s f o r b u i l d i n g p l u g i n s .
#
# U s a g e :
#
# calamares_add_library (
# l i b r a r y - n a m e
# E X P O R T _ M A C R O m a c r o - n a m e
# T A R G E T _ T Y P E < S T A T I C | M O D U L E | . . . >
# E X P O R T e x p o r t - n a m e
# V E R S I O N v e r s i o n
# S O V E R S I O N v e r s i o n
# I N S T A L L _ B I N D I R d i r
# R E S O U R C E S r e s o u r c e - f i l e
# S O U R C E S s o u r c e - f i l e . . .
# U I u i - f i l e . . .
# L I N K _ L I B R A R I E S l i b . . .
# L I N K _ P R I V A T E _ L I B R A R I E S l i b . . .
# C O M P I L E _ D E F I N I T I O N S d e f . . .
# [ N O _ I N S T A L L ]
# [ N O _ V E R S I O N ]
# )
#
# T h e C O M P I L E _ D E F I N I T I O N S a r e s e t o n t h e r e s u l t i n g m o d u l e w i t h a s u i t a b l e
# flag ( i.e. `-D` ) s o o n l y s t a t e t h e name ( optionally, also the value )
# w i t h o u t a ` - D ` p r e f i x e d t o i t . P a s s i n a C M a k e l i s t a s n e e d e d .
include ( CMakeParseArguments )
function ( calamares_add_library )
# p a r s e arguments ( name needs to be saved before passing ARGN into the macro )
set ( NAME ${ ARGV0 } )
set ( options NO_INSTALL NO_VERSION )
set ( oneValueArgs NAME TYPE EXPORT_MACRO TARGET TARGET_TYPE EXPORT VERSION SOVERSION INSTALL_BINDIR RESOURCES )
set ( multiValueArgs SOURCES UI LINK_LIBRARIES LINK_PRIVATE_LIBRARIES COMPILE_DEFINITIONS QT5_MODULES )
set ( oneValueArgs NAME EXPORT_MACRO TARGET_TYPE EXPORT VERSION SOVERSION INSTALL_BINDIR RESOURCES )
set ( multiValueArgs SOURCES UI LINK_LIBRARIES LINK_PRIVATE_LIBRARIES COMPILE_DEFINITIONS )
cmake_parse_arguments ( LIBRARY "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ ARGN } )
set ( LIBRARY_NAME ${ NAME } )
# message ( "*** Arguments for ${LIBRARY_NAME}" )
# message ( "Sources: ${LIBRARY_SOURCES}" )
# message ( "Link libraries: ${LIBRARY_LINK_LIBRARIES}" )
# message ( "UI: ${LIBRARY_UI}" )
# message ( "TARGET_TYPE: ${LIBRARY_TARGET_TYPE}" )
# message ( "EXPORT_MACRO: ${LIBRARY_EXPORT_MACRO}" )
# message ( "NO_INSTALL: ${LIBRARY_NO_INSTALL}" )
set ( target ${ LIBRARY_NAME } )
# q t s t u f f
@ -76,13 +90,8 @@ function(calamares_add_library)
endif ( )
if ( LIBRARY_COMPILE_DEFINITIONS )
# D e a r C M a k e , i h a t e y o u ! S i n c e r e l y , d o m m e
# A t l e a s t i n C M a k e 2 . 8 . 8 , y o u C A N N O T s e t m o r e t h a n o n e C O M P I L E _ D E F I N I T I O N S v a l u e
# o n l y t a k e s t h e f i r s t o n e i f c a l l e d m u l t i p l e t i m e s o r b a i l s o u t w i t h w r o n g n u m b e r o f a r g u m e n t s
# w h e n p a s s i n g i n a l i s t , t h u s i r e d e f i n e t h e e x p o r t m a c r o h e r e i n h o p e i t w o n ' t m e s s u p o t h e r t a r g e t s
add_definitions ( "-D${LIBRARY_EXPORT_MACRO}" )
set_target_properties ( ${ target } PROPERTIES COMPILE_DEFINITIONS ${ LIBRARY_COMPILE_DEFINITIONS } )
set ( _lib_definitions "${LIBRARY_EXPORT_MACRO}" ${ LIBRARY_COMPILE_DEFINITIONS } )
set_target_properties ( ${ target } PROPERTIES COMPILE_DEFINITIONS "${_lib_definitions}" )
endif ( )
# a d d l i n k t a r g e t s
@ -119,9 +128,6 @@ function(calamares_add_library)
set ( LIBRARY_INSTALL_LIBDIR "${LIBRARY_INSTALL_BINDIR}" )
endif ( )
# message ( "INSTALL_BINDIR: ${LIBRARY_INSTALL_BINDIR}" )
# message ( "INSTALL_LIBDIR: ${LIBRARY_INSTALL_LIBDIR}" )
# m a k e i n s t a l l a t i o n o p t i o n a l , m a y b e u s e f u l f o r d u m m y p l u g i n s o n e d a y
if ( NOT LIBRARY_NO_INSTALL )
include ( GNUInstallDirs )