mirror of https://github.com/AxioDL/metaforce.git
Refactored for 'spec' tool
This commit is contained in:
parent
9de4d3fbe7
commit
a4ab583a93
|
@ -6,4 +6,11 @@
|
|||
#include "STRG.hpp"
|
||||
#include "TXTR.hpp"
|
||||
|
||||
const std::pair<std::string, std::string> DATA_SPECS[] =
|
||||
{
|
||||
{"hecl-little", "Targets little-endian pc apps using the HECL runtime"},
|
||||
{"hecl-big", "Targets big-endian pc apps using the HECL runtime"},
|
||||
{"hecl-revolution", "Targets Wii apps using the HECL runtime"},
|
||||
{"hecl-cafe", "Targets Wii U apps using the HECL runtime"},
|
||||
|
||||
};
|
||||
|
|
|
@ -58,8 +58,8 @@ public:
|
|||
CHelpOutput::THelpFunc helpFunc = NULL;
|
||||
if (toolName == "init")
|
||||
helpFunc = CToolInit::Help;
|
||||
else if (toolName == "platform")
|
||||
helpFunc = CToolPlatform::Help;
|
||||
else if (toolName == "spec")
|
||||
helpFunc = CToolSpec::Help;
|
||||
else if (toolName == "add")
|
||||
helpFunc = CToolAdd::Help;
|
||||
else if (toolName == "remove" || toolName == "rm")
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
#ifndef CTOOL_PLATFORM
|
||||
#define CTOOL_PLATFORM
|
||||
#ifndef CTOOL_SPEC
|
||||
#define CTOOL_SPEC
|
||||
|
||||
#include "CToolBase.hpp"
|
||||
#include <stdio.h>
|
||||
|
||||
class CToolPlatform final : public CToolBase
|
||||
class CToolSpec final : public CToolBase
|
||||
{
|
||||
public:
|
||||
CToolPlatform(const SToolPassInfo& info)
|
||||
CToolSpec(const SToolPassInfo& info)
|
||||
: CToolBase(info)
|
||||
{
|
||||
}
|
||||
|
||||
~CToolPlatform()
|
||||
~CToolSpec()
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -20,29 +20,29 @@ public:
|
|||
{
|
||||
help.secHead("NAME");
|
||||
help.beginWrap();
|
||||
help.wrap("hecl-platform - Configure platform target options\n");
|
||||
help.wrap("hecl-spec - Configure target data options\n");
|
||||
help.endWrap();
|
||||
|
||||
help.secHead("SYNOPSIS");
|
||||
help.beginWrap();
|
||||
help.wrap("hecl platform [enable|disable] [<platname>...]\n");
|
||||
help.wrap("hecl spec [enable|disable] [<specname>...]\n");
|
||||
help.endWrap();
|
||||
|
||||
help.secHead("DESCRIPTION");
|
||||
help.beginWrap();
|
||||
help.wrap("This command configures the HECL project with the user's preferred target platforms.\n\n"
|
||||
"Providing enable/disable argument will bulk-set the enable status of the provided platform"
|
||||
"list. If enable/disable is not provided, a list of supported platforms is printed.\n\n");
|
||||
help.wrap("This command configures the HECL project with the user's preferred target DataSpecs.\n\n"
|
||||
"Providing enable/disable argument will bulk-set the enable status of the provided spec(s)"
|
||||
"list. If enable/disable is not provided, a list of supported DataSpecs is printed.\n\n");
|
||||
help.endWrap();
|
||||
|
||||
help.secHead("OPTIONS");
|
||||
help.optionHead("<platname>...", "platform name(s)");
|
||||
help.optionHead("<specname>...", "DataSpec name(s)");
|
||||
help.beginWrap();
|
||||
help.wrap("Specifies platform-names to enable/disable");
|
||||
help.endWrap();
|
||||
}
|
||||
|
||||
std::string toolName() const {return "platform";}
|
||||
std::string toolName() const {return "spec";}
|
||||
|
||||
int run()
|
||||
{
|
||||
|
@ -50,4 +50,4 @@ public:
|
|||
}
|
||||
};
|
||||
|
||||
#endif // CTOOL_PLATFORM
|
||||
#endif // CTOOL_SPEC
|
|
@ -33,5 +33,5 @@ HEADERS += \
|
|||
CToolClean.hpp \
|
||||
CToolAdd.hpp \
|
||||
CToolRemove.hpp \
|
||||
CToolPlatform.hpp
|
||||
CToolSpec.hpp
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
#include "CToolBase.hpp"
|
||||
#include "CToolInit.hpp"
|
||||
#include "CToolPlatform.hpp"
|
||||
#include "CToolSpec.hpp"
|
||||
#include "CToolAdd.hpp"
|
||||
#include "CToolRemove.hpp"
|
||||
#include "CToolGroup.hpp"
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
_hecl ()
|
||||
{
|
||||
local word=${COMP_WORDS[COMP_CWORD]}
|
||||
local filecmds=(init platform add remove group cook clean package)
|
||||
local filecmds=(init spec add remove group cook clean package)
|
||||
|
||||
if [ $COMP_CWORD == 1 ]
|
||||
then
|
||||
|
@ -15,7 +15,7 @@ _hecl ()
|
|||
init|add|remove|group|cook|clean|package)
|
||||
COMPREPLY=($(compgen -f -- "${word}"))
|
||||
;;
|
||||
platform)
|
||||
spec)
|
||||
COMPREPLY=($(compgen -W "enable disable" "${word}"))
|
||||
;;
|
||||
help)
|
||||
|
|
|
@ -207,24 +207,24 @@ public:
|
|||
virtual bool removeGroup(const HECL::ProjectPath& path);
|
||||
|
||||
/**
|
||||
* @brief Return map populated with platforms targetable by this project interface
|
||||
* @brief Return map populated with dataspecs targetable by this project interface
|
||||
* @return Platform map with name-string keys and enable-status values
|
||||
*/
|
||||
virtual const std::map<const std::string, const bool>& listPlatforms();
|
||||
virtual const std::map<const std::string, const bool>& listDataSpecs();
|
||||
|
||||
/**
|
||||
* @brief Enable persistent user preference for particular platform string(s)
|
||||
* @param platforms String(s) representing unique platform(s) from listPlatforms
|
||||
* @brief Enable persistent user preference for particular spec string(s)
|
||||
* @param specs String(s) representing unique spec(s) from listDataSpecs
|
||||
* @return true on success
|
||||
*/
|
||||
virtual bool enablePlatforms(const std::vector<std::string>& platforms);
|
||||
virtual bool enableDataSpecs(const std::vector<std::string>& specs);
|
||||
|
||||
/**
|
||||
* @brief Disable persistent user preference for particular platform string(s)
|
||||
* @param platform String(s) representing unique platform(s) from listPlatforms
|
||||
* @brief Disable persistent user preference for particular spec string(s)
|
||||
* @param specs String(s) representing unique spec(s) from listDataSpecs
|
||||
* @return true on success
|
||||
*/
|
||||
virtual bool disablePlatforms(const std::vector<std::string>& platforms);
|
||||
virtual bool disableDataSpecs(const std::vector<std::string>& specs);
|
||||
|
||||
/**
|
||||
* @brief Begin cook process for specified directory
|
||||
|
|
|
@ -9,6 +9,10 @@
|
|||
namespace HECLDatabase
|
||||
{
|
||||
|
||||
/**********************************************
|
||||
* Project::ConfigFile
|
||||
**********************************************/
|
||||
|
||||
static inline bool CheckNewLineAdvance(std::string::const_iterator& it)
|
||||
{
|
||||
if (*it == '\n' || *it == '\0')
|
||||
|
@ -110,6 +114,10 @@ bool Project::ConfigFile::checkForLine(const std::string& refLine)
|
|||
return false;
|
||||
}
|
||||
|
||||
/**********************************************
|
||||
* Project
|
||||
**********************************************/
|
||||
|
||||
Project::Project(const std::string& rootPath)
|
||||
: m_rootPath(rootPath)
|
||||
{
|
||||
|
@ -153,15 +161,15 @@ bool Project::removeGroup(const HECL::ProjectPath& path)
|
|||
{
|
||||
}
|
||||
|
||||
const std::map<const std::string, const bool>& Project::listPlatforms()
|
||||
const std::map<const std::string, const bool>& Project::listDataSpecs()
|
||||
{
|
||||
}
|
||||
|
||||
bool Project::enablePlatforms(const std::vector<std::string>& platforms)
|
||||
bool Project::enableDataSpecs(const std::vector<std::string>& specs)
|
||||
{
|
||||
}
|
||||
|
||||
bool Project::disablePlatforms(const std::vector<std::string>& platforms)
|
||||
bool Project::disableDataSpecs(const std::vector<std::string>& specs)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue