@@ -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
237156void 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
0 commit comments