Add debug configuration for codelite projets
[bertos.git] / wizard / plugins / codelite.py
index 76724599b745800d89044d618ea9b23669a847f0..c5e7007d704337d8554107ef03b73736302b98ae 100644 (file)
@@ -1,8 +1,32 @@
 #!/usr/bin/env python
 # encoding: utf-8
 #
-# Copyright 2009 Develer S.r.l. (http://www.develer.com/)
-# All rights reserved.
+# This file is part of BeRTOS.
+#
+# Bertos is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+#
+# Copyright 2008 Develer S.r.l. (http://www.develer.com/)
 #
 # $Id$
 #
@@ -13,6 +37,26 @@ import os
 
 import const
 
+## Plugin interface ##
+
+PLUGIN_NAME = "CodeLite"
+
+PLUGIN_DESCRIPTION = "Create CodeLite project files"
+
+def createProject(project_info):
+    """
+    Function that creates codelite projects and return the project relevant file.
+    """
+    directory = project_info.info("PROJECT_PATH")
+    prjdir = directory + os.sep + os.path.basename(directory)
+    workspace = codeliteWorkspaceGenerator(project_info)
+    open(directory + os.sep + os.path.basename(prjdir) + ".workspace", "w").write(workspace)
+    project = codeliteProjectGenerator(project_info)
+    open(directory + os.sep + os.path.basename(prjdir) + ".project", "w").write(project)
+    return directory + os.sep + os.path.basename(prjdir) + ".workspace"
+
+####
+
 def clFiles(file_dict, directory):
     """
     Creates the list of the lines for the files founded in file_dict, using
@@ -52,11 +96,14 @@ def codeliteProjectGenerator(project_info):
     """
     template = open("cltemplates/bertos.project", "r").read()
     filelist = "\n".join(clFiles(findSources(project_info.info("PROJECT_PATH")), ""))
+    debugger_path = project_info.info("TOOLCHAIN")["path"].replace("gcc", "gdb")
     while template.find("$filelist") != -1:
         template = template.replace("$filelist", filelist)
     project_name = os.path.basename(project_info.info("PROJECT_PATH"))
     while template.find("$project") != -1:
         template = template.replace("$project", project_name)
+    while template.find("$debuggerpath") != -1:
+        template = template.replace("$debuggerpath", debugger_path)
     return template
 
 def codeliteWorkspaceGenerator(project_info):
@@ -68,14 +115,3 @@ def codeliteWorkspaceGenerator(project_info):
     while template.find("$project") != -1:
         template = template.replace("$project", project_name)
     return template
-
-def createProject(project_info):
-    """
-    Function that creates codelite projects.
-    """
-    directory = project_info.info("PROJECT_PATH")
-    prjdir = directory + "/" + os.path.basename(directory)
-    workspace = codeliteWorkspaceGenerator(project_info)
-    open(directory + "/" + os.path.basename(prjdir) + ".workspace", "w").write(workspace)
-    project = codeliteProjectGenerator(project_info)
-    open(directory + "/" + os.path.basename(prjdir) + ".project", "w").write(project)