mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 21:03:00 +00:00
[SDK][XML2SDB] Simplify include / exclude node specification.
svn path=/trunk/; revision=75457
This commit is contained in:
parent
22331e8f4b
commit
24376e47c4
4 changed files with 116 additions and 25 deletions
|
@ -8,57 +8,147 @@
|
||||||
<!-- Version lie shims -->
|
<!-- Version lie shims -->
|
||||||
|
|
||||||
<SHIM NAME="Win95VersionLie">
|
<SHIM NAME="Win95VersionLie">
|
||||||
|
<INCLUDE MODULE="shell32.dll" />
|
||||||
|
<EXCLUDE MODULE="kernel32.dll" />
|
||||||
|
<EXCLUDE MODULE="msvcrt.dll" />
|
||||||
|
<EXCLUDE MODULE="ole32.dll" />
|
||||||
|
<EXCLUDE MODULE="oleaut32.dll" />
|
||||||
<DLLFILE>aclayers.dll</DLLFILE>
|
<DLLFILE>aclayers.dll</DLLFILE>
|
||||||
</SHIM>
|
</SHIM>
|
||||||
<SHIM NAME="Win98VersionLie">
|
<SHIM NAME="Win98VersionLie">
|
||||||
|
<INCLUDE MODULE="shell32.dll" />
|
||||||
|
<EXCLUDE MODULE="kernel32.dll" />
|
||||||
|
<EXCLUDE MODULE="msvcrt.dll" />
|
||||||
|
<EXCLUDE MODULE="ole32.dll" />
|
||||||
|
<EXCLUDE MODULE="oleaut32.dll" />
|
||||||
<DLLFILE>aclayers.dll</DLLFILE>
|
<DLLFILE>aclayers.dll</DLLFILE>
|
||||||
</SHIM>
|
</SHIM>
|
||||||
<SHIM NAME="WinNT4SP5VersionLie">
|
<SHIM NAME="WinNT4SP5VersionLie">
|
||||||
|
<INCLUDE MODULE="shell32.dll" />
|
||||||
|
<EXCLUDE MODULE="kernel32.dll" />
|
||||||
|
<EXCLUDE MODULE="msvcrt.dll" />
|
||||||
|
<EXCLUDE MODULE="ole32.dll" />
|
||||||
|
<EXCLUDE MODULE="oleaut32.dll" />
|
||||||
<DLLFILE>aclayers.dll</DLLFILE>
|
<DLLFILE>aclayers.dll</DLLFILE>
|
||||||
</SHIM>
|
</SHIM>
|
||||||
<SHIM NAME="Win2000VersionLie">
|
<SHIM NAME="Win2000VersionLie">
|
||||||
|
<INCLUDE MODULE="shell32.dll" />
|
||||||
|
<EXCLUDE MODULE="kernel32.dll" />
|
||||||
|
<EXCLUDE MODULE="msvcrt.dll" />
|
||||||
|
<EXCLUDE MODULE="ole32.dll" />
|
||||||
|
<EXCLUDE MODULE="oleaut32.dll" />
|
||||||
<DLLFILE>aclayers.dll</DLLFILE>
|
<DLLFILE>aclayers.dll</DLLFILE>
|
||||||
</SHIM>
|
</SHIM>
|
||||||
<SHIM NAME="Win2000SP1VersionLie">
|
<SHIM NAME="Win2000SP1VersionLie">
|
||||||
|
<INCLUDE MODULE="shell32.dll" />
|
||||||
|
<EXCLUDE MODULE="kernel32.dll" />
|
||||||
|
<EXCLUDE MODULE="msvcrt.dll" />
|
||||||
|
<EXCLUDE MODULE="ole32.dll" />
|
||||||
|
<EXCLUDE MODULE="oleaut32.dll" />
|
||||||
<DLLFILE>aclayers.dll</DLLFILE>
|
<DLLFILE>aclayers.dll</DLLFILE>
|
||||||
</SHIM>
|
</SHIM>
|
||||||
<SHIM NAME="Win2000SP2VersionLie">
|
<SHIM NAME="Win2000SP2VersionLie">
|
||||||
|
<INCLUDE MODULE="shell32.dll" />
|
||||||
|
<EXCLUDE MODULE="kernel32.dll" />
|
||||||
|
<EXCLUDE MODULE="msvcrt.dll" />
|
||||||
|
<EXCLUDE MODULE="ole32.dll" />
|
||||||
|
<EXCLUDE MODULE="oleaut32.dll" />
|
||||||
<DLLFILE>aclayers.dll</DLLFILE>
|
<DLLFILE>aclayers.dll</DLLFILE>
|
||||||
</SHIM>
|
</SHIM>
|
||||||
<SHIM NAME="Win2000SP3VersionLie">
|
<SHIM NAME="Win2000SP3VersionLie">
|
||||||
|
<INCLUDE MODULE="shell32.dll" />
|
||||||
|
<EXCLUDE MODULE="kernel32.dll" />
|
||||||
|
<EXCLUDE MODULE="msvcrt.dll" />
|
||||||
|
<EXCLUDE MODULE="ole32.dll" />
|
||||||
|
<EXCLUDE MODULE="oleaut32.dll" />
|
||||||
<DLLFILE>aclayers.dll</DLLFILE>
|
<DLLFILE>aclayers.dll</DLLFILE>
|
||||||
</SHIM>
|
</SHIM>
|
||||||
<SHIM NAME="WinXPVersionLie">
|
<SHIM NAME="WinXPVersionLie">
|
||||||
|
<INCLUDE MODULE="shell32.dll" />
|
||||||
|
<EXCLUDE MODULE="kernel32.dll" />
|
||||||
|
<EXCLUDE MODULE="msvcrt.dll" />
|
||||||
|
<EXCLUDE MODULE="ole32.dll" />
|
||||||
|
<EXCLUDE MODULE="oleaut32.dll" />
|
||||||
<DLLFILE>aclayers.dll</DLLFILE>
|
<DLLFILE>aclayers.dll</DLLFILE>
|
||||||
</SHIM>
|
</SHIM>
|
||||||
<SHIM NAME="WinXPSP1VersionLie">
|
<SHIM NAME="WinXPSP1VersionLie">
|
||||||
|
<INCLUDE MODULE="shell32.dll" />
|
||||||
|
<EXCLUDE MODULE="kernel32.dll" />
|
||||||
|
<EXCLUDE MODULE="msvcrt.dll" />
|
||||||
|
<EXCLUDE MODULE="ole32.dll" />
|
||||||
|
<EXCLUDE MODULE="oleaut32.dll" />
|
||||||
<DLLFILE>aclayers.dll</DLLFILE>
|
<DLLFILE>aclayers.dll</DLLFILE>
|
||||||
</SHIM>
|
</SHIM>
|
||||||
<SHIM NAME="WinXPSP2VersionLie">
|
<SHIM NAME="WinXPSP2VersionLie">
|
||||||
|
<INCLUDE MODULE="shell32.dll" />
|
||||||
|
<EXCLUDE MODULE="kernel32.dll" />
|
||||||
|
<EXCLUDE MODULE="msvcrt.dll" />
|
||||||
|
<EXCLUDE MODULE="ole32.dll" />
|
||||||
|
<EXCLUDE MODULE="oleaut32.dll" />
|
||||||
<DLLFILE>aclayers.dll</DLLFILE>
|
<DLLFILE>aclayers.dll</DLLFILE>
|
||||||
</SHIM>
|
</SHIM>
|
||||||
<SHIM NAME="WinXPSP3VersionLie">
|
<SHIM NAME="WinXPSP3VersionLie">
|
||||||
|
<INCLUDE MODULE="shell32.dll" />
|
||||||
|
<EXCLUDE MODULE="kernel32.dll" />
|
||||||
|
<EXCLUDE MODULE="msvcrt.dll" />
|
||||||
|
<EXCLUDE MODULE="ole32.dll" />
|
||||||
|
<EXCLUDE MODULE="oleaut32.dll" />
|
||||||
<DLLFILE>aclayers.dll</DLLFILE>
|
<DLLFILE>aclayers.dll</DLLFILE>
|
||||||
</SHIM>
|
</SHIM>
|
||||||
<SHIM NAME="Win2k3RTMVersionLie">
|
<SHIM NAME="Win2k3RTMVersionLie">
|
||||||
|
<INCLUDE MODULE="shell32.dll" />
|
||||||
|
<EXCLUDE MODULE="kernel32.dll" />
|
||||||
|
<EXCLUDE MODULE="msvcrt.dll" />
|
||||||
|
<EXCLUDE MODULE="ole32.dll" />
|
||||||
|
<EXCLUDE MODULE="oleaut32.dll" />
|
||||||
<DLLFILE>aclayers.dll</DLLFILE>
|
<DLLFILE>aclayers.dll</DLLFILE>
|
||||||
</SHIM>
|
</SHIM>
|
||||||
<SHIM NAME="Win2k3SP1VersionLie">
|
<SHIM NAME="Win2k3SP1VersionLie">
|
||||||
|
<INCLUDE MODULE="shell32.dll" />
|
||||||
|
<EXCLUDE MODULE="kernel32.dll" />
|
||||||
|
<EXCLUDE MODULE="msvcrt.dll" />
|
||||||
|
<EXCLUDE MODULE="ole32.dll" />
|
||||||
|
<EXCLUDE MODULE="oleaut32.dll" />
|
||||||
<DLLFILE>aclayers.dll</DLLFILE>
|
<DLLFILE>aclayers.dll</DLLFILE>
|
||||||
</SHIM>
|
</SHIM>
|
||||||
<SHIM NAME="Win2k3SP2VersionLie">
|
<SHIM NAME="Win2k3SP2VersionLie">
|
||||||
|
<INCLUDE MODULE="shell32.dll" />
|
||||||
|
<EXCLUDE MODULE="kernel32.dll" />
|
||||||
|
<EXCLUDE MODULE="msvcrt.dll" />
|
||||||
|
<EXCLUDE MODULE="ole32.dll" />
|
||||||
|
<EXCLUDE MODULE="oleaut32.dll" />
|
||||||
<DLLFILE>aclayers.dll</DLLFILE>
|
<DLLFILE>aclayers.dll</DLLFILE>
|
||||||
</SHIM>
|
</SHIM>
|
||||||
<SHIM NAME="VistaRTMVersionLie">
|
<SHIM NAME="VistaRTMVersionLie">
|
||||||
|
<INCLUDE MODULE="shell32.dll" />
|
||||||
|
<EXCLUDE MODULE="kernel32.dll" />
|
||||||
|
<EXCLUDE MODULE="msvcrt.dll" />
|
||||||
|
<EXCLUDE MODULE="ole32.dll" />
|
||||||
|
<EXCLUDE MODULE="oleaut32.dll" />
|
||||||
<DLLFILE>aclayers.dll</DLLFILE>
|
<DLLFILE>aclayers.dll</DLLFILE>
|
||||||
</SHIM>
|
</SHIM>
|
||||||
<SHIM NAME="VistaSP1VersionLie">
|
<SHIM NAME="VistaSP1VersionLie">
|
||||||
|
<INCLUDE MODULE="shell32.dll" />
|
||||||
|
<EXCLUDE MODULE="kernel32.dll" />
|
||||||
|
<EXCLUDE MODULE="msvcrt.dll" />
|
||||||
|
<EXCLUDE MODULE="ole32.dll" />
|
||||||
|
<EXCLUDE MODULE="oleaut32.dll" />
|
||||||
<DLLFILE>aclayers.dll</DLLFILE>
|
<DLLFILE>aclayers.dll</DLLFILE>
|
||||||
</SHIM>
|
</SHIM>
|
||||||
<SHIM NAME="VistaSP2VersionLie">
|
<SHIM NAME="VistaSP2VersionLie">
|
||||||
|
<INCLUDE MODULE="shell32.dll" />
|
||||||
|
<EXCLUDE MODULE="kernel32.dll" />
|
||||||
|
<EXCLUDE MODULE="msvcrt.dll" />
|
||||||
|
<EXCLUDE MODULE="ole32.dll" />
|
||||||
|
<EXCLUDE MODULE="oleaut32.dll" />
|
||||||
<DLLFILE>aclayers.dll</DLLFILE>
|
<DLLFILE>aclayers.dll</DLLFILE>
|
||||||
</SHIM>
|
</SHIM>
|
||||||
<SHIM NAME="Win7RTMVersionLie">
|
<SHIM NAME="Win7RTMVersionLie">
|
||||||
|
<INCLUDE MODULE="shell32.dll" />
|
||||||
|
<EXCLUDE MODULE="kernel32.dll" />
|
||||||
|
<EXCLUDE MODULE="msvcrt.dll" />
|
||||||
|
<EXCLUDE MODULE="ole32.dll" />
|
||||||
|
<EXCLUDE MODULE="oleaut32.dll" />
|
||||||
<DLLFILE>aclayers.dll</DLLFILE>
|
<DLLFILE>aclayers.dll</DLLFILE>
|
||||||
</SHIM>
|
</SHIM>
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
/*
|
/*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS xml to sdb converter
|
* PROJECT: ReactOS xml to sdb converter
|
||||||
* FILE: sdk/tools/xml2sdb/main.cpp
|
* FILE: sdk/tools/xml2sdb/main.cpp
|
||||||
* PURPOSE: Implement platform agnostic read / write / allocation functions, parse commandline
|
* PURPOSE: Implement platform agnostic read / write / allocation functions, parse commandline
|
||||||
* PROGRAMMERS: Mark Jansen
|
* PROGRAMMERS: Mark Jansen (mark.jansen@reactos.org)
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -201,7 +201,6 @@ static void update_loglevel(int argc, char* argv[], int& i)
|
||||||
g_ShimDebugLevel = strtoul(value.c_str(), NULL, 10);
|
g_ShimDebugLevel = strtoul(value.c_str(), NULL, 10);
|
||||||
}
|
}
|
||||||
|
|
||||||
// -i R:\src\apphelp\reactos\media\sdb\sysmain.xml -oR:\build\apphelp\devenv_msvc\media\sdb\ros2.sdb
|
|
||||||
int main(int argc, char * argv[])
|
int main(int argc, char * argv[])
|
||||||
{
|
{
|
||||||
std::string input, output;
|
std::string input, output;
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
/*
|
/*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS xml to sdb converter
|
* PROJECT: ReactOS xml to sdb converter
|
||||||
* FILE: sdk/tools/xml2sdb/xml2sdb.cpp
|
* FILE: sdk/tools/xml2sdb/xml2sdb.cpp
|
||||||
* PURPOSE: Conversion functions from xml -> db
|
* PURPOSE: Conversion functions from xml -> db
|
||||||
* PROGRAMMERS: Mark Jansen
|
* PROGRAMMERS: Mark Jansen (mark.jansen@reactos.org)
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@
|
||||||
using tinyxml2::XMLText;
|
using tinyxml2::XMLText;
|
||||||
|
|
||||||
static const GUID GUID_NULL = { 0 };
|
static const GUID GUID_NULL = { 0 };
|
||||||
static const char szCompilerVersion[] = "1.5.0.0";
|
static const char szCompilerVersion[] = "1.6.0.0";
|
||||||
|
|
||||||
#if !defined(C_ASSERT)
|
#if !defined(C_ASSERT)
|
||||||
#define C_ASSERT(expr) extern char (*c_assert(void)) [(expr) ? 1 : -1]
|
#define C_ASSERT(expr) extern char (*c_assert(void)) [(expr) ? 1 : -1]
|
||||||
|
@ -241,19 +241,10 @@ bool ReadBinaryNode(XMLHandle dbNode, const char* nodeName, std::vector<BYTE>& d
|
||||||
bool InExclude::fromXml(XMLHandle dbNode)
|
bool InExclude::fromXml(XMLHandle dbNode)
|
||||||
{
|
{
|
||||||
Module = ReadStringNode(dbNode, "MODULE");
|
Module = ReadStringNode(dbNode, "MODULE");
|
||||||
|
// Special module names: '$' and '*'
|
||||||
if (!Module.empty())
|
if (!Module.empty())
|
||||||
{
|
{
|
||||||
Include = dbNode.FirstChildElement("INCLUDE").ToNode() != NULL;
|
Include = ToNodeName(dbNode) == "INCLUDE";
|
||||||
if (!Include)
|
|
||||||
{
|
|
||||||
tinyxml2::XMLElement* elem = dbNode.ToElement();
|
|
||||||
if (elem)
|
|
||||||
{
|
|
||||||
Include |= (elem->Attribute("INCLUDE") != NULL);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// $ = ??
|
|
||||||
// *
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -303,7 +294,8 @@ bool ShimRef::fromXml(XMLHandle dbNode)
|
||||||
{
|
{
|
||||||
Name = ReadStringNode(dbNode, "NAME");
|
Name = ReadStringNode(dbNode, "NAME");
|
||||||
CommandLine = ReadStringNode(dbNode, "COMMAND_LINE");
|
CommandLine = ReadStringNode(dbNode, "COMMAND_LINE");
|
||||||
ReadGeneric(dbNode, InExcludes, "INEXCLUDE");
|
ReadGeneric(dbNode, InExcludes, "INCLUDE");
|
||||||
|
ReadGeneric(dbNode, InExcludes, "EXCLUDE");
|
||||||
return !Name.empty();
|
return !Name.empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -331,7 +323,8 @@ bool Shim::fromXml(XMLHandle dbNode)
|
||||||
ReadGuidNode(dbNode, "FIX_ID", FixID);
|
ReadGuidNode(dbNode, "FIX_ID", FixID);
|
||||||
// GENERAL ?
|
// GENERAL ?
|
||||||
// DESCRIPTION_RC_ID
|
// DESCRIPTION_RC_ID
|
||||||
ReadGeneric(dbNode, InExcludes, "INEXCLUDE");
|
ReadGeneric(dbNode, InExcludes, "INCLUDE");
|
||||||
|
ReadGeneric(dbNode, InExcludes, "EXCLUDE");
|
||||||
return !Name.empty() && !DllFile.empty();
|
return !Name.empty() && !DllFile.empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -527,6 +520,12 @@ bool Database::fromXml(XMLHandle dbNode)
|
||||||
{
|
{
|
||||||
SHIM_ERR("Unhanled FLAG type\n");
|
SHIM_ERR("Unhanled FLAG type\n");
|
||||||
}
|
}
|
||||||
|
else if (NodeName == "INCLUDE" || NodeName == "EXCLUDE")
|
||||||
|
{
|
||||||
|
InExclude inex;
|
||||||
|
if (inex.fromXml(libChild))
|
||||||
|
Library.InExcludes.push_back(inex);
|
||||||
|
}
|
||||||
libChild = libChild.NextSibling();
|
libChild = libChild.NextSibling();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -560,6 +559,8 @@ bool Database::toSdb(LPCWSTR path)
|
||||||
}
|
}
|
||||||
WriteBinary(pdb, TAG_DATABASE_ID, ID);
|
WriteBinary(pdb, TAG_DATABASE_ID, ID);
|
||||||
TAGID tidLibrary = BeginWriteListTag(pdb, TAG_LIBRARY);
|
TAGID tidLibrary = BeginWriteListTag(pdb, TAG_LIBRARY);
|
||||||
|
if (!WriteGeneric(pdb, Library.InExcludes, *this))
|
||||||
|
return false;
|
||||||
if (!WriteGeneric(pdb, Library.Shims, *this))
|
if (!WriteGeneric(pdb, Library.Shims, *this))
|
||||||
return false;
|
return false;
|
||||||
EndWriteListTag(pdb, tidLibrary);
|
EndWriteListTag(pdb, tidLibrary);
|
||||||
|
|
|
@ -112,6 +112,7 @@ struct Exe
|
||||||
|
|
||||||
struct Library
|
struct Library
|
||||||
{
|
{
|
||||||
|
std::list<InExclude> InExcludes;
|
||||||
std::list<Shim> Shims;
|
std::list<Shim> Shims;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue