Skip to content

Commit 07e7e85

Browse files
authored
removing ConfigParseState enum (#442)
#changelog #simplification
1 parent 63934b6 commit 07e7e85

4 files changed

Lines changed: 71 additions & 161 deletions

File tree

commandLine/src/addons/ofAddon.cpp

Lines changed: 39 additions & 124 deletions
Original file line numberDiff line numberDiff line change
@@ -29,117 +29,36 @@ ofAddon::ofAddon(){
2929
isLocalAddon = false;
3030
pathToProject = ".";
3131
pathToOF = "../../../";
32-
currentParseState = Unknown;
3332
}
3433

35-
ofAddon::ConfigParseState ofAddon::stateFromString(string name){
36-
if(name=="meta") return Meta;
37-
if(name=="common") return Common;
38-
if(name=="linux64") return Linux64;
39-
if(name=="linux") return Linux;
40-
if(name=="msys2") return MinGW;
41-
if(name=="vs") return VS;
42-
if(name=="linuxarmv6l") return LinuxARMv6;
43-
if(name=="linuxarmv7l") return LinuxARMv7;
44-
if(name=="linuxaarch64") return LinuxAArch64;
45-
if(name=="android/armeabi") return AndroidARMv5;
46-
if(name=="android/armeabi-v7a") return AndroidARMv7;
47-
if(name=="android/x86") return Androidx86;
48-
if(name=="emscripten") return Emscripten;
49-
if(name=="ios") return iOS;
50-
if(name=="osx") return OSX;
51-
return Unknown;
52-
}
53-
54-
string ofAddon::stateName(ofAddon::ConfigParseState state){
55-
switch(state){
56-
case Meta:
57-
return "meta";
58-
case Common:
59-
return "common";
60-
case Linux:
61-
return "linux";
62-
case Linux64:
63-
return "linux64";
64-
case MinGW:
65-
return "msys2";
66-
case VS:
67-
return "vs";
68-
case LinuxARMv6:
69-
return "linuxarmv6";
70-
case LinuxARMv7:
71-
return "linuxarmv7";
72-
case LinuxAArch64:
73-
return "linuxaarch64";
74-
case AndroidARMv5:
75-
return "android/armeabi";
76-
case AndroidARMv7:
77-
return "android/armeabi-v7a";
78-
case Androidx86:
79-
return "android/x86";
80-
case Emscripten:
81-
return "emscripten";
82-
case iOS:
83-
return "ios";
84-
case OSX:
85-
return "osx";
86-
case Unknown:
87-
default:
88-
return "unknown";
89-
}
90-
}
91-
92-
bool ofAddon::checkCorrectPlatform(ConfigParseState state){
93-
switch(state){
94-
case Meta:
95-
return true;
96-
case Common:
34+
bool ofAddon::checkCorrectPlatform(const string & state) {
35+
if (state == "meta" || state == "common") {
9736
return true;
98-
case Linux:
99-
case Linux64:
100-
case MinGW:
101-
case VS:
102-
case LinuxARMv6:
103-
case LinuxARMv7:
104-
case AndroidARMv5:
105-
case AndroidARMv7:
106-
case Androidx86:
107-
case Emscripten:
108-
case iOS:
109-
case OSX:
110-
return platform==stateName(state);
111-
case Unknown:
112-
default:
113-
return false;
11437
}
38+
if (std::find(parseStates.begin(), parseStates.end(), state) != parseStates.end()) {
39+
if (platform == state) {
40+
return true;
41+
}
42+
}
43+
return false;
44+
// return std::find(parseStates.begin(),
45+
// parseStates.end(),
46+
// state) != parseStates.end();
11547
}
11648

11749

118-
bool ofAddon::checkCorrectVariable(string variable, ConfigParseState state){
119-
switch(state){
120-
case Meta:
121-
return std::find(AddonMetaVariables.begin(),
122-
AddonMetaVariables.end(),
123-
variable) != AddonMetaVariables.end();
124-
case Common:
125-
case Linux:
126-
case Linux64:
127-
case MinGW:
128-
case VS:
129-
case LinuxARMv6:
130-
case LinuxARMv7:
131-
case AndroidARMv5:
132-
case AndroidARMv7:
133-
case Androidx86:
134-
case Emscripten:
135-
case iOS:
136-
case OSX:
137-
return std::find(AddonProjectVariables.begin(),
138-
AddonProjectVariables.end(),
139-
variable) != AddonProjectVariables.end();
140-
case Unknown:
141-
default:
142-
return false;
50+
bool ofAddon::checkCorrectVariable(const string & variable, const string & state){
51+
if (state == "meta") {
52+
return std::find(AddonMetaVariables.begin(),
53+
AddonMetaVariables.end(),
54+
variable) != AddonMetaVariables.end();
55+
}
56+
else if (state == "osx") {
57+
return std::find(AddonProjectVariables.begin(),
58+
AddonProjectVariables.end(),
59+
variable) != AddonProjectVariables.end();
60+
} else {
61+
return checkCorrectPlatform(state);
14362
}
14463
}
14564

@@ -235,7 +154,7 @@ void ofAddon::addReplaceStringVector(vector<LibraryBinary> & variable, string va
235154
}
236155

237156
void ofAddon::parseVariableValue(string variable, string value, bool addToValue, string line, int lineNum){
238-
if(variable == ADDON_NAME){
157+
if(variable == "ADDON_NAME"){
239158
if(value!=name){
240159
ofLogError() << "Error parsing " << name << " addon_config.mk" << "\n\t\t"
241160
<< "line " << lineNum << ": " << line << "\n\t\t"
@@ -252,31 +171,31 @@ void ofAddon::parseVariableValue(string variable, string value, bool addToValue,
252171
addonRelPath = addonPath;
253172
}
254173

255-
if(variable == ADDON_DESCRIPTION){
174+
if(variable == "ADDON_DESCRIPTION"){
256175
addReplaceString(description,value,addToValue);
257176
return;
258177
}
259178

260-
if(variable == ADDON_AUTHOR){
179+
if(variable == "ADDON_AUTHOR"){
261180
addReplaceString(author,value,addToValue);
262181
return;
263182
}
264183

265-
if(variable == ADDON_TAGS){
184+
if(variable == "ADDON_TAGS"){
266185
addReplaceStringVector(tags,value,"",addToValue);
267186
return;
268187
}
269188

270-
if(variable == ADDON_URL){
189+
if(variable == "ADDON_URL"){
271190
addReplaceString(url,value,addToValue);
272191
return;
273192
}
274193

275-
if(variable == ADDON_DEPENDENCIES){
194+
if(variable == "ADDON_DEPENDENCIES"){
276195
addReplaceStringVector(dependencies,value,"",addToValue);
277196
}
278197

279-
if(variable == ADDON_INCLUDES){
198+
if(variable == "ADDON_INCLUDES"){
280199
addReplaceStringVector(includePaths, value, addonRelPath.string(), addToValue);
281200
}
282201

@@ -415,11 +334,13 @@ void ofAddon::parseConfig(){
415334
// found section?
416335
if(line[line.size()-1]==':'){
417336
ofStringReplace(line,":","");
418-
currentParseState = stateFromString(line);
419-
if(currentParseState == Unknown){
337+
// FIXME: Remove
338+
currentParseState = line;
339+
340+
if (std::find(parseStates.begin(), parseStates.end(), currentParseState) == parseStates.end()) {
420341
ofLogError() << "Error parsing " << name << " addon_config.mk" << "\n\t\t"
421342
<< "line " << lineNum << ": " << originalLine << "\n\t\t"
422-
<< "sectionName " << stateName(currentParseState) << " not recognized";
343+
<< "sectionName " << currentParseState << " not recognized";
423344
}
424345
continue;
425346
}
@@ -439,16 +360,18 @@ void ofAddon::parseConfig(){
439360
variable = ofTrim(varValue[0]);
440361
value = ofTrim(varValue[1]);
441362

363+
// FIXME: This seems to be meaningless
442364
if(!checkCorrectPlatform(currentParseState)){
443365
continue;
444366
}
445367

446-
if(!checkCorrectVariable(variable,currentParseState)){
368+
if(!checkCorrectVariable(variable, currentParseState)){
447369
ofLogError() << "Error parsing " << name << " addon_config.mk" << "\n\t\t"
448370
<< "line " << lineNum << ": " << originalLine << "\n\t\t"
449-
<< "variable " << variable << " not recognized for section " << stateName(currentParseState);
371+
<< "variable " << variable << " not recognized for section " << currentParseState;
450372
continue;
451373
}
374+
452375
parseVariableValue(variable, value, addToValue, originalLine, lineNum);
453376
}
454377
}
@@ -640,8 +563,6 @@ bool ofAddon::fromFS(const fs::path & path, const string & platform){
640563
}
641564

642565

643-
644-
645566
paths.sort();
646567

647568
for (auto & p : paths) {
@@ -650,12 +571,6 @@ bool ofAddon::fromFS(const fs::path & path, const string & platform){
650571

651572
parseConfig();
652573

653-
// alert ("--- LIST LIBS", 35);
654-
// for (auto & l : libs) {
655-
// alert (l.path, 35);
656-
// }
657-
// alert ("--- LIST LIBS", 35);
658-
659574
return true;
660575
}
661576

commandLine/src/addons/ofAddon.h

Lines changed: 30 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,32 @@ using std::string;
1616
using std::vector;
1717
// #include <map>
1818
// About Metadata
19-
const string ADDON_NAME = "ADDON_NAME";
20-
const string ADDON_DESCRIPTION = "ADDON_DESCRIPTION";
21-
const string ADDON_AUTHOR = "ADDON_AUTHOR";
22-
const string ADDON_TAGS = "ADDON_TAGS";
23-
const string ADDON_URL = "ADDON_URL";
24-
25-
const vector<string> AddonMetaVariables = {
26-
ADDON_NAME,
27-
ADDON_DESCRIPTION,
28-
ADDON_AUTHOR,
29-
ADDON_TAGS,
30-
ADDON_URL,
19+
20+
const vector<string> AddonMetaVariables {
21+
"ADDON_NAME",
22+
"ADDON_DESCRIPTION",
23+
"ADDON_AUTHOR",
24+
"ADDON_TAGS",
25+
"ADDON_URL",
26+
};
27+
28+
const vector<string> parseStates {
29+
"meta",
30+
"common",
31+
"linux",
32+
"linux64",
33+
"msys2",
34+
"vs",
35+
"linuxarmv6l",
36+
"linuxarmv7l",
37+
"linuxaarch64",
38+
"android/armeabi",
39+
"android/armeabi-v7a",
40+
"android/x86",
41+
"emscripten",
42+
"ios",
43+
"osx",
44+
"tvos",
3145
};
3246

3347
// About Project settings
@@ -143,25 +157,8 @@ class ofAddon {
143157
}
144158

145159
private:
146-
147-
enum ConfigParseState{
148-
Meta,
149-
Common,
150-
Linux,
151-
Linux64,
152-
MinGW,
153-
VS,
154-
LinuxARMv6,
155-
LinuxARMv7,
156-
LinuxAArch64,
157-
AndroidARMv5,
158-
AndroidARMv7,
159-
Androidx86,
160-
Emscripten,
161-
iOS,
162-
OSX,
163-
Unknown
164-
} currentParseState;
160+
161+
string currentParseState { "" };
165162

166163
void parseConfig();
167164
void parseVariableValue(string variable, string value, bool addToValue, string line, int lineNum);
@@ -170,10 +167,8 @@ class ofAddon {
170167
void addReplaceStringVector(vector<LibraryBinary> & variable, string value, string prefix, bool addToVariable);
171168
void exclude(vector<string> & variable, vector<string> exclusions);
172169
void exclude(vector<LibraryBinary> & variable, vector<string> exclusions);
173-
ConfigParseState stateFromString(string name);
174-
string stateName(ConfigParseState state);
175-
bool checkCorrectVariable(string variable, ConfigParseState state);
176-
bool checkCorrectPlatform(ConfigParseState state);
170+
bool checkCorrectVariable(const string & variable, const string & state);
171+
bool checkCorrectPlatform(const string & state);
177172

178173
string platform;
179174

commandLine/src/main.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ bool busingEnvVar;
5454
bool bVerbose;
5555
bool bAddonsPassedIn;
5656
bool bForce; // force even if things like ofRoot seem wrong of if update folder looks wonky
57-
int mode; // what mode are we in?
57+
pgMode mode; // what mode are we in?
5858
bool bRecursive; // do we recurse in update mode?
5959
bool bHelpRequested; // did we request help?
6060
bool bListTemplates; // did we request help?

commandLine/src/projects/baseProject.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#pragma once
22

3-
#define PG_VERSION "27"
3+
#define PG_VERSION "28"
44

55
#include "ofAddon.h"
66
#include "ofFileUtils.h"

0 commit comments

Comments
 (0)