From 5a2806c3c0f5021b81fc74bd8e3d939df98d7135 Mon Sep 17 00:00:00 2001 From: James Duley Date: Fri, 24 Apr 2015 16:18:24 +1200 Subject: [PATCH] OP-1853 Ground build tidy: Remove hardcoded prefix from uavobjgenerator output --- Makefile | 11 +++-- .../flight/uavobjectgeneratorflight.cpp | 2 +- .../generators/gcs/uavobjectgeneratorgcs.cpp | 2 +- .../java/uavobjectgeneratorjava.cpp | 2 +- .../matlab/uavobjectgeneratormatlab.cpp | 2 +- .../python/uavobjectgeneratorpython.cpp | 2 +- .../wireshark/uavobjectgeneratorwireshark.cpp | 2 +- ground/uavobjgenerator/main.cpp | 45 ++++++------------- 8 files changed, 25 insertions(+), 43 deletions(-) diff --git a/Makefile b/Makefile index d9711b0a1..205dba8a5 100644 --- a/Makefile +++ b/Makefile @@ -176,15 +176,14 @@ uavobjects: $(addprefix uavobjects_, $(UAVOBJ_TARGETS)) UAVOBJ_XML_DIR := $(ROOT_DIR)/shared/uavobjectdefinition UAVOBJ_OUT_DIR := $(BUILD_DIR)/uavobject-synthetics -DIRS += $(UAVOBJ_OUT_DIR) - -uavobjects_%: $(UAVOBJ_OUT_DIR) uavobjgenerator - $(V1) ( cd $(UAVOBJ_OUT_DIR) && \ +uavobjects_%: uavobjgenerator + @$(MKDIR) -p $(UAVOBJ_OUT_DIR)/$* + $(V1) ( cd $(UAVOBJ_OUT_DIR)/$* && \ $(UAVOBJGENERATOR) -$* $(UAVOBJ_XML_DIR) $(ROOT_DIR) ; \ ) -uavobjects_test: $(UAVOBJ_OUT_DIR) uavobjgenerator - $(V1) $(UAVOBJGENERATOR) -v -none $(UAVOBJ_XML_DIR) $(ROOT_DIR) +uavobjects_test: uavobjgenerator + $(V1) $(UAVOBJGENERATOR) -v $(UAVOBJ_XML_DIR) $(ROOT_DIR) uavobjects_clean: @$(ECHO) " CLEAN $(call toprel, $(UAVOBJ_OUT_DIR))" diff --git a/ground/uavobjgenerator/generators/flight/uavobjectgeneratorflight.cpp b/ground/uavobjgenerator/generators/flight/uavobjectgeneratorflight.cpp index 81636bf82..4e08017cd 100644 --- a/ground/uavobjgenerator/generators/flight/uavobjectgeneratorflight.cpp +++ b/ground/uavobjgenerator/generators/flight/uavobjectgeneratorflight.cpp @@ -36,7 +36,7 @@ bool UAVObjectGeneratorFlight::generate(UAVObjectParser *parser, QString templat QString flightObjInit, objInc, objFileNames, objNames; qint32 sizeCalc; flightCodePath = QDir(templatepath + QString(FLIGHT_CODE_DIR)); - flightOutputPath = QDir(outputpath + QString("flight")); + flightOutputPath = QDir(outputpath); flightOutputPath.mkpath(flightOutputPath.absolutePath()); flightCodeTemplate = readFile(flightCodePath.absoluteFilePath("uavobject.c.template")); diff --git a/ground/uavobjgenerator/generators/gcs/uavobjectgeneratorgcs.cpp b/ground/uavobjgenerator/generators/gcs/uavobjectgeneratorgcs.cpp index bfb05a36c..e5fc3a354 100644 --- a/ground/uavobjgenerator/generators/gcs/uavobjectgeneratorgcs.cpp +++ b/ground/uavobjgenerator/generators/gcs/uavobjectgeneratorgcs.cpp @@ -36,7 +36,7 @@ bool UAVObjectGeneratorGCS::generate(UAVObjectParser *parser, QString templatepa << "UINT8" << "UINT16" << "UINT32" << "FLOAT32" << "ENUM"; gcsCodePath = QDir(templatepath + QString(GCS_CODE_DIR)); - gcsOutputPath = QDir(outputpath + QString("gcs")); + gcsOutputPath = QDir(outputpath); gcsOutputPath.mkpath(gcsOutputPath.absolutePath()); gcsCodeTemplate = readFile(gcsCodePath.absoluteFilePath("uavobject.cpp.template")); diff --git a/ground/uavobjgenerator/generators/java/uavobjectgeneratorjava.cpp b/ground/uavobjgenerator/generators/java/uavobjectgeneratorjava.cpp index bbd788c1f..b8229feec 100644 --- a/ground/uavobjgenerator/generators/java/uavobjectgeneratorjava.cpp +++ b/ground/uavobjgenerator/generators/java/uavobjectgeneratorjava.cpp @@ -37,7 +37,7 @@ bool UAVObjectGeneratorJava::generate(UAVObjectParser *parser, QString templatep << "UINT8" << "UINT16" << "UINT32" << "FLOAT32" << "ENUM"; javaCodePath = QDir(templatepath + QString(JAVA_TEMPLATE_DIR)); - javaOutputPath = QDir(outputpath + QString("java")); + javaOutputPath = QDir(outputpath); javaOutputPath.mkpath(javaOutputPath.absolutePath()); javaCodeTemplate = readFile(javaCodePath.absoluteFilePath("uavobject.java.template")); diff --git a/ground/uavobjgenerator/generators/matlab/uavobjectgeneratormatlab.cpp b/ground/uavobjgenerator/generators/matlab/uavobjectgeneratormatlab.cpp index e47db4316..3ecaf49a1 100644 --- a/ground/uavobjgenerator/generators/matlab/uavobjectgeneratormatlab.cpp +++ b/ground/uavobjgenerator/generators/matlab/uavobjectgeneratormatlab.cpp @@ -36,7 +36,7 @@ bool UAVObjectGeneratorMatlab::generate(UAVObjectParser *parser, QString templat << "1" << "2" << "4" << "4" << "1"; QDir matlabTemplatePath = QDir(templatepath + QString(MATLAB_CODE_DIR)); - QDir matlabOutputPath = QDir(outputpath + QString("matlab")); + QDir matlabOutputPath = QDir(outputpath); matlabOutputPath.mkpath(matlabOutputPath.absolutePath()); QString matlabCodeTemplate = readFile(matlabTemplatePath.absoluteFilePath("uavobject.m.template")); diff --git a/ground/uavobjgenerator/generators/python/uavobjectgeneratorpython.cpp b/ground/uavobjgenerator/generators/python/uavobjectgeneratorpython.cpp index 2703e59cc..80c3883ba 100644 --- a/ground/uavobjgenerator/generators/python/uavobjectgeneratorpython.cpp +++ b/ground/uavobjgenerator/generators/python/uavobjectgeneratorpython.cpp @@ -31,7 +31,7 @@ bool UAVObjectGeneratorPython::generate(UAVObjectParser *parser, QString templat { // Load template and setup output directory pythonCodePath = QDir(templatepath + QString("flight/modules/FlightPlan/lib")); - pythonOutputPath = QDir(outputpath + QString("python")); + pythonOutputPath = QDir(outputpath); pythonOutputPath.mkpath(pythonOutputPath.absolutePath()); pythonCodeTemplate = readFile(pythonCodePath.absoluteFilePath("uavobject.pyt.template")); if (pythonCodeTemplate.isEmpty()) { diff --git a/ground/uavobjgenerator/generators/wireshark/uavobjectgeneratorwireshark.cpp b/ground/uavobjgenerator/generators/wireshark/uavobjectgeneratorwireshark.cpp index fe6ae4a33..a21067c91 100644 --- a/ground/uavobjgenerator/generators/wireshark/uavobjectgeneratorwireshark.cpp +++ b/ground/uavobjgenerator/generators/wireshark/uavobjectgeneratorwireshark.cpp @@ -37,7 +37,7 @@ bool UAVObjectGeneratorWireshark::generate(UAVObjectParser *parser, QString temp wiresharkCodePath = QDir(templatepath + QString("ground/openpilotgcs/src/plugins/uavobjects/wireshark")); - wiresharkOutputPath = QDir(outputpath + QString("wireshark")); + wiresharkOutputPath = QDir(outputpath); wiresharkOutputPath.mkpath(wiresharkOutputPath.absolutePath()); wiresharkCodeTemplate = readFile(wiresharkCodePath.absoluteFilePath("op-uavobjects/packet-op-uavobjects.c.template")); diff --git a/ground/uavobjgenerator/main.cpp b/ground/uavobjgenerator/main.cpp index 55de04f3d..c568bfc2e 100644 --- a/ground/uavobjgenerator/main.cpp +++ b/ground/uavobjgenerator/main.cpp @@ -47,7 +47,7 @@ using namespace std; */ void usage() { - cout << "Usage: uavobjectgenerator [-gcs] [-flight] [-java] [-python] [-matlab] [-wireshark] [-none] [-v] xml_path template_base [UAVObj1] ... [UAVObjN]" << endl; + cout << "Usage: uavobjectgenerator [language] [-v] xml_path template_base [UAVObj1] ... [UAVObjN]" << endl; cout << "Languages: " << endl; cout << "\t-gcs build groundstation code" << endl; cout << "\t-flight build flight code" << endl; @@ -55,9 +55,8 @@ void usage() cout << "\t-python build python code" << endl; cout << "\t-matlab build matlab code" << endl; cout << "\t-wireshark build wireshark plugin" << endl; - cout << "\tIf no language is specified ( and not -none ) -> all are built." << endl; + cout << "\tIf no language is specified none are built - just parse xmls." << endl; cout << "Misc: " << endl; - cout << "\t-none build no language - just parse xml's" << endl; cout << "\t-h this help" << endl; cout << "\t-v verbose" << endl; cout << "\tinput_path path to UAVObject definition (.xml) files." << endl; @@ -109,9 +108,7 @@ int main(int argc, char *argv[]) bool do_python = (arguments_stringlist.removeAll("-python") > 0); bool do_matlab = (arguments_stringlist.removeAll("-matlab") > 0); bool do_wireshark = (arguments_stringlist.removeAll("-wireshark") > 0); - bool do_none = (arguments_stringlist.removeAll("-none") > 0); // - bool do_all = ((do_gcs || do_flight || do_java || do_python || do_matlab) == false); bool do_allObjects = true; if (arguments_stringlist.length() >= 2) { @@ -205,47 +202,33 @@ int main(int argc, char *argv[]) cout << "used units: " << parser->all_units.join(",").toStdString() << endl; } - if (do_none) { - return RETURN_OK; - } - - // generate flight code if wanted - if (do_flight | do_all) { + if (do_flight) { + // generate flight code if wanted cout << "generating flight code" << endl; UAVObjectGeneratorFlight flightgen; flightgen.generate(parser, templatepath, outputpath); - } - - // generate gcs code if wanted - if (do_gcs | do_all) { + } else if (do_gcs) { + // generate gcs code if wanted cout << "generating gcs code" << endl; UAVObjectGeneratorGCS gcsgen; gcsgen.generate(parser, templatepath, outputpath); - } - - // generate java code if wanted - if (do_java | do_all) { + } else if (do_java) { + // generate java code if wanted cout << "generating java code" << endl; UAVObjectGeneratorJava javagen; javagen.generate(parser, templatepath, outputpath); - } - - // generate python code if wanted - if (do_python | do_all) { + } else if (do_python) { + // generate python code if wanted cout << "generating python code" << endl; UAVObjectGeneratorPython pygen; pygen.generate(parser, templatepath, outputpath); - } - - // generate matlab code if wanted - if (do_matlab | do_all) { + } else if (do_matlab) { + // generate matlab code if wanted cout << "generating matlab code" << endl; UAVObjectGeneratorMatlab matlabgen; matlabgen.generate(parser, templatepath, outputpath); - } - - // generate wireshark plugin if wanted - if (do_wireshark | do_all) { + } else if (do_wireshark) { + // generate wireshark plugin if wanted cout << "generating wireshark code" << endl; UAVObjectGeneratorWireshark wiresharkgen; wiresharkgen.generate(parser, templatepath, outputpath);