@ -1,5 +1,5 @@
# Copyright ( c ) 2 0 1 0 , C h r i s t i a n S t i m m i n g
# Copyright ( c ) 2 0 1 8 , G e e r t J a n s s e n s
# R e d i s t r i b u t i o n a n d u s e i s a l l o w e d a c c o r d i n g t o t h e t e r m s o f t h e B S D l i c e n s e .
# F o r d e t a i l s s e e t h e a c c o m p a n y i n g C O P Y I N G - C M A K E - S C R I P T S f i l e .
@ -26,41 +26,60 @@ macro (GNC_ADD_SWIG_COMMAND _target _output _input)
endmacro ( GNC_ADD_SWIG_COMMAND )
macro ( GNC_ADD_SWIG_PYTHON_COMMAND _target _output _py_output _input )
# g n c _ a d d _ s w i g _ p y t h o n _ c o m m a n d i s u s e d t o g e n e r a t e p y t h o n s w i g w r a p p e r s
# i t w i l l o n l y r e a l l y g e n e r a t e t h e w r a p p e r s w h e n b u i l d i n g f r o m g i t
# w h e n b u i l d i n g f r o m t a r b a l l i t w i l l s e t u p e v e r y t h i n g s o t h e v e r s i o n o f t h e w r a p p e r
# f r o m t h e t a r b a l l w i l l b e u s e d i n s t e a d
# - _ t a r g e t i s t h e n a m e o f a g l o b a l t a r g e t t h a t w i l l b e s e t f o r t h i s w r a p p e r f i l e ,
# t h i s c a n b e u s e d e l s e w h e r e t o c r e a t e a d e p e n c e n c y o n t h i s w r a p p e r
# - _ o u t _ v a r w i l l b e s e t t o t h e f u l l p a t h t o t h e g e n e r a t e d w r a p p e r f i l e
# w h e n b u i l d i n g f r o m g i t , i t p o i n t s t o t h e a c t u a l l y g e n e r a t e d f i l e
# h o w e v e r w h e n b u i l d i n g f r o m a t a r b a l l , i t w i l l p o i n t t o t h e v e r s i o n f r o m t h e t a r b a l l i n s t e a d
# - _ p y _ o u t _ v a r i s t h e s a m e b u t f o r t h e p y t h o n m o d u l e t h a t ' s g e n e r a t e d t o g e t h e r w i t h t h e w r a p p e r
# - _ o u t p u t i s t h e n a m e o f t h e w r a p p e r f i l e t o generate ( or to look up in the tarball )
# - _ p y _ o u t p u t i s t h e n a m e o f t h e p y t h o n m o d u l e a s s o c i a t e d w i t h t h i s w r a p p e r
# - i n p u t i t t h e s w i g i n t e r f a c e file ( *.i ) t o g e n e r a t e t h i s w r a p p e r f r o m
# A n y a d d i t i o n a l p a r a m e t e r s w i l l b e u s e d a s d e p e n d e n c i e s f o r t h i s w r a p p e r t a r g e t
macro ( gnc_add_swig_python_command _target _out_var _py_out_var _output _py_output _input )
set ( DEFAULT_SWIG_PYTHON_FLAGS
- p y t h o n
- W a l l - W e r r o r
$ { S W I G _ A R G S }
)
set ( DEFAULT_SWIG_PYTHON_C_INCLUDES
$ { G L I B 2 _ I N C L U D E _ D I R S }
$ { C M A K E _ S O U R C E _ D I R } / c o m m o n
$ { C M A K E _ S O U R C E _ D I R } / l i b g n u c a s h / e n g i n e
$ { C M A K E _ S O U R C E _ D I R } / l i b g n u c a s h / a p p - u t i l s
)
if ( BUILDING_FROM_VCS )
set ( SW_CURR_BUILD_SOURCE_DIR ${ CMAKE_CURRENT_BINARY_DIR } )
set ( SW_BUILD_SOURCE_DIR ${ CMAKE_BINARY_DIR } )
else ( )
set ( SW_CURR_BUILD_SOURCE_DIR ${ CMAKE_CURRENT_SOURCE_DIR } )
set ( SW_BUILD_SOURCE_DIR ${ CMAKE_SOURCE_DIR } )
endif ( )
set ( PYTHON_SWIG_FLAGS ${ DEFAULT_SWIG_PYTHON_FLAGS } )
foreach ( dir ${ DEFAULT_SWIG_PYTHON_C_INCLUDES } )
list ( APPEND PYTHON_SWIG_FLAGS "-I${dir}" )
endforeach ( dir )
add_custom_command ( OUTPUT ${ _output } ${ _py_output }
C O M M A N D $ { S W I G _ E X E C U T A B L E } $ { P Y T H O N _ S W I G _ F L A G S } - o $ { _ o u t p u t } $ { _ i n p u t }
D E P E N D S $ { _ i n p u t } $ { C M A K E _ S O U R C E _ D I R } / c o m m o n / b a s e - t y p e m a p s . i $ { A R G N }
)
add_custom_target ( ${ _target } ALL DEPENDS ${ _output } ${ _py_output } ${ CMAKE_SOURCE_DIR } /common/base-typemaps.i ${ _input } ${ ARGN } )
set ( outfile ${ SW_CURR_BUILD_SOURCE_DIR } / ${ _output } )
set ( ${ _out_var } ${ outfile } ) # T h i s v a r i a b l e i s s e t f o r c o n v e n i e n c e t o u s e i n t h e c a l l i n g C M a k e L i s t s . t x t
set ( py_outfile ${ SW_CURR_BUILD_SOURCE_DIR } / ${ _py_output } )
set ( ${ _py_out_var } ${ py_outfile } ) # T h i s v a r i a b l e i s s e t f o r c o n v e n i e n c e t o u s e i n t h e c a l l i n g C M a k e L i s t s . t x t
if ( BUILDING_FROM_VCS )
set ( BUILD_SOURCE_DIR ${ CMAKE_CURRENT_BINARY_DIR } )
else ( )
set ( BUILD_SOURCE_DIR ${ CMAKE_CURRENT_SOURCE_DIR } )
set ( DEFAULT_SWIG_PYTHON_FLAGS
- p y t h o n
- W a l l - W e r r o r
$ { S W I G _ A R G S }
)
set ( DEFAULT_SWIG_PYTHON_C_INCLUDES
$ { G L I B 2 _ I N C L U D E _ D I R S }
$ { C M A K E _ S O U R C E _ D I R } / c o m m o n
$ { C M A K E _ S O U R C E _ D I R } / l i b g n u c a s h / e n g i n e
$ { C M A K E _ S O U R C E _ D I R } / l i b g n u c a s h / a p p - u t i l s
)
set ( PYTHON_SWIG_FLAGS ${ DEFAULT_SWIG_PYTHON_FLAGS } )
foreach ( dir ${ DEFAULT_SWIG_PYTHON_C_INCLUDES } )
list ( APPEND PYTHON_SWIG_FLAGS "-I${dir}" )
endforeach ( dir )
add_custom_command ( OUTPUT ${ outfile } ${ py_outfile }
C O M M A N D $ { S W I G _ E X E C U T A B L E } $ { P Y T H O N _ S W I G _ F L A G S } - o $ { o u t f i l e } $ { _ i n p u t }
D E P E N D S $ { _ i n p u t } $ { C M A K E _ S O U R C E _ D I R } / c o m m o n / b a s e - t y p e m a p s . i $ { A R G N }
)
add_custom_target ( ${ _target } ALL DEPENDS ${ outfile } ${ py_outfile } ${ CMAKE_SOURCE_DIR } /common/base-typemaps.i ${ _input } ${ ARGN } )
endif ( )
# A d d t h e o u t p u t f i l e s _ o u t p u t a n d _ p y _ o u t p u t t o t h e d i s t t a r b a l l
file ( RELATIVE_PATH generated ${ BUILD_SOURCE_DIR } ${ _output } )
dist_add_generated ( ${ generated } )
file ( RELATIVE_PATH py_generated ${ BUILD_SOURCE_DIR } ${ _py_output } )
dist_add_generated ( ${ py_generated } )
dist_add_generated ( ${ _output } ${ _py_output } )
endmacro ( )