mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-08-26 08:26:50 +00:00
Determine python version from python module directly
This commit is contained in:
@@ -72,4 +72,9 @@ extern "C" void ProcessDecRefQueue()
|
||||
{
|
||||
}
|
||||
|
||||
extern "C" RENDERDOC_EXPORT_API int _rd_python_minor_version()
|
||||
{
|
||||
return PY_MINOR_VERSION;
|
||||
}
|
||||
|
||||
REPLAY_PROGRAM_MARKER()
|
||||
|
||||
@@ -2444,8 +2444,7 @@ extern "C" RENDERDOC_API int RENDERDOC_CC RENDERDOC_RunUnitTests(const rdcstr &c
|
||||
const rdcarray<rdcstr> &args);
|
||||
|
||||
DOCUMENT("INTERNAL: Run functional tests.");
|
||||
extern "C" RENDERDOC_API int RENDERDOC_CC RENDERDOC_RunFunctionalTests(int pythonMinorVersion,
|
||||
const rdcarray<rdcstr> &args);
|
||||
extern "C" RENDERDOC_API int RENDERDOC_CC RENDERDOC_RunFunctionalTests(const rdcarray<rdcstr> &args);
|
||||
#endif
|
||||
|
||||
#if !defined(SWIG)
|
||||
|
||||
@@ -891,8 +891,7 @@ static void TestPrintMsg(const rdcstr &msg)
|
||||
OSUtility::WriteOutput(OSUtility::Output_StdErr, msg.c_str());
|
||||
}
|
||||
|
||||
extern "C" RENDERDOC_API int RENDERDOC_CC RENDERDOC_RunFunctionalTests(int pythonMinorVersion,
|
||||
const rdcarray<rdcstr> &args)
|
||||
extern "C" RENDERDOC_API int RENDERDOC_CC RENDERDOC_RunFunctionalTests(const rdcarray<rdcstr> &args)
|
||||
{
|
||||
#if ENABLED(RDOC_WIN32)
|
||||
const char *moduledir = "/pymodules";
|
||||
@@ -932,6 +931,25 @@ extern "C" RENDERDOC_API int RENDERDOC_CC RENDERDOC_RunFunctionalTests(int pytho
|
||||
return 1;
|
||||
}
|
||||
|
||||
void *moduleHandle = Process::LoadModule(moduleFilename);
|
||||
|
||||
int pythonMinorVersion = 0;
|
||||
|
||||
if(moduleHandle)
|
||||
{
|
||||
typedef int (*PFN_rd_python_minor_version)();
|
||||
|
||||
PFN_rd_python_minor_version minor = (PFN_rd_python_minor_version)Process::GetFunctionAddress(
|
||||
moduleHandle, "_rd_python_minor_version");
|
||||
|
||||
pythonMinorVersion = minor();
|
||||
}
|
||||
else
|
||||
{
|
||||
TestPrintMsg(StringFormat::Fmt("Couldn't load python module at %s\n", moduleFilename.c_str()));
|
||||
return 1;
|
||||
}
|
||||
|
||||
// if we've been built either on windows or on linux from within the project root, going up two
|
||||
// directories from the library will put us at the project root. This is the most common scenario
|
||||
// and we don't add handling for locating the script elsewhere as in that case the user can run it
|
||||
|
||||
@@ -7,9 +7,9 @@ set(includes PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty ${CMAKE_SOURCE_DIR}/re
|
||||
set(libraries PRIVATE renderdoc)
|
||||
|
||||
if(PythonLibs_FOUND)
|
||||
add_definitions(-DPYTHON_VERSION_MINOR=${PYTHON_VERSION_MINOR})
|
||||
add_definitions(-DPYTHON_AVAILALBE=1)
|
||||
else()
|
||||
add_definitions(-DPYTHON_VERSION_MINOR=0)
|
||||
add_definitions(-DPYTHON_AVAILALBE=0)
|
||||
endif()
|
||||
|
||||
if(APPLE)
|
||||
|
||||
@@ -846,7 +846,7 @@ public:
|
||||
virtual void AddOptions(cmdline::parser &parser)
|
||||
{
|
||||
parser.set_footer(
|
||||
#if PYTHON_VERSION_MINOR > 0
|
||||
#if PYTHON_AVAILABLE == 1
|
||||
"<unit|functional>"
|
||||
#else
|
||||
"<unit>"
|
||||
@@ -876,7 +876,7 @@ public:
|
||||
rest.erase(rest.begin());
|
||||
|
||||
if(mode != "unit"
|
||||
#if PYTHON_VERSION_MINOR > 0
|
||||
#if PYTHON_AVAILABLE == 1
|
||||
&& mode != "functional"
|
||||
#endif
|
||||
)
|
||||
@@ -898,9 +898,9 @@ public:
|
||||
{
|
||||
if(mode == "unit")
|
||||
return RENDERDOC_RunUnitTests("renderdoccmd test unit", args);
|
||||
#if PYTHON_VERSION_MINOR > 0
|
||||
#if PYTHON_AVAILABLE == 1
|
||||
else if(mode == "functional")
|
||||
return RENDERDOC_RunFunctionalTests(PYTHON_VERSION_MINOR, args);
|
||||
return RENDERDOC_RunFunctionalTests(args);
|
||||
#endif
|
||||
|
||||
std::cerr << "Unsupported test frame work '" << mode << "'" << std::endl << std::endl;
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;_CRT_SECURE_NO_WARNINGS;RENDERDOC_PLATFORM_WIN32;NDEBUG;_CONSOLE;PYTHON_VERSION_MINOR=6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;_CRT_SECURE_NO_WARNINGS;RENDERDOC_PLATFORM_WIN32;NDEBUG;_CONSOLE;PYTHON_AVAILABLE=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)renderdocshim\;$(SolutionDir)renderdoc\api\;$(SolutionDir)renderdoc\api\replay;$(SolutionDir)renderdoccmd\3rdparty\;$(SolutionDir)renderdoc\3rdparty\</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
@@ -124,7 +124,7 @@
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;_CRT_SECURE_NO_WARNINGS;WIN64;RENDERDOC_PLATFORM_WIN32;NDEBUG;_CONSOLE;PYTHON_VERSION_MINOR=6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;_CRT_SECURE_NO_WARNINGS;WIN64;RENDERDOC_PLATFORM_WIN32;NDEBUG;_CONSOLE;PYTHON_AVAILABLE=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)renderdocshim\;$(SolutionDir)renderdoc\api\;$(SolutionDir)renderdoc\api\replay;$(SolutionDir)renderdoccmd\3rdparty\;$(SolutionDir)renderdoc\3rdparty\</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
@@ -147,7 +147,7 @@
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>WIN32;_CRT_SECURE_NO_WARNINGS;RENDERDOC_PLATFORM_WIN32;NDEBUG;RELEASE;_CONSOLE;PYTHON_VERSION_MINOR=6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;_CRT_SECURE_NO_WARNINGS;RENDERDOC_PLATFORM_WIN32;NDEBUG;RELEASE;_CONSOLE;PYTHON_AVAILABLE=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)renderdocshim\;$(SolutionDir)renderdoc\api\;$(SolutionDir)renderdoc\api\replay;$(SolutionDir)renderdoccmd\3rdparty\;$(SolutionDir)renderdoc\3rdparty\</AdditionalIncludeDirectories>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
</ClCompile>
|
||||
@@ -170,7 +170,7 @@
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>WIN32;_CRT_SECURE_NO_WARNINGS;WIN64;RENDERDOC_PLATFORM_WIN32;NDEBUG;RELEASE;_CONSOLE;PYTHON_VERSION_MINOR=6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;_CRT_SECURE_NO_WARNINGS;WIN64;RENDERDOC_PLATFORM_WIN32;NDEBUG;RELEASE;_CONSOLE;PYTHON_AVAILABLE=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)renderdocshim\;$(SolutionDir)renderdoc\api\;$(SolutionDir)renderdoc\api\replay;$(SolutionDir)renderdoccmd\3rdparty\;$(SolutionDir)renderdoc\3rdparty\</AdditionalIncludeDirectories>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
</ClCompile>
|
||||
|
||||
Reference in New Issue
Block a user