aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjimfcarroll <thecarrolls@jiminger.com>2011-03-20 20:55:49 -0400
committerJim Carroll <thecarrolls@jiminger.com>2011-04-06 13:43:43 -0400
commit7f63a5e3df00db9703d68be8a9fafba16bafe472 (patch)
treec62c87c103e3f17590806ac1cc137aa7e7c6bcbc
parentb9d94d7767c0c706060e05dbafe9e201f0f3ccde (diff)
Adding external python to the win32 build system. credit to WiSo and blinkseb.
Fixed the external python to work without the Dll proxies. Fixed XBPython.cpp so that even though it's directly linked, it works correctly allowing scripts to run multiple times. This included removing the Py_NO_SHARED_ENABLED and adding the USE_EXTERNAL_PYTHON. We now need to: set PYTHONPATH in the code, fix the debug linking, move the preprocessor changes to other builds besides Debug OpenGL. [WIN32] renamed python download deps. [WIN32] renamed python download deps. [WIN32] changed: we don't have debug libs for vanilla python. credit WiSo [WIN32] copy python dll to the debug directory - credit WiSo [WIN32] copy sdl.dll to the debug directory [WIN32] copy python dll to dependencies. Credit WiSo [WIN32] fixed dep script file [WIN32] download stripped down version of python 2.6.6 [WIN32] enable external python (missing commit) fixed some settings on the two windows release configurations
-rw-r--r--project/BuildDependencies/scripts/libsdl_d.bat3
-rw-r--r--project/BuildDependencies/scripts/python2.6_d.txt2
-rw-r--r--project/BuildDependencies/scripts/python_d.bat (renamed from project/BuildDependencies/scripts/python2.6_d.bat)11
-rw-r--r--project/BuildDependencies/scripts/python_d.txt2
-rw-r--r--project/VS2010Express/XBMC.vcxproj167
-rw-r--r--project/VS2010Express/XBMC.vcxproj.filters7
-rw-r--r--xbmc/interfaces/python/XBPython.cpp4
-rw-r--r--xbmc/win32/WIN32XBPythonDll.cpp444
8 files changed, 137 insertions, 503 deletions
diff --git a/project/BuildDependencies/scripts/libsdl_d.bat b/project/BuildDependencies/scripts/libsdl_d.bat
index 244b861c30..82273ac817 100644
--- a/project/BuildDependencies/scripts/libsdl_d.bat
+++ b/project/BuildDependencies/scripts/libsdl_d.bat
@@ -16,4 +16,7 @@ copy SDL_image-1.2.10\include\SDL_image.h "%CUR_PATH%\include\SDL\"
copy SDL_image-1.2.10\lib\*.dll "%XBMC_PATH%\tools\TexturePacker\"
copy SDL_image-1.2.10\lib\SDL_image.lib "%CUR_PATH%\lib\SDL_image.lib" /Y
+rem for debugging
+copy SDL-1.2.14\lib\SDL.dll "%XBMC_PATH%\project\VS2010Express\XBMC\Debug (DirectX)\" /Y
+
cd %LOC_PATH% \ No newline at end of file
diff --git a/project/BuildDependencies/scripts/python2.6_d.txt b/project/BuildDependencies/scripts/python2.6_d.txt
deleted file mode 100644
index c360194f65..0000000000
--- a/project/BuildDependencies/scripts/python2.6_d.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-; filename source of the file
-python2.6.6.7z http://xbmcwindeps.googlecode.com/files
diff --git a/project/BuildDependencies/scripts/python2.6_d.bat b/project/BuildDependencies/scripts/python_d.bat
index 8052e89f49..a5a56362c4 100644
--- a/project/BuildDependencies/scripts/python2.6_d.bat
+++ b/project/BuildDependencies/scripts/python_d.bat
@@ -1,9 +1,9 @@
@ECHO ON
SET LOC_PATH=%CD%
-SET FILES=%LOC_PATH%\python2.6_d.txt
+SET FILES=%LOC_PATH%\python_d.txt
-CALL dlextract.bat python2.6 %FILES%
+CALL dlextract.bat python %FILES%
cd %TMP_PATH%
@@ -24,9 +24,12 @@ if "%DEBUG%" == "false" (
xcopy python2.6.6\include\* "%CUR_PATH%\include\python" /E /Q /I /Y /EXCLUDE:py_exclude.txt
xcopy python2.6.6\python\DLLs "%XBMC_PATH%\system\python\DLLs" /E /Q /I /Y /EXCLUDE:py_exclude.txt
xcopy python2.6.6\python\Lib "%XBMC_PATH%\system\python\Lib" /E /Q /I /Y /EXCLUDE:py_exclude.txt
-xcopy python2.6.6\python26.dll "%XBMC_PATH%\system\python\" /Q /I /Y /EXCLUDE:py_exclude.txt
-xcopy python2.6.6\python26_d.dll "%XBMC_PATH%\system\python\" /Q /I /Y /EXCLUDE:py_exclude.txt
+xcopy python2.6.6\python26.dll "%XBMC_PATH%\project\Win32BuildSetup\dependencies\" /Q /I /Y /EXCLUDE:py_exclude.txt
xcopy python2.6.6\libs\*.lib "%CUR_PATH%\lib\" /E /Q /I /Y /EXCLUDE:py_exclude.txt
xcopy python2.6.6\libs\*.pdb "%CUR_PATH%\lib\" /E /Q /I /Y /EXCLUDE:py_exclude.txt
+rem for debugging
+xcopy python2.6.6\python26.dll "%XBMC_PATH%\project\VS2010Express\XBMC\Debug (DirectX)\" /Q /I /Y /EXCLUDE:py_exclude.txt
+xcopy python2.6.6\python26_d.dll "%XBMC_PATH%\project\VS2010Express\XBMC\Debug (DirectX)\" /Q /I /Y /EXCLUDE:py_exclude.txt
+
cd %LOC_PATH%
diff --git a/project/BuildDependencies/scripts/python_d.txt b/project/BuildDependencies/scripts/python_d.txt
new file mode 100644
index 0000000000..1c15979445
--- /dev/null
+++ b/project/BuildDependencies/scripts/python_d.txt
@@ -0,0 +1,2 @@
+; filename source of the file
+python2.6.6.7z http://mirrors.xbmc.org/build-deps/win32/
diff --git a/project/VS2010Express/XBMC.vcxproj b/project/VS2010Express/XBMC.vcxproj
index 6873051c51..f72ff70201 100644
--- a/project/VS2010Express/XBMC.vcxproj
+++ b/project/VS2010Express/XBMC.vcxproj
@@ -102,8 +102,8 @@
<InlineFunctionExpansion>Default</InlineFunctionExpansion>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
- <AdditionalIncludeDirectories>..\..\;..\..\xbmc\;..\..\xbmc\win32\;..\..\xbmc\cores\dvdplayer;..\..\lib;..\..\lib\ffmpeg;..\..\lib\ffmpeg\include-xbmc-win32;..\..\lib\freetype\include;..\..\lib\jsoncpp\jsoncpp\include;..\..\lib\liblame\include;..\..\lib\libUPnP\Platinum\Source\Devices\MediaRenderer;..\..\lib\libUPnP\Platinum\Source\Devices\MediaConnect;..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer;..\..\lib\libUPnP\Platinum\Source\Platinum;..\..\lib\libUPnP\Platinum\Source\Core;..\..\lib\libUPnP\Neptune\Source\Core;..\..\lib\libUPnP\Neptune\Source\System\Win32;..\..\lib\Python\PC;..\..\lib\win32\boost;..\..\lib\win32\libbluray_win32;..\..\lib\win32\libcdio\include;..\..\lib\win32\libiconv\include;..\..\lib\win32\libmicrohttpd_win32\include;..\..\lib\win32\libwavpack;..\..\lib\win32\pcre;..\..\lib\win32\vorbisfile\libvorbis\include;..\..\lib\win32\vorbisfile\ogg\include;..\..\lib\jsoncpp\include</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_WINDOWS;_MSVC;WIN32;NDEBUG;_WIN32_WINNT=0x0501;WINVER=0x0500;NOMINMAX;_USE_32BIT_TIME_T;HAS_GL;__STDC_CONSTANT_MACROS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\;..\..\xbmc\;..\..\xbmc\win32\;..\..\xbmc\cores\dvdplayer;..\..\lib;..\..\lib\ffmpeg;..\..\lib\ffmpeg\include-xbmc-win32;..\..\lib\freetype\include;..\..\lib\jsoncpp\jsoncpp\include;..\..\lib\liblame\include;..\..\lib\libUPnP\Platinum\Source\Devices\MediaRenderer;..\..\lib\libUPnP\Platinum\Source\Devices\MediaConnect;..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer;..\..\lib\libUPnP\Platinum\Source\Platinum;..\..\lib\libUPnP\Platinum\Source\Core;..\..\lib\libUPnP\Neptune\Source\Core;..\..\lib\libUPnP\Neptune\Source\System\Win32;..\..\lib\win32\boost;..\..\lib\win32\libbluray_win32;..\..\lib\win32\libcdio\include;..\..\lib\win32\libiconv\include;..\..\lib\win32\libmicrohttpd_win32\include;..\..\lib\win32\libwavpack;..\..\lib\win32\pcre;..\..\lib\win32\vorbisfile\libvorbis\include;..\..\lib\win32\vorbisfile\ogg\include;..\..\lib\jsoncpp\include</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_WINDOWS;_MSVC;WIN32;NDEBUG;_WIN32_WINNT=0x0501;WINVER=0x0500;NOMINMAX;_USE_32BIT_TIME_T;HAS_GL;__STDC_CONSTANT_MACROS;USE_EXTERNAL_PYTHON;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>false</StringPooling>
<MinimalRebuild>false</MinimalRebuild>
<ExceptionHandling>Async</ExceptionHandling>
@@ -147,7 +147,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\;..\..\xbmc\;..\..\xbmc\cores;..\..\xbmc\cores\dvdplayer;..\..\xbmc\dialogs;..\..\xbmc\FileSystem;..\..\xbmc\guilib\;..\..\xbmc\utils;..\..\xbmc\win32;..\..\xbmc\windowing;..\..\lib;..\..\lib\ffmpeg;..\..\lib\ffmpeg\include-xbmc-win32;..\..\lib\freetype\include;..\..\lib\jsoncpp\jsoncpp\include;..\..\lib\libflac\flac-1.2.1\include;..\..\lib\liblame\include;..\..\lib\libUPnP\Platinum\Source\Devices\MediaRenderer;..\..\lib\libUPnP\Platinum\Source\Devices\MediaConnect;..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer;..\..\lib\libUPnP\Platinum\Source\Platinum;..\..\lib\libUPnP\Platinum\Source\Core;..\..\lib\libUPnP\Neptune\Source\Core;..\..\lib\libUPnP\Neptune\Source\System\Win32;..\..\lib\win32\boost;..\..\lib\win32\libbluray_win32;..\..\lib\win32\libcdio\include;..\..\lib\win32\libiconv\include;..\..\lib\win32\libmicrohttpd_win32\include;..\..\lib\win32\libsamplerate\src;..\..\lib\win32\libssh_win32\include;..\..\lib\win32\libwavpack;..\..\lib\win32\pcre;..\..\lib\win32\sqlite;..\..\lib\win32\vorbisfile\libvorbis\include;..\..\lib\win32\vorbisfile\ogg\include;..\..\lib\jsoncpp\include</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_WINDOWS;_MSVC;WIN32;_DEBUG;_WIN32_WINNT=0x0501;WINVER=0x0500;NOMINMAX;_USE_32BIT_TIME_T;HAS_DX;Py_NO_ENABLE_SHARED;USE_EXTERNAL_PYTHON;D3D_DEBUG_INFO;__STDC_CONSTANT_MACROS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_WINDOWS;_MSVC;WIN32;_DEBUG;_WIN32_WINNT=0x0501;WINVER=0x0500;NOMINMAX;_USE_32BIT_TIME_T;HAS_DX;USE_EXTERNAL_PYTHON;D3D_DEBUG_INFO;__STDC_CONSTANT_MACROS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<ExceptionHandling>Async</ExceptionHandling>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
@@ -192,8 +192,8 @@
<InlineFunctionExpansion>Default</InlineFunctionExpansion>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
- <AdditionalIncludeDirectories>..\..\;..\..\xbmc\;..\..\xbmc\win32\;..\..\xbmc\cores\dvdplayer;..\..\lib;..\..\lib\ffmpeg;..\..\lib\ffmpeg\include-xbmc-win32;..\..\lib\freetype\include;..\..\lib\jsoncpp\jsoncpp\include;..\..\lib\liblame\include;..\..\lib\libUPnP\Platinum\Source\Devices\MediaRenderer;..\..\lib\libUPnP\Platinum\Source\Devices\MediaConnect;..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer;..\..\lib\libUPnP\Platinum\Source\Platinum;..\..\lib\libUPnP\Platinum\Source\Core;..\..\lib\libUPnP\Neptune\Source\Core;..\..\lib\libUPnP\Neptune\Source\System\Win32;..\..\lib\Python\PC;..\..\lib\win32\boost;..\..\lib\win32\libbluray_win32;..\..\lib\win32\libcdio\include;..\..\lib\win32\libiconv\include;..\..\lib\win32\libmicrohttpd_win32\include;..\..\lib\win32\libwavpack;..\..\lib\win32\pcre;..\..\lib\win32\vorbisfile\libvorbis\include;..\..\lib\win32\vorbisfile\ogg\include;..\..\lib\jsoncpp\include</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_WINDOWS;_MSVC;WIN32;NDEBUG;_WIN32_WINNT=0x0501;WINVER=0x0500;NOMINMAX;_USE_32BIT_TIME_T;HAS_DX;__STDC_CONSTANT_MACROS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\;..\..\xbmc\;..\..\xbmc\win32\;..\..\xbmc\cores\dvdplayer;..\..\lib;..\..\lib\ffmpeg;..\..\lib\ffmpeg\include-xbmc-win32;..\..\lib\freetype\include;..\..\lib\jsoncpp\jsoncpp\include;..\..\lib\liblame\include;..\..\lib\libUPnP\Platinum\Source\Devices\MediaRenderer;..\..\lib\libUPnP\Platinum\Source\Devices\MediaConnect;..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer;..\..\lib\libUPnP\Platinum\Source\Platinum;..\..\lib\libUPnP\Platinum\Source\Core;..\..\lib\libUPnP\Neptune\Source\Core;..\..\lib\libUPnP\Neptune\Source\System\Win32;..\..\lib\win32\boost;..\..\lib\win32\libbluray_win32;..\..\lib\win32\libcdio\include;..\..\lib\win32\libiconv\include;..\..\lib\win32\libmicrohttpd_win32\include;..\..\lib\win32\libwavpack;..\..\lib\win32\pcre;..\..\lib\win32\vorbisfile\libvorbis\include;..\..\lib\win32\vorbisfile\ogg\include;..\..\lib\jsoncpp\include</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_WINDOWS;_MSVC;WIN32;NDEBUG;_WIN32_WINNT=0x0501;WINVER=0x0500;NOMINMAX;_USE_32BIT_TIME_T;HAS_DX;USE_EXTERNAL_PYTHON;__STDC_CONSTANT_MACROS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>false</StringPooling>
<MinimalRebuild>true</MinimalRebuild>
<ExceptionHandling>Async</ExceptionHandling>
@@ -235,8 +235,8 @@
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..\;..\..\xbmc\;..\..\xbmc\win32\;..\..\xbmc\cores\dvdplayer;..\..\lib;..\..\lib\ffmpeg;..\..\lib\ffmpeg\include-xbmc-win32;..\..\lib\freetype\include;..\..\lib\jsoncpp\jsoncpp\include;..\..\lib\liblame\include;..\..\lib\libUPnP\Platinum\Source\Devices\MediaRenderer;..\..\lib\libUPnP\Platinum\Source\Devices\MediaConnect;..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer;..\..\lib\libUPnP\Platinum\Source\Platinum;..\..\lib\libUPnP\Platinum\Source\Core;..\..\lib\libUPnP\Neptune\Source\Core;..\..\lib\libUPnP\Neptune\Source\System\Win32;..\..\lib\Python\PC;..\..\lib\win32\boost;..\..\lib\win32\libbluray_win32;..\..\lib\win32\libcdio\include;..\..\lib\win32\libiconv\include;..\..\lib\win32\libmicrohttpd_win32\include;..\..\lib\win32\libwavpack;..\..\lib\win32\pcre;..\..\lib\win32\vorbisfile\libvorbis\include;..\..\lib\win32\vorbisfile\ogg\include;..\..\lib\jsoncpp\include</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_WINDOWS;_MSVC;WIN32;_DEBUG;_WIN32_WINNT=0x0501;WINVER=0x0500;NOMINMAX;_USE_32BIT_TIME_T;HAS_GL;Py_NO_ENABLE_SHARED;__STDC_CONSTANT_MACROS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\;..\..\xbmc\;..\..\xbmc\win32\;..\..\xbmc\cores\dvdplayer;..\..\lib;..\..\lib\ffmpeg;..\..\lib\ffmpeg\include-xbmc-win32;..\..\lib\freetype\include;..\..\lib\jsoncpp\jsoncpp\include;..\..\lib\liblame\include;..\..\lib\libUPnP\Platinum\Source\Devices\MediaRenderer;..\..\lib\libUPnP\Platinum\Source\Devices\MediaConnect;..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer;..\..\lib\libUPnP\Platinum\Source\Platinum;..\..\lib\libUPnP\Platinum\Source\Core;..\..\lib\libUPnP\Neptune\Source\Core;..\..\lib\libUPnP\Neptune\Source\System\Win32;..\..\lib\win32\boost;..\..\lib\win32\libbluray_win32;..\..\lib\win32\libcdio\include;..\..\lib\win32\libiconv\include;..\..\lib\win32\libmicrohttpd_win32\include;..\..\lib\win32\libwavpack;..\..\lib\win32\pcre;..\..\lib\win32\vorbisfile\libvorbis\include;..\..\lib\win32\vorbisfile\ogg\include;..\..\lib\jsoncpp\include</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_WINDOWS;_MSVC;WIN32;_DEBUG;_WIN32_WINNT=0x0501;WINVER=0x0500;NOMINMAX;_USE_32BIT_TIME_T;HAS_GL;__STDC_CONSTANT_MACROS;USE_EXTERNAL_PYTHON;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<ExceptionHandling>Async</ExceptionHandling>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
@@ -459,44 +459,120 @@
<ClCompile Include="..\..\xbmc\interfaces\json-rpc\SystemOperations.cpp" />
<ClCompile Include="..\..\xbmc\interfaces\json-rpc\VideoLibrary.cpp" />
<ClCompile Include="..\..\xbmc\interfaces\json-rpc\XBMCOperations.cpp" />
- <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\action.cpp" />
- <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\control.cpp" />
- <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\controlbutton.cpp" />
- <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\controlcheckmark.cpp" />
- <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\controlfadelabel.cpp" />
- <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\controlgroup.cpp" />
- <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\controlimage.cpp" />
- <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\controllabel.cpp" />
- <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\controllist.cpp" />
- <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\controlprogress.cpp" />
- <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\controlradiobutton.cpp" />
- <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\controlslider.cpp" />
- <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\controlspin.cpp" />
- <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\controltextbox.cpp" />
- <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\dialog.cpp" />
- <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\GUIPythonWindow.cpp" />
- <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\GUIPythonWindowDialog.cpp" />
- <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\GUIPythonWindowXML.cpp" />
- <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\GUIPythonWindowXMLDialog.cpp" />
- <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\infotagmusic.cpp" />
- <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\infotagvideo.cpp" />
- <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\keyboard.cpp" />
- <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\listitem.cpp" />
- <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\player.cpp" />
- <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\pyplaylist.cpp" />
- <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\PythonAddon.cpp" />
- <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\PythonPlayer.cpp" />
- <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\pyutil.cpp" />
- <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\window.cpp" />
- <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\winxml.cpp" />
- <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\winxmldialog.cpp" />
- <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\xbmcaddonmodule.cpp" />
- <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\xbmcguimodule.cpp" />
- <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\xbmcmodule.cpp" />
- <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\xbmcplugin.cpp" />
- <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\xbmcvfsmodule.cpp" />
- <ClCompile Include="..\..\xbmc\interfaces\python\XBPython.cpp" />
- <ClCompile Include="..\..\xbmc\interfaces\python\XBPyThread.cpp" />
+ <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\action.cpp">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">..\..\project\BuildDependencies\include\python;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\control.cpp">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">..\..\project\BuildDependencies\include\python;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\controlbutton.cpp">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">..\..\project\BuildDependencies\include\python;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\controlcheckmark.cpp">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">..\..\project\BuildDependencies\include\python;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\controlfadelabel.cpp">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">..\..\project\BuildDependencies\include\python;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\controlgroup.cpp">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">..\..\project\BuildDependencies\include\python;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\controlimage.cpp">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">..\..\project\BuildDependencies\include\python;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\controllabel.cpp">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">..\..\project\BuildDependencies\include\python;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\controllist.cpp">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">..\..\project\BuildDependencies\include\python;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\controlprogress.cpp">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">..\..\project\BuildDependencies\include\python;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\controlradiobutton.cpp">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">..\..\project\BuildDependencies\include\python;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\controlslider.cpp">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">..\..\project\BuildDependencies\include\python;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\controlspin.cpp">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">..\..\project\BuildDependencies\include\python;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\controltextbox.cpp">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">..\..\project\BuildDependencies\include\python;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\dialog.cpp">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">..\..\project\BuildDependencies\include\python;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\GUIPythonWindow.cpp">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">..\..\project\BuildDependencies\include\python;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\GUIPythonWindowDialog.cpp">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">..\..\project\BuildDependencies\include\python;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\GUIPythonWindowXML.cpp">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">..\..\project\BuildDependencies\include\python;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\GUIPythonWindowXMLDialog.cpp">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">..\..\project\BuildDependencies\include\python;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\infotagmusic.cpp">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">..\..\project\BuildDependencies\include\python;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\infotagvideo.cpp">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">..\..\project\BuildDependencies\include\python;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\keyboard.cpp">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">..\..\project\BuildDependencies\include\python;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\listitem.cpp">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">..\..\project\BuildDependencies\include\python;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\player.cpp">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">..\..\project\BuildDependencies\include\python;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\pyplaylist.cpp">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">..\..\project\BuildDependencies\include\python;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\PythonAddon.cpp">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">..\..\project\BuildDependencies\include\python;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\PythonPlayer.cpp">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">..\..\project\BuildDependencies\include\python;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\pyutil.cpp">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">..\..\project\BuildDependencies\include\python;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\window.cpp">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">..\..\project\BuildDependencies\include\python;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\winxml.cpp">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">..\..\project\BuildDependencies\include\python;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\winxmldialog.cpp">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">..\..\project\BuildDependencies\include\python;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\xbmcaddonmodule.cpp">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">..\..\project\BuildDependencies\include\python;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\xbmcguimodule.cpp">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">..\..\project\BuildDependencies\include\python;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\xbmcmodule.cpp">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">..\..\project\BuildDependencies\include\python;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\xbmcplugin.cpp">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">..\..\project\BuildDependencies\include\python;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <ClCompile Include="..\..\xbmc\interfaces\python\xbmcmodule\xbmcvfsmodule.cpp">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">..\..\project\BuildDependencies\include\python;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <ClCompile Include="..\..\xbmc\interfaces\python\XBPython.cpp">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">..\..\project\BuildDependencies\include\python;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <ClCompile Include="..\..\xbmc\interfaces\python\XBPyThread.cpp">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">..\..\project\BuildDependencies\include\python;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
<ClCompile Include="..\..\xbmc\LangInfo.cpp" />
<ClCompile Include="..\..\xbmc\MediaSource.cpp" />
<ClCompile Include="..\..\xbmc\music\Album.cpp" />
@@ -738,7 +814,6 @@
<ClCompile Include="..\..\xbmc\win32\strverscmp.cpp" />
<ClCompile Include="..\..\xbmc\win32\Win32DelayedDllLoad.cpp" />
<ClCompile Include="..\..\xbmc\win32\WIN32Util.cpp" />
- <ClCompile Include="..\..\xbmc\win32\WIN32XBPythonDll.cpp" />
<ClCompile Include="..\..\xbmc\win32\WINDirectSound.cpp" />
<ClCompile Include="..\..\xbmc\win32\WindowHelper.cpp" />
<ClCompile Include="..\..\xbmc\win32\WINFileSMB.cpp" />
diff --git a/project/VS2010Express/XBMC.vcxproj.filters b/project/VS2010Express/XBMC.vcxproj.filters
index 3f98ef8383..4f143cca8b 100644
--- a/project/VS2010Express/XBMC.vcxproj.filters
+++ b/project/VS2010Express/XBMC.vcxproj.filters
@@ -237,9 +237,6 @@
<ClCompile Include="..\..\xbmc\win32\strverscmp.cpp">
<Filter>win32</Filter>
</ClCompile>
- <ClCompile Include="..\..\xbmc\win32\Win32DelayedDllLoad.cpp">
- <Filter>win32</Filter>
- </ClCompile>
<ClCompile Include="..\..\xbmc\win32\WIN32Util.cpp">
<Filter>win32</Filter>
</ClCompile>
@@ -2454,8 +2451,8 @@
<ClCompile Include="..\..\xbmc\XBDateTime.cpp">
<Filter>utils</Filter>
</ClCompile>
- <ClCompile Include="..\..\xbmc\win32\WIN32XBPythonDll.cpp">
- <Filter>interfaces\python</Filter>
+ <ClCompile Include="..\..\xbmc\win32\Win32DelayedDllLoad.cpp">
+ <Filter>win32</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
diff --git a/xbmc/interfaces/python/XBPython.cpp b/xbmc/interfaces/python/XBPython.cpp
index a07a948ed2..2a5bcbbe6d 100644
--- a/xbmc/interfaces/python/XBPython.cpp
+++ b/xbmc/interfaces/python/XBPython.cpp
@@ -484,12 +484,12 @@ void XBPython::Finalize()
Py_Finalize();
PyEval_ReleaseLock();
-#if !(defined(__APPLE__) && defined(USE_EXTERNAL_PYTHON))
+#if !((defined(__APPLE__) || defined(_WIN32)) && defined(USE_EXTERNAL_PYTHON))
UnloadExtensionLibs();
#endif
// first free all dlls loaded by python, after that python24.dll (this is done by UnloadPythonDlls
-#if !(defined(__APPLE__) && defined(USE_EXTERNAL_PYTHON))
+#if !((defined(__APPLE__) || defined(_WIN32)) && defined(USE_EXTERNAL_PYTHON))
DllLoaderContainer::UnloadPythonDlls();
#endif
#if defined(_LINUX) && !(defined(__APPLE__) && defined(USE_EXTERNAL_PYTHON))
diff --git a/xbmc/win32/WIN32XBPythonDll.cpp b/xbmc/win32/WIN32XBPythonDll.cpp
deleted file mode 100644
index 088909cdb2..0000000000
--- a/xbmc/win32/WIN32XBPythonDll.cpp
+++ /dev/null
@@ -1,444 +0,0 @@
-/*
- * Copyright (C) 2005-2008 Team XBMC
- * http://www.xbmc.org
- *
- * 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, 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 XBMC; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- */
-
-#include "interfaces/python/XBPythonDll.h"
-#include "cores/DllLoader/DllLoader.h"
-
-template<byte count>
-struct SVaPassNext{
- SVaPassNext<count-1> big;
- DWORD dw;
-};
-template<> struct SVaPassNext<0>{};
-//SVaPassNext - is generator of structure of any size at compile time.
-
-class CVaPassNext{
- public:
- SVaPassNext<50> svapassnext;
- CVaPassNext(va_list & args){
- try{//to avoid access violation
- memcpy(&svapassnext, args, sizeof(svapassnext));
- } catch (...) {}
- }
-};
-#define va_pass(valist) CVaPassNext(valist).svapassnext
-
-// macro to make life a bit simpler
-
-#define DLL_FUNCTION(function) #function, (void**)&p_##function
-#define DLL_VA_FUNCTION(function) #function, (void**)&p_va_##function
-
-// use these if the dll exports pointers
-#define DLL_POINTER_DATA(data) #data, (void**)&data
-#define DATA_POINTER(data) unsigned long data;
-
-// use these if the dll exports data structs
-#define DLL_OBJECT_DATA(data) #data, (void**)&pointer_##data
-
-#define _Py_NoneStruct (*((PyObject*)pointer__Py_NoneStruct))
-#define PyString_Type (*((PyTypeObject*)pointer_PyString_Type))
-#define PyList_Type (*((PyTypeObject*)pointer_PyList_Type))
-#define PyLong_Type (*((PyTypeObject*)pointer_PyLong_Type))
-#define PyInt_Type (*((PyTypeObject*)pointer_PyInt_Type))
-#define PyUnicode_Type (*((PyTypeObject*)pointer_PyUnicode_Type))
-#define PyTuple_Type (*((PyTypeObject*)pointer_PyTuple_Type))
-#define PyDict_Type (*((PyTypeObject*)pointer_PyDict_Type))
-
-#define DLL_ORD_FUNCTION(ord, function) "hapdbg.dll", ord, (void**)&p_##function
-
-#define FUNCTION(function) \
- void* (__cdecl* p_##function)(); \
- void* function() { return p_##function(); }
-
-#define FUNCTION4(function) \
- void* (__cdecl* p_##function)(void* a); \
- void* function(void* a) { return p_##function(a); }
-
-#define FUNCTION8(function) \
- void* (__cdecl* p_##function)(void* a, void* b); \
- void* function(void* a, void* b) { return p_##function(a, b); }
-
-#define VA_FUNC_START(x) \
- void* ret; \
- va_list va; \
- va_start(va, x); \
- ret =
-
-#define VA_FUNC_END \
- va_end(va); \
- return ret;
-
-#define VA_FUNCTION8(function) \
- void* (__cdecl* p_va_##function)(void* a, ...); \
- void* function(void* a, ...) { VA_FUNC_START(a) p_va_##function(a, va_pass(va)); VA_FUNC_END }
-
-#define VA_FUNCTION12(function) \
- void* (__cdecl* p_va_##function)(void* a, void* b, ...); \
- void* function(void* a, void* b, ...) { VA_FUNC_START(b) p_va_##function(a, b, va_pass(va)); VA_FUNC_END }
-
-#define VA_FUNCTION16(function) \
- void* (__cdecl* p_va_##function)(void* a, void* b, void* c, ...); \
- void* function(void* a, void* b, void* c, ...) { VA_FUNC_START(c) p_va_##function(a, b, c, va_pass(va)); VA_FUNC_END }
-
-#define VA_FUNCTION20(function) \
- void* (__cdecl* p_va_##function)(void* a, void* b, void* c, void* d, ...); \
- void* function(void* a, void* b, void* c, void* d, ...) { VA_FUNC_START(d) p_va_##function(a, b, c, d, va_pass(va)); VA_FUNC_END }
-
-#define FUNCTION12(function) \
- void* (__cdecl* p_##function)(void* a, void* b, void* c); \
- void* function(void* a, void* b, void* c) { return p_##function(a, b, c); }
-
-#define FUNCTION16(function) \
- void* (__cdecl* p_##function)(void* a, void* b, void* c, void* d); \
- void* function(void* a, void* b, void* c, void* d) { return p_##function(a, b, c, d); }
-
-#define FUNCTION20(function) \
- void* (__cdecl* p_##function)(void* a, void* b, void* c, void* d, void* e); \
- void* function(void* a, void* b, void* c, void* d, void* e) { return p_##function(a, b, c, d, e); }
-
-#define FUNCTION28(function) \
- void* (__cdecl* p_##function)(void* a, void* b, void* c, void* d, void* e, void* f, void* g); \
- void* function(void* a, void* b, void* c, void* d, void* e, void* f, void* g) { return p_##function(a, b, c, d, e, f, g); }
-
-extern "C"
-{
- /*****************************************
- * python24.dll
- */
-
- FUNCTION(PyEval_ReleaseLock)
- FUNCTION(PyEval_AcquireLock)
- FUNCTION(PyThreadState_Get)
- FUNCTION4(PyRun_SimpleString)
- FUNCTION(PyEval_InitThreads)
- FUNCTION(PyEval_ThreadsInitialized)
- FUNCTION(Py_Initialize)
- FUNCTION(Py_IsInitialized)
- FUNCTION(Py_Finalize)
- FUNCTION(Py_NewInterpreter)
- FUNCTION4(Py_EndInterpreter)
- FUNCTION4(PyThreadState_Swap)
- FUNCTION8(PyErr_SetString)
- FUNCTION4(PyThreadState_New)
- FUNCTION(PyErr_Print)
- FUNCTION(PyErr_Occurred)
- FUNCTION8(PyRun_SimpleFile)
- FUNCTION4(PySys_SetPath)
- FUNCTION(Py_GetPath)
- FUNCTION4(PyThreadState_Delete)
- FUNCTION4(PyThreadState_Clear)
-
- VA_FUNCTION8(Py_BuildValue)
- /*void* Py_BuildValue(void* a, ...)
- {
- void* ret;
- va_list va;
- va_start(va, a);
- ret = Py_VaBuildValue(a, va);
- va_end(va);
- return ret;
- }*/
-
- VA_FUNCTION12(PyArg_Parse)
- VA_FUNCTION12(PyArg_ParseTuple)
- /*void* PyArg_ParseTuple(void* a, void* b, ...)
- {
- void* ret;
- va_list va;
- va_start(va, b);
- ret = PyArg_VaParse(a, b, va);
- va_end(va);
- return ret;
- }*/
-
- FUNCTION8(PyType_IsSubtype)
- VA_FUNCTION20(PyArg_ParseTupleAndKeywords)
- /*void* PyArg_ParseTupleAndKeywords(void* a, void* b, void* c, void* d, ...)
- {
- void* ret;
- va_list va;
- va_start(va, d);
- ret = PyArg_VaParseTupleAndKeywords(a, b, c, d, va);
- va_end(va);
- return ret;
- }*/
-
- FUNCTION4(PyString_AsString)
- FUNCTION8(Py_AddPendingCall)
- FUNCTION8(PyList_GetItem)
- FUNCTION4(PyList_Size)
- FUNCTION4(PyList_New)
- FUNCTION8(PyList_Append)
- FUNCTION4(_PyObject_New)
- FUNCTION4(PyLong_AsLong)
- FUNCTION4(PyLong_AsLongLong)
-
- VA_FUNCTION12(PyErr_Format)
- /*void* PyErr_Format(void* a, void* b, ...)
- {
- void* ret;
- va_list va;
- va_start(va, b);
- ret = PyErr_VaFormat(a, b, va);
- va_end(va);
- return ret;
- }*/
-#ifndef _LINUX
- FUNCTION4(PyUnicodeUCS2_AsUTF8String)
- FUNCTION12(PyUnicodeUCS2_DecodeUTF8)
-#else
- FUNCTION4(PyUnicodeUCS4_AsUTF8String)
- FUNCTION12(PyUnicodeUCS4_DecodeUTF8)
-#endif
- FUNCTION(Py_MakePendingCalls)
- FUNCTION(PyEval_SaveThread)
- FUNCTION4(PyEval_RestoreThread)
- FUNCTION4(PyLong_FromLong)
- FUNCTION12(PyModule_AddStringConstant)
- FUNCTION12(PyModule_AddObject)
-#ifndef Py_TRACE_REFS
- FUNCTION20(Py_InitModule4)
-#else
- FUNCTION20(Py_InitModule4TraceRefs)
-#endif
- FUNCTION4(PyInt_AsLong)
- FUNCTION4(PyFloat_AsDouble)
- FUNCTION4(PyString_FromString)
- FUNCTION4(PyBool_FromLong)
- FUNCTION12(PyModule_AddIntConstant)
-
- //void* (__cdecl* p_va_PyObject_CallFunction)(void* a, void* b, ...);
- VA_FUNCTION12(PyObject_CallFunction) // va arg
- /*
- void* PyObject_CallFunction(void* a, void* b, ...)
- {
- void* ret;
- va_list va;
- va_start(va, b);
- ret = p_va_PyObject_CallFunction(a, b, va_pass(va));
- va_end(va);
- return ret;
- }*/
-
- //void* (__cdecl* p_va_PyObject_CallMethod)(void* a, void* b, void* c, ...);
- VA_FUNCTION16(PyObject_CallMethod)
- /*void* PyObject_CallMethod(void* a, void* b, void* c, ...)
- {
- void* ret;
- va_list va;
- va_start(va, c);
- ret = p_va_PyObject_CallMethod(a, b, c, va_pass(va));
- va_end(va);
- return ret;
- }*/
- FUNCTION12(PyDict_SetItemString)
- FUNCTION(PyDict_New)
- FUNCTION4(PyModule_GetDict)
- FUNCTION4(PyImport_Import)
- FUNCTION4(PyInt_FromLong)
- FUNCTION8(PyDict_GetItemString)
- //FUNCTION8(PyDict_GetItem)
- //FUNCTION4(PyDict_Keys)
- FUNCTION16(PyDict_Next)
- FUNCTION4(PyDict_Size)
- FUNCTION4(PyType_Ready)
- FUNCTION12(PyType_GenericNew)
- FUNCTION4(PyTuple_New)
- FUNCTION12(PyTuple_SetItem)
- FUNCTION8(PySys_SetArgv)
- FUNCTION12(PyObject_RichCompare)
- FUNCTION12(PyErr_Fetch)
- FUNCTION4(PyImport_AddModule)
- FUNCTION4(PyImport_ImportModule)
- FUNCTION4(PyObject_Str)
- FUNCTION20(PyRun_File)
- FUNCTION16(PyRun_String)
- FUNCTION4(PyErr_ExceptionMatches)
- FUNCTION(PyErr_Clear)
- FUNCTION12(PyObject_SetAttrString)
-
-#ifdef Py_TRACE_REFS
- FUNCTION12(_Py_NegativeRefcount)
- FUNCTION4(_Py_Dealloc)
-#endif
-
-#if (defined HAVE_LIBPYTHON2_6)
- FUNCTION8(PyRun_SimpleStringFlags)
- FUNCTION20(PyRun_StringFlags)
- FUNCTION28(PyRun_FileExFlags)
-#endif
-
- // PyFloat_FromDouble(double)
- void* (__cdecl* p_PyFloat_FromDouble)(double a); \
- void* PyFloat_FromDouble(double a) { return p_PyFloat_FromDouble(a); }
-
- DATA_OBJECT(PyExc_SystemExit)
- DATA_OBJECT(PyExc_SystemError)
- DATA_OBJECT(PyExc_ValueError)
- DATA_OBJECT(PyExc_Exception)
- DATA_OBJECT(PyExc_TypeError)
- DATA_OBJECT(PyExc_KeyboardInterrupt)
- DATA_OBJECT(PyExc_RuntimeError)
- DATA_OBJECT(PyExc_ReferenceError)
-
- DATA_OBJECT(_Py_NoneStruct)
- DATA_OBJECT(_Py_NotImplementedStruct)
- DATA_OBJECT(_Py_TrueStruct)
- DATA_OBJECT(_Py_ZeroStruct)
- DATA_OBJECT(PyString_Type)
- DATA_OBJECT(PyList_Type)
- DATA_OBJECT(PyLong_Type)
- DATA_OBJECT(PyInt_Type)
- DATA_OBJECT(PyUnicode_Type)
- DATA_OBJECT(PyTuple_Type)
- DATA_OBJECT(PyDict_Type)
-
-#ifdef Py_TRACE_REFS
- DATA_OBJECT(_Py_RefTotal)
-#endif
-
- bool python_load_dll(LibraryLoader& dll)
- {
- bool bResult;
-
- bResult = (
- dll.ResolveExport(DLL_FUNCTION(PyEval_ReleaseLock)) &&
- dll.ResolveExport(DLL_FUNCTION(PyEval_AcquireLock)) &&
- dll.ResolveExport(DLL_FUNCTION(PyThreadState_Get)) &&
- dll.ResolveExport(DLL_FUNCTION(PyRun_SimpleString)) &&
- dll.ResolveExport(DLL_FUNCTION(PyEval_InitThreads)) &&
- dll.ResolveExport(DLL_FUNCTION(PyEval_ThreadsInitialized)) &&
- dll.ResolveExport(DLL_FUNCTION(Py_Initialize)) &&
- dll.ResolveExport(DLL_FUNCTION(Py_IsInitialized)) &&
- dll.ResolveExport(DLL_FUNCTION(Py_Finalize)) &&
- dll.ResolveExport(DLL_FUNCTION(Py_NewInterpreter)) &&
- dll.ResolveExport(DLL_FUNCTION(Py_EndInterpreter)) &&
- dll.ResolveExport(DLL_FUNCTION(PyThreadState_Swap)) &&
- dll.ResolveExport(DLL_FUNCTION(PyErr_SetString)) &&
- dll.ResolveExport(DLL_FUNCTION(PyThreadState_New)) &&
- dll.ResolveExport(DLL_FUNCTION(PyErr_Print)) &&
- dll.ResolveExport(DLL_FUNCTION(PyErr_Occurred)) &&
- dll.ResolveExport(DLL_FUNCTION(PyRun_SimpleFile)) &&
- dll.ResolveExport(DLL_FUNCTION(PySys_SetPath)) &&
- dll.ResolveExport(DLL_FUNCTION(Py_GetPath)) &&
- dll.ResolveExport(DLL_FUNCTION(PyThreadState_Delete)) &&
- dll.ResolveExport(DLL_FUNCTION(PyThreadState_Clear)) &&
- dll.ResolveExport(DLL_VA_FUNCTION(Py_BuildValue)) &&
- dll.ResolveExport(DLL_FUNCTION(PyType_IsSubtype)) &&
- dll.ResolveExport(DLL_VA_FUNCTION(PyArg_ParseTupleAndKeywords)) &&
- dll.ResolveExport(DLL_FUNCTION(PyString_AsString)) &&
- dll.ResolveExport(DLL_FUNCTION(Py_AddPendingCall)) &&
- dll.ResolveExport(DLL_VA_FUNCTION(PyObject_CallMethod)) &&
- dll.ResolveExport(DLL_FUNCTION(PyList_GetItem)) &&
- dll.ResolveExport(DLL_FUNCTION(PyList_Size)) &&
- dll.ResolveExport(DLL_FUNCTION(PyList_New)) &&
- dll.ResolveExport(DLL_FUNCTION(PyList_Append)) &&
- dll.ResolveExport(DLL_FUNCTION(_PyObject_New)) &&
- dll.ResolveExport(DLL_FUNCTION(PyLong_AsLong)) &&
- dll.ResolveExport(DLL_FUNCTION(PyLong_AsLongLong)) &&
- dll.ResolveExport(DLL_VA_FUNCTION(PyErr_Format)) &&
-#ifndef _LINUX
- dll.ResolveExport(DLL_FUNCTION(PyUnicodeUCS2_AsUTF8String)) &&
- dll.ResolveExport(DLL_FUNCTION(PyUnicodeUCS2_DecodeUTF8)) &&
-#else
- dll.ResolveExport(DLL_FUNCTION(PyUnicodeUCS4_AsUTF8String)) &&
- dll.ResolveExport(DLL_FUNCTION(PyUnicodeUCS4_DecodeUTF8)) &&
-#endif
- dll.ResolveExport(DLL_FUNCTION(Py_MakePendingCalls)) &&
- dll.ResolveExport(DLL_FUNCTION(PyEval_SaveThread)) &&
- dll.ResolveExport(DLL_FUNCTION(PyEval_RestoreThread)) &&
- dll.ResolveExport(DLL_FUNCTION(PyLong_FromLong)) &&
- dll.ResolveExport(DLL_FUNCTION(PyModule_AddStringConstant)) &&
- dll.ResolveExport(DLL_FUNCTION(PyModule_AddObject)) &&
-#ifndef Py_TRACE_REFS
- dll.ResolveExport(DLL_FUNCTION(Py_InitModule4)) &&
-#else
- dll.ResolveExport(DLL_FUNCTION(Py_InitModule4TraceRefs)) &&
-#endif
- dll.ResolveExport(DLL_FUNCTION(PyInt_AsLong)) &&
- dll.ResolveExport(DLL_FUNCTION(PyFloat_AsDouble)) &&
- dll.ResolveExport(DLL_FUNCTION(PyString_FromString)) &&
- dll.ResolveExport(DLL_FUNCTION(PyBool_FromLong)) &&
- dll.ResolveExport(DLL_FUNCTION(PyModule_AddIntConstant)) &&
- dll.ResolveExport(DLL_VA_FUNCTION(PyObject_CallFunction)) &&
- dll.ResolveExport(DLL_FUNCTION(PyDict_SetItemString)) &&
- dll.ResolveExport(DLL_FUNCTION(PyDict_New)) &&
- dll.ResolveExport(DLL_FUNCTION(PyModule_GetDict)) &&
- dll.ResolveExport(DLL_FUNCTION(PyImport_Import)) &&
- dll.ResolveExport(DLL_FUNCTION(PyFloat_FromDouble)) &&
- dll.ResolveExport(DLL_FUNCTION(PyInt_FromLong)) &&
- dll.ResolveExport(DLL_FUNCTION(PyDict_GetItemString)) &&
- //dll.ResolveExport(DLL_FUNCTION(PyDict_GetItem)) &&
- //dll.ResolveExport(DLL_FUNCTION(PyDict_Keys)) &&
- dll.ResolveExport(DLL_FUNCTION(PyDict_Next)) &&
- dll.ResolveExport(DLL_FUNCTION(PyDict_Size)) &&
- dll.ResolveExport(DLL_FUNCTION(PyType_Ready)) &&
- dll.ResolveExport(DLL_FUNCTION(PyType_GenericNew)) &&
- dll.ResolveExport(DLL_FUNCTION(PyTuple_New)) &&
- dll.ResolveExport(DLL_FUNCTION(PyTuple_SetItem)) &&
- dll.ResolveExport(DLL_VA_FUNCTION(PyArg_Parse)) &&
- dll.ResolveExport(DLL_VA_FUNCTION(PyArg_ParseTuple)) &&
- dll.ResolveExport(DLL_FUNCTION(PySys_SetArgv)) &&
- dll.ResolveExport(DLL_FUNCTION(PyObject_RichCompare)) &&
-
- dll.ResolveExport(DLL_OBJECT_DATA(PyExc_SystemExit)) &&
- dll.ResolveExport(DLL_OBJECT_DATA(PyExc_SystemError)) &&
- dll.ResolveExport(DLL_OBJECT_DATA(PyExc_ValueError)) &&
- dll.ResolveExport(DLL_OBJECT_DATA(PyExc_Exception)) &&
- dll.ResolveExport(DLL_OBJECT_DATA(PyExc_TypeError)) &&
- dll.ResolveExport(DLL_OBJECT_DATA(PyExc_KeyboardInterrupt)) &&
- dll.ResolveExport(DLL_OBJECT_DATA(PyExc_RuntimeError)) &&
- dll.ResolveExport(DLL_OBJECT_DATA(PyExc_ReferenceError)) &&
-
- dll.ResolveExport(DLL_OBJECT_DATA(_Py_NoneStruct)) &&
- dll.ResolveExport(DLL_OBJECT_DATA(_Py_NotImplementedStruct)) &&
- dll.ResolveExport(DLL_OBJECT_DATA(_Py_TrueStruct)) &&
- dll.ResolveExport(DLL_OBJECT_DATA(_Py_ZeroStruct)) &&
- dll.ResolveExport(DLL_OBJECT_DATA(PyString_Type)) &&
- dll.ResolveExport(DLL_OBJECT_DATA(PyList_Type)) &&
- dll.ResolveExport(DLL_OBJECT_DATA(PyLong_Type)) &&
- dll.ResolveExport(DLL_OBJECT_DATA(PyInt_Type)) &&
- dll.ResolveExport(DLL_OBJECT_DATA(PyUnicode_Type)) &&
- dll.ResolveExport(DLL_OBJECT_DATA(PyTuple_Type)) &&
- dll.ResolveExport(DLL_OBJECT_DATA(PyDict_Type)) &&
-#ifdef Py_TRACE_REFS
- dll.ResolveExport(DLL_OBJECT_DATA(_Py_RefTotal)) &&
- dll.ResolveExport(DLL_FUNCTION(_Py_NegativeRefcount)) &&
- dll.ResolveExport(DLL_FUNCTION(_Py_Dealloc)) &&
-#endif
- dll.ResolveExport(DLL_FUNCTION(PyErr_Fetch)) &&
- dll.ResolveExport(DLL_FUNCTION(PyImport_AddModule)) &&
- dll.ResolveExport(DLL_FUNCTION(PyImport_ImportModule)) &&
- dll.ResolveExport(DLL_FUNCTION(PyObject_Str)) &&
- dll.ResolveExport(DLL_FUNCTION(PyRun_File)) &&
- dll.ResolveExport(DLL_FUNCTION(PyErr_Clear)) &&
- dll.ResolveExport(DLL_FUNCTION(PyObject_SetAttrString)) &&
- dll.ResolveExport(DLL_FUNCTION(PyErr_ExceptionMatches)) &&
-#if (defined HAVE_LIBPYTHON2_6)
- dll.ResolveExport(DLL_FUNCTION(PyRun_SimpleStringFlags)) &&
- dll.ResolveExport(DLL_FUNCTION(PyRun_StringFlags)) &&
- dll.ResolveExport(DLL_FUNCTION(PyRun_FileExFlags)) &&
-#endif
- dll.ResolveExport(DLL_FUNCTION(PyRun_String)));
-
- return bResult;
- }
-}