[buildj] Moved over from JSON to YAML
- From: Alberto Ruiz <aruiz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [buildj] Moved over from JSON to YAML
- Date: Tue, 28 Sep 2010 23:01:52 +0000 (UTC)
commit bd6f5e3fd9d7669bf149e4d368c21fe62856a249
Author: Alberto Ruiz <aruiz gnome org>
Date: Tue Sep 28 23:54:00 2010 +0100
Moved over from JSON to YAML
buildj.py | 22 ++++-------------
cc/project.js | 52 -----------------------------------------
cc/project.yaml | 52 +++++++++++++++++++++++++++++++++++++++++
project.js | 69 -------------------------------------------------------
project.yaml | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++
wscript | 3 +-
6 files changed, 121 insertions(+), 140 deletions(-)
---
diff --git a/buildj.py b/buildj.py
index decb368..e91ea6e 100644
--- a/buildj.py
+++ b/buildj.py
@@ -1,15 +1,4 @@
-try:
- import json
-except ImportError:
- # Python < 2.6 doesn't have json
- import simplejson as json
-
-try:
- json.decoder
-except AttributeError:
- # this is json-py and not Python's json
- import simplejson as json
-
+import yaml
import re
WAF_TOOLS = {'cc': 'compiler_cc',
@@ -37,7 +26,7 @@ CC_TOOLCHAIN = {'ADDR2LINE': 'addr2line',
'STRINGS': 'strings', 'WINDRES': 'windres',
'AR': 'ar', 'RANLIB': 'ranlib', 'STRIP': 'strip'}
-DEFAULT_BUILDJ_FILE="project.js"
+DEFAULT_BUILDJ_FILE="project.yaml"
def normalize_package_name (name):
name = name.upper ()
@@ -45,11 +34,10 @@ def normalize_package_name (name):
return nonalpha.sub ('_', name)
class ProjectFile:
- def __init__ (self, project="project.js"):
- dec = json.decoder.JSONDecoder ()
+ def __init__ (self, project=DEFAULT_BUILDJ_FILE):
prj = open(project)
data = prj.read ()
- self._project = dec.decode (data)
+ self._project = yaml.load (data)
prj.close ()
#TODO: try to raise some meaningful (and consistent) error
@@ -63,7 +51,7 @@ class ProjectFile:
for subdir in self._project.get ('subdirs', []):
prj = open ('%s/%s' % (subdir, project))
data = prj.read ()
- subproject = dec.decode (data)
+ subproject = yaml.load (data)
for target_name, target_data in subproject['targets'].iteritems():
assert target_name not in self._project['targets']
if 'path' in target_data:
diff --git a/cc/project.yaml b/cc/project.yaml
new file mode 100644
index 0000000..231b445
--- /dev/null
+++ b/cc/project.yaml
@@ -0,0 +1,52 @@
+targets:
+ my_program:
+ type: program
+ tool: cc
+ input:
+ - program.c
+
+ my_shared_lib:
+ type: sharedlib
+ tool: cc
+ input:
+ - lib.c
+ version: 1.2.3
+
+ my_static_lib:
+ type: staticlib
+ tool: cc
+ input:
+ - lib.c
+
+ my_static_program:
+ type: program
+ tool: cc
+ input:
+ - program_with_lib.c
+ uses:
+ - my_static_lib
+
+ my_shared_program:
+ type: program
+ tool: cc
+ input:
+ - program_with_lib.c
+ uses:
+ - my_shared_lib
+
+ my_gtk_program:
+ type: program
+ tool: cc
+ input:
+ - gtk_program.c
+ packages:
+ - gtk+-2.0
+
+ my_program_with_defines:
+ type: program
+ tool: cc
+ input:
+ - program_with_defines.c
+ defines:
+ - FOO
+ - BAR="123"
diff --git a/project.yaml b/project.yaml
new file mode 100644
index 0000000..ab9712b
--- /dev/null
+++ b/project.yaml
@@ -0,0 +1,63 @@
+project:
+ name: CC Test
+ version: 0.0.1
+ url: http://www.codethink.co.uk
+
+options:
+ foo:
+ description: Makes gtk+ mandatory
+ default: True
+
+requires:
+ glib-2.0:
+ type: package
+ mandatory: True
+ gtk+-2.0:
+ type: package
+ version: 2.14
+ mandatory: ${foo}
+
+subdirs:
+ - cc
+
+targets:
+ my_cpp_program:
+ type: program
+ tool: c++
+ path: cpp
+ input:
+ - cpprogram.cpp
+ uses:
+ - my_static_lib
+
+ my_vala_program:
+ type: program
+ tool: vala
+ input:
+ - vala_program.vala
+ uses:
+ - my_vala_shared_lib
+ packages:
+ - gtk+-2.0
+
+ my_vala_shared_lib:
+ type: sharedlib
+ tool: vala
+ path: valalib
+ input:
+ - vala_library.vala
+ version: 12.4.5
+ gir: Bleh-1.0
+
+ my_vala_static_lib:
+ type: staticlib
+ tool: vala
+ input:
+ - vala_library.vala
+
+ my_cpp_program_data:
+ tool: data
+ input:
+ - data/buildj.svg
+ dir:
+
diff --git a/wscript b/wscript
index a4ee3c1..48001d3 100644
--- a/wscript
+++ b/wscript
@@ -2,7 +2,7 @@ import os
import Utils
import Options
from buildj import *
-import extra_tools
+#import extra_tools
APPNAME = None
VERSION = None
@@ -92,7 +92,6 @@ def configure (conf):
conf.check_cfg (package="glib-2.0", mandatory=True)
conf.write_config_header()
- conf.write_config_vapi()
def build(bld):
project = parse_project_file ()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]