2017-07-25 14:37:55 +00:00
# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# ***** END GPL LICENSE BLOCK *****
set ( PYTHON_POSTFIX )
if ( BUILD_MODE STREQUAL Debug )
set ( PYTHON_POSTFIX _d )
endif ( )
if ( WIN32 )
set ( PYTHON_BINARY ${ BUILD_DIR } /python/src/external_python/run/python ${ PYTHON_POSTFIX } .exe )
macro ( cmake_to_dos_path MsysPath ResultingPath )
string ( REPLACE "/" "\\" ${ ResultingPath } "${MsysPath}" )
endmacro ( )
set ( PYTHON_EXTERNALS_FOLDER ${ BUILD_DIR } /python/src/external_python/externals )
set ( DOWNLOADS_EXTERNALS_FOLDER ${ DOWNLOAD_DIR } /externals )
cmake_to_dos_path ( ${ PYTHON_EXTERNALS_FOLDER } PYTHON_EXTERNALS_FOLDER_DOS )
cmake_to_dos_path ( ${ DOWNLOADS_EXTERNALS_FOLDER } DOWNLOADS_EXTERNALS_FOLDER_DOS )
message ( "Python externals = ${PYTHON_EXTERNALS_FOLDER}" )
message ( "Python externals_dos = ${PYTHON_EXTERNALS_FOLDER_DOS}" )
message ( "Python DOWNLOADS_EXTERNALS_FOLDER = ${DOWNLOADS_EXTERNALS_FOLDER}" )
message ( "Python DOWNLOADS_EXTERNALS_FOLDER_DOS = ${DOWNLOADS_EXTERNALS_FOLDER_DOS}" )
ExternalProject_Add ( external_python
U R L $ { P Y T H O N _ U R I }
D O W N L O A D _ D I R $ { D O W N L O A D _ D I R }
U R L _ H A S H M D 5 = $ { P Y T H O N _ H A S H }
P R E F I X $ { B U I L D _ D I R } / p y t h o n
P A T C H _ C O M M A N D e c h o m k l i n k / D " $ { P Y T H O N _ E X T E R N A L S _ F O L D E R _ D O S } " " $ { D O W N L O A D S _ E X T E R N A L S _ F O L D E R _ D O S } " & &
m k l i n k / D " $ { P Y T H O N _ E X T E R N A L S _ F O L D E R _ D O S } " " $ { D O W N L O A D S _ E X T E R N A L S _ F O L D E R _ D O S } " & &
$ { P A T C H _ C M D } - - v e r b o s e - p 0 - d $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n < $ { P A T C H _ D I R } / p y t h o n . d i f f & &
$ { P A T C H _ C M D } - - v e r b o s e - p 0 - d $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / p c < $ { P A T C H _ D I R } / p y s h e l l . d i f f
C O N F I G U R E _ C O M M A N D " "
B U I L D _ C O M M A N D c d $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / p c b u i l d / & & s e t I n c l u d e T k i n t e r = f a l s e & & c a l l b u i l d . b a t - e - p $ { P Y T H O N _ A R C H } - c $ { B U I L D _ M O D E } - k $ { P Y T H O N _ C O M P I L E R _ S T R I N G }
2017-09-20 18:29:50 +00:00
I N S T A L L _ C O M M A N D C O M M A N D $ { C M A K E _ C O M M A N D } - E c o p y $ { P Y T H O N _ O U T P U T D I R } / p y t h o n $ { P Y T H O N _ S H O R T _ V E R S I O N _ N O _ D O T S } $ { P Y T H O N _ P O S T F I X } . d l l $ { L I B D I R } / p y t h o n / l i b / p y t h o n $ { P Y T H O N _ S H O R T _ V E R S I O N _ N O _ D O T S } $ { P Y T H O N _ P O S T F I X } . d l l & &
$ { C M A K E _ C O M M A N D } - E c o p y $ { P Y T H O N _ O U T P U T D I R } / p y t h o n $ { P Y T H O N _ S H O R T _ V E R S I O N _ N O _ D O T S } $ { P Y T H O N _ P O S T F I X } . l i b $ { L I B D I R } / p y t h o n / l i b / p y t h o n $ { P Y T H O N _ S H O R T _ V E R S I O N _ N O _ D O T S } $ { P Y T H O N _ P O S T F I X } . l i b & &
$ { C M A K E _ C O M M A N D } - E c o p y $ { P Y T H O N _ O U T P U T D I R } / p y t h o n $ { P Y T H O N _ S H O R T _ V E R S I O N _ N O _ D O T S } $ { P Y T H O N _ P O S T F I X } . e x p $ { L I B D I R } / p y t h o n / l i b / p y t h o n $ { P Y T H O N _ S H O R T _ V E R S I O N _ N O _ D O T S } $ { P Y T H O N _ P O S T F I X } . e x p & &
$ { C M A K E _ C O M M A N D } - E c o p y _ d i r e c t o r y $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / i n c l u d e $ { L I B D I R } / p y t h o n / i n c l u d e / P y t h o n $ { P Y T H O N _ S H O R T _ V E R S I O N } & &
$ { C M A K E _ C O M M A N D } - E c o p y " $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / P C / p y c o n f i g . h " $ { L I B D I R } / p y t h o n / i n c l u d e / P y t h o n $ { P Y T H O N _ S H O R T _ V E R S I O N } / p y c o n f i g . h
2017-07-25 14:37:55 +00:00
)
Message ( "PythinRedist = ${BUILD_DIR}/python/src/external_python/redist" )
Message ( "POutput = ${PYTHON_OUTPUTDIR}" )
else ( )
if ( APPLE )
# we need to manually add homebrew headers to get ssl module building
set ( PYTHON_CFLAGS "-I/usr/local/opt/openssl/include -I${OSX_SYSROOT}/usr/include ${PLATFORM_CFLAGS}" )
set ( PYTHON_LDFLAGS "-L/usr/local/opt/openssl/lib ${PLATFORM_LDFLAGS}" )
set ( PYTHON_CONFIGURE_ENV ${ CONFIGURE_ENV } && export CFLAGS= ${ PYTHON_CFLAGS } && export LDFLAGS= ${ PYTHON_LDFLAGS } )
set ( PYTHON_BINARY ${ BUILD_DIR } /python/src/external_python/python.exe )
set ( PYTHON_PATCH ${ PATCH_CMD } --verbose -p 0 -d ${ BUILD_DIR } /python/src/external_python < ${ PATCH_DIR } /python_apple.diff )
else ( )
set ( PYTHON_CONFIGURE_ENV ${ CONFIGURE_ENV } )
set ( PYTHON_BINARY ${ BUILD_DIR } /python/src/external_python/python )
endif ( )
ExternalProject_Add ( external_python
U R L $ { P Y T H O N _ U R I }
D O W N L O A D _ D I R $ { D O W N L O A D _ D I R }
U R L _ H A S H M D 5 = $ { P Y T H O N _ H A S H }
P R E F I X $ { B U I L D _ D I R } / p y t h o n
P A T C H _ C O M M A N D $ { P Y T H O N _ P A T C H }
C O N F I G U R E _ C O M M A N D $ { P Y T H O N _ C O N F I G U R E _ E N V } & & c d $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / & & $ { C O N F I G U R E _ C O M M A N D } - - p r e f i x = $ { L I B D I R } / p y t h o n
B U I L D _ C O M M A N D $ { P Y T H O N _ C O N F I G U R E _ E N V } & & c d $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / & & m a k e - j $ { M A K E _ T H R E A D S }
I N S T A L L _ C O M M A N D $ { P Y T H O N _ C O N F I G U R E _ E N V } & & c d $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / & & m a k e i n s t a l l
I N S T A L L _ D I R $ { L I B D I R } / p y t h o n )
2017-08-15 13:47:48 +00:00
add_custom_target ( Make_Python_Environment ALL DEPENDS external_python )
2017-07-25 14:37:55 +00:00
endif ( )
if ( MSVC )
add_custom_command (
2017-09-20 18:29:50 +00:00
O U T P U T $ { L I B D I R } / p y t h o n $ { P Y T H O N _ S H O R T _ V E R S I O N _ N O _ D O T S } $ { P Y T H O N _ P O S T F I X } . t a r . g z
2017-07-25 14:37:55 +00:00
O U T P U T $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / r e d i s t / b i n / p y t h o n $ { P Y T H O N _ P O S T F I X } . e x e
C O M M A N D $ { C M A K E _ C O M M A N D } - E c o p y _ d i r e c t o r y $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / l i b $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / r e d i s t / l i b
C O M M A N D $ { C M A K E _ C O M M A N D } - E c o p y " $ { P Y T H O N _ O U T P U T D I R } / p y t h o n $ { P Y T H O N _ P O S T F I X } . e x e " $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / r e d i s t / b i n / p y t h o n $ { P Y T H O N _ P O S T F I X } . e x e
C O M M A N D $ { C M A K E _ C O M M A N D } - E c o p y " $ { P Y T H O N _ O U T P U T D I R } / _ b z 2 $ { P Y T H O N _ P O S T F I X } . p y d " $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / r e d i s t / l i b / _ b z 2 $ { P Y T H O N _ P O S T F I X } . p y d
C O M M A N D $ { C M A K E _ C O M M A N D } - E c o p y " $ { P Y T H O N _ O U T P U T D I R } / _ h a s h l i b $ { P Y T H O N _ P O S T F I X } . p y d " $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / r e d i s t / l i b / _ h a s h l i b $ { P Y T H O N _ P O S T F I X } . p y d
C O M M A N D $ { C M A K E _ C O M M A N D } - E c o p y " $ { P Y T H O N _ O U T P U T D I R } / _ l z m a $ { P Y T H O N _ P O S T F I X } . p y d " $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / r e d i s t / l i b / _ l z m a $ { P Y T H O N _ P O S T F I X } . p y d
C O M M A N D $ { C M A K E _ C O M M A N D } - E c o p y " $ { P Y T H O N _ O U T P U T D I R } / _ s q l i t e 3 $ { P Y T H O N _ P O S T F I X } . p y d " $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / r e d i s t / l i b / _ s q l i t e 3 $ { P Y T H O N _ P O S T F I X } . p y d
C O M M A N D $ { C M A K E _ C O M M A N D } - E c o p y " $ { P Y T H O N _ O U T P U T D I R } / _ s s l $ { P Y T H O N _ P O S T F I X } . p y d " $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / r e d i s t / l i b / _ s s l $ { P Y T H O N _ P O S T F I X } . p y d
C O M M A N D $ { C M A K E _ C O M M A N D } - E c o p y " $ { P Y T H O N _ O U T P U T D I R } / p y e x p a t $ { P Y T H O N _ P O S T F I X } . p y d " $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / r e d i s t / l i b / p y e x p a t $ { P Y T H O N _ P O S T F I X } . p y d
C O M M A N D $ { C M A K E _ C O M M A N D } - E c o p y " $ { P Y T H O N _ O U T P U T D I R } / s e l e c t $ { P Y T H O N _ P O S T F I X } . p y d " $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / r e d i s t / l i b / s e l e c t $ { P Y T H O N _ P O S T F I X } . p y d
C O M M A N D $ { C M A K E _ C O M M A N D } - E c o p y " $ { P Y T H O N _ O U T P U T D I R } / u n i c o d e d a t a $ { P Y T H O N _ P O S T F I X } . p y d " $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / r e d i s t / l i b / u n i c o d e d a t a $ { P Y T H O N _ P O S T F I X } . p y d
C O M M A N D $ { C M A K E _ C O M M A N D } - E c o p y " $ { P Y T H O N _ O U T P U T D I R } / w i n s o u n d $ { P Y T H O N _ P O S T F I X } . p y d " $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / r e d i s t / l i b / w i n s o u n d $ { P Y T H O N _ P O S T F I X } . p y d
C O M M A N D $ { C M A K E _ C O M M A N D } - E c o p y " $ { P Y T H O N _ O U T P U T D I R } / _ c t y p e s $ { P Y T H O N _ P O S T F I X } . p y d " $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / r e d i s t / l i b / _ c t y p e s $ { P Y T H O N _ P O S T F I X } . p y d
C O M M A N D $ { C M A K E _ C O M M A N D } - E c o p y " $ { P Y T H O N _ O U T P U T D I R } / _ c t y p e s _ t e s t $ { P Y T H O N _ P O S T F I X } . p y d " $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / r e d i s t / l i b / _ c t y p e s _ t e s t $ { P Y T H O N _ P O S T F I X } . p y d
C O M M A N D $ { C M A K E _ C O M M A N D } - E c o p y " $ { P Y T H O N _ O U T P U T D I R } / _ d e c i m a l $ { P Y T H O N _ P O S T F I X } . p y d " $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / r e d i s t / l i b / _ d e c i m a l $ { P Y T H O N _ P O S T F I X } . p y d
C O M M A N D $ { C M A K E _ C O M M A N D } - E c o p y " $ { P Y T H O N _ O U T P U T D I R } / _ e l e m e n t t r e e $ { P Y T H O N _ P O S T F I X } . p y d " $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / r e d i s t / l i b / _ e l e m e n t t r e e $ { P Y T H O N _ P O S T F I X } . p y d
C O M M A N D $ { C M A K E _ C O M M A N D } - E c o p y " $ { P Y T H O N _ O U T P U T D I R } / _ m s i $ { P Y T H O N _ P O S T F I X } . p y d " $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / r e d i s t / l i b / _ m s i $ { P Y T H O N _ P O S T F I X } . p y d
C O M M A N D $ { C M A K E _ C O M M A N D } - E c o p y " $ { P Y T H O N _ O U T P U T D I R } / _ m u l t i p r o c e s s i n g $ { P Y T H O N _ P O S T F I X } . p y d " $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / r e d i s t / l i b / _ m u l t i p r o c e s s i n g $ { P Y T H O N _ P O S T F I X } . p y d
C O M M A N D $ { C M A K E _ C O M M A N D } - E c o p y " $ { P Y T H O N _ O U T P U T D I R } / _ o v e r l a p p e d $ { P Y T H O N _ P O S T F I X } . p y d " $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / r e d i s t / l i b / _ o v e r l a p p e d $ { P Y T H O N _ P O S T F I X } . p y d
C O M M A N D $ { C M A K E _ C O M M A N D } - E c o p y " $ { P Y T H O N _ O U T P U T D I R } / _ s o c k e t $ { P Y T H O N _ P O S T F I X } . p y d " $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / r e d i s t / l i b / _ s o c k e t $ { P Y T H O N _ P O S T F I X } . p y d
C O M M A N D $ { C M A K E _ C O M M A N D } - E c o p y " $ { P Y T H O N _ O U T P U T D I R } / _ t e s t b u f f e r $ { P Y T H O N _ P O S T F I X } . p y d " $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / r e d i s t / l i b / _ t e s t b u f f e r $ { P Y T H O N _ P O S T F I X } . p y d
C O M M A N D $ { C M A K E _ C O M M A N D } - E c o p y " $ { P Y T H O N _ O U T P U T D I R } / _ t e s t c a p i $ { P Y T H O N _ P O S T F I X } . p y d " $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / r e d i s t / l i b / _ t e s t c a p i $ { P Y T H O N _ P O S T F I X } . p y d
C O M M A N D $ { C M A K E _ C O M M A N D } - E c o p y " $ { P Y T H O N _ O U T P U T D I R } / _ t e s t i m p o r t m u l t i p l e $ { P Y T H O N _ P O S T F I X } . p y d " $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / r e d i s t / l i b / _ t e s t i m p o r t m u l t i p l e $ { P Y T H O N _ P O S T F I X } . p y d
C O M M A N D $ { C M A K E _ C O M M A N D } - E c o p y " $ { P Y T H O N _ O U T P U T D I R } / _ t e s t m u l t i p h a s e $ { P Y T H O N _ P O S T F I X } . p y d " $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / r e d i s t / l i b / _ t e s t m u l t i p h a s e $ { P Y T H O N _ P O S T F I X } . p y d
2017-09-20 18:29:50 +00:00
C O M M A N D $ { C M A K E _ C O M M A N D } - E c h d i r " $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / r e d i s t " $ { C M A K E _ C O M M A N D } - E t a r " c f v z " " $ { L I B D I R } / p y t h o n $ { P Y T H O N _ S H O R T _ V E R S I O N _ N O _ D O T S } $ { P Y T H O N _ P O S T F I X } . t a r . g z " " . "
2017-07-25 14:37:55 +00:00
)
2017-09-20 18:29:50 +00:00
add_custom_target ( Package_Python ALL DEPENDS external_python ${ LIBDIR } /python ${ PYTHON_SHORT_VERSION_NO_DOTS } ${ PYTHON_POSTFIX } .tar.gz ${ BUILD_DIR } /python/src/external_python/redist/bin/python ${ PYTHON_POSTFIX } .exe )
2017-07-25 14:37:55 +00:00
if ( MSVC12 )
set ( PYTHON_DISTUTIL_PATCH ${ PATCH_CMD } --verbose -p 0 -d ${ BUILD_DIR } /python/src/external_python/run/lib/distutils < ${ PATCH_DIR } /python_runtime_vc2013.diff )
else ( )
set ( PYTHON_DISTUTIL_PATCH echo "No patch needed" )
endif ( )
add_custom_command ( OUTPUT ${ BUILD_DIR } /python/src/external_python/run/python ${ PYTHON_POSTFIX } .exe
C O M M A N D $ { C M A K E _ C O M M A N D } - E c o p y _ d i r e c t o r y $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / r e d i s t $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / r u n
C O M M A N D $ { C M A K E _ C O M M A N D } - E c o p y _ d i r e c t o r y $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / i n c l u d e $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / r u n / i n c l u d e
C O M M A N D $ { C M A K E _ C O M M A N D } - E c o p y " $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / P C / p y c o n f i g . h " $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / r u n / i n c l u d e / p y c o n f i g . h
2017-09-20 18:29:50 +00:00
C O M M A N D $ { C M A K E _ C O M M A N D } - E c o p y " $ { P Y T H O N _ O U T P U T D I R } / p y t h o n $ { P Y T H O N _ S H O R T _ V E R S I O N _ N O _ D O T S } $ { P Y T H O N _ P O S T F I X } . d l l " $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / r u n / p y t h o n $ { P Y T H O N _ S H O R T _ V E R S I O N _ N O _ D O T S } $ { P Y T H O N _ P O S T F I X } . d l l
C O M M A N D $ { C M A K E _ C O M M A N D } - E c o p y " $ { P Y T H O N _ O U T P U T D I R } / p y t h o n $ { P Y T H O N _ S H O R T _ V E R S I O N _ N O _ D O T S } $ { P Y T H O N _ P O S T F I X } . l i b " $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / r u n / l i b s / p y t h o n $ { P Y T H O N _ S H O R T _ V E R S I O N _ N O _ D O T S } . l i b #missing postfix on purpose, distutils is not expecting it
C O M M A N D $ { C M A K E _ C O M M A N D } - E c o p y " $ { P Y T H O N _ O U T P U T D I R } / p y t h o n $ { P Y T H O N _ S H O R T _ V E R S I O N _ N O _ D O T S } $ { P Y T H O N _ P O S T F I X } . l i b " $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / r u n / l i b s / p y t h o n $ { P Y T H O N _ S H O R T _ V E R S I O N _ N O _ D O T S } $ { P Y T H O N _ P O S T F I X } . l i b #other things like numpy still want it though.
2017-07-25 14:37:55 +00:00
C O M M A N D $ { C M A K E _ C O M M A N D } - E c o p y " $ { P Y T H O N _ O U T P U T D I R } / p y t h o n $ { P Y T H O N _ P O S T F I X } . e x e " $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / r u n / p y t h o n $ { P Y T H O N _ P O S T F I X } . e x e
C O M M A N D $ { B U I L D _ D I R } / p y t h o n / s r c / e x t e r n a l _ p y t h o n / r u n / p y t h o n $ { P Y T H O N _ P O S T F I X } . e x e - m e n s u r e p i p - - u p g r a d e
C O M M A N D $ { P Y T H O N _ D I S T U T I L _ P A T C H }
)
add_custom_target ( Make_Python_Environment ALL DEPENDS ${ BUILD_DIR } /python/src/external_python/run/python ${ PYTHON_POSTFIX } .exe Package_Python )
endif ( MSVC )