X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcreaDevManagerLib%2FmodelCDMProject.h;h=c585ea044fc648a895c629b83457f409f4fd45b7;hb=bae167768b5d3ccae6ec9b04c844d80e0368a52d;hp=085d9e4f6e75dd2b2de966e697e6f4bee9c9e25f;hpb=03aef77bacc41f53b1d21b88e683302e7e1600c2;p=crea.git diff --git a/lib/creaDevManagerLib/modelCDMProject.h b/lib/creaDevManagerLib/modelCDMProject.h index 085d9e4..c585ea0 100644 --- a/lib/creaDevManagerLib/modelCDMProject.h +++ b/lib/creaDevManagerLib/modelCDMProject.h @@ -44,6 +44,7 @@ #include "modelCDMAppli.h" #include "modelCDMPackage.h" #include "modelCDMCMakeListsFile.h" +#include "modelCDMCodeFile.h" /** * Project model class. @@ -142,7 +143,7 @@ public: //Creations /** - * Creates a package and sets it as a children of the project. This method creates the package in the hard drive and also in the model. + * Creates a package and sets it as a children of the project. This method creates the package in the hard drive and also in the model. The created package is included in the project's CMakeLists file. * @param name Name of the package. * @param result Result of the operation. * @param authors Authors of the operation. If any space is found, it will be replaced by '_'. @@ -176,6 +177,7 @@ public: /** * Creates an application and sets it as a children of the appli folder in the project. This method creates the library in the hard drive and also in the model. * @param name Application name. + * @param type Application type. 0=console application, 1=GUI application (wxWidgets). * @param result Result of the operation. * @param path Path of the application if not in the application folder. This parameter is not used (for now). * @return The result of the creation. If everything goes well it returns true, else it returns false. @@ -199,7 +201,7 @@ public: */ modelCDMIProjectTreeNode* CreateBlackBox( const std::string& name, - const std::string& package = "", //if empty converts into "/bbtk_*projectName*_PKG" + const std::string& package = "", //if empty converts into "[projectName]" const std::string& authors = "unknown", const std::string& authorsEmail = "", const std::string& categories = "empty", @@ -240,6 +242,7 @@ public: /** * Launches in console the bbPlugPackage command to connect the project to the .bbtk folder in the hard drive. * @param result Result message for connecting the project. + * @param folder Folder to make connection with. It must contain the bbtkPackage file * @return if the command cannot be executed it return false. */ bool Connect(std::string*& result, const std::string& folder); @@ -250,6 +253,33 @@ public: */ void CheckStructure(std::map& properties); + /** + * Checks if the given package is included in the CMakeLists file. + * @param package_name Name of the package to check. + * @return True if the package is included, otherwise returns False. + */ + bool IsPackageIncluded(const std::string& package_name); + + /** + * Sets the inclusion of the package in the project's CMakeLists file. If the package inclusion already exist in file, then the line is uncommented/commented depending on the requested action. If the package inclusion doesn't exist yet, then it is included if the request is an inclusion. + * @param package_name Name of the package to include/exclude. + * @param toInclude True if the request is an inclusion, False otherwise. + * @return True if the request was processed successfully. + */ + bool SetPackageInclude(const std::string& package_name, const bool& toInclude); + + /** + * Checks the project folder's CMakeLists file to check which third party libraries are enabled. + * @return A map with the name of the library and if it's included in the CMakeLists file. + */ + std::map Get3rdPartyLibraries(); + + /** + * Sets the 3rd party library inclusion in the CMakeLists file. + * @return if the operation was successful. + */ + bool Set3rdPartyLibrary(const std::string& library_name, const bool& toInclude); + private: