Skip to content

Commit

Permalink
Merge pull request #11 from steinwurf/use-new-waf
Browse files Browse the repository at this point in the history
Use new waf
  • Loading branch information
petya2164 committed Mar 30, 2017
2 parents 62891ed + 95eca0a commit b016657
Show file tree
Hide file tree
Showing 6 changed files with 56 additions and 88 deletions.
19 changes: 7 additions & 12 deletions .gitignore
Expand Up @@ -16,15 +16,16 @@

# Compiled Doxygen documentation
/doxygen/html
/doxygen/latex

# For projects that use Waf for building: http://code.google.com/p/waf/
# Waf files
waf-*
waf3-*
.waf-*
.waf3-*
.lock-*
build
bundle_dependencies
resolve_symlinks
resolved_dependencies

# Gnu Global tag files
GPATH
Expand All @@ -37,15 +38,13 @@ GTAGS
*.#*
*~

# compiled documentation
*.pdf

#Eclipse ignore
.cproject
.project
*.project
.metadata
local.properties
.classpath
.settings/

# Visual Studio ignore
*.bat
Expand All @@ -56,9 +55,5 @@ local.properties
*.sdf
*.opensdf
*.log
*.vcxproj*
VSProjects

# Benchmark output
figures_database
figures_database_detailed
figures_local
8 changes: 4 additions & 4 deletions buildbot.py
Expand Up @@ -34,13 +34,13 @@ def configure(properties):
if properties.get('build_distclean'):
command += ['distclean']

command += ['configure', '--git-protocol=git@']
command += ['configure', '--git_protocol=git@']

if 'waf_bundle_path' in properties:
command += ['--bundle-path=' + properties['waf_bundle_path']]
if 'waf_resolve_path' in properties:
command += ['--resolve_path=' + properties['waf_resolve_path']]

if 'dependency_project' in properties:
command += ['--{0}-use-checkout={1}'.format(
command += ['--{0}_checkout={1}'.format(
properties['dependency_project'],
properties['dependency_checkout'])]

Expand Down
45 changes: 18 additions & 27 deletions config.py
@@ -1,46 +1,32 @@
#!/usr/bin/env python
# encoding: utf-8

import urllib2
import traceback
import sys

try:
input = raw_input
except NameError:
pass

project_name = 'meta'
project_dependencies = \
[
'waf-tools',
'gtest',
]

# Importing a dynamically generated module
# Python recipe from http://code.activestate.com/recipes/82234


def importCode(code, name, add_to_sys_modules=0):
"""
Import dynamically generated code as a module. code is the
object containing the code (a string, a file handle or an
actual compiled code object, same types as accepted by an
exec statement). The name is the name to give to the module,
and the final argument says wheter to add it to sys.modules
or not. If it is added, a subsequent import statement using
name will return this module. If it is not added to sys.modules
import will try to load it in the normal fashion.
import foo
is equivalent to
foofile = open("/path/to/foo.py")
foo = importCode(foofile,"foo",1)
Returns a newly generated module.
Import dynamically generated code as a module.
Python recipe from http://code.activestate.com/recipes/82234
"""
import imp

module = imp.new_module(name)

exec code in module.__dict__
exec(code, module.__dict__)
if add_to_sys_modules:
sys.modules[name] = module

Expand All @@ -53,22 +39,27 @@ def importCode(code, name, add_to_sys_modules=0):
url = "https://raw.github.com/steinwurf/steinwurf-labs/" \
"master/config_helper/config-impl.py"

try:
from urllib.request import urlopen, Request
except ImportError:
from urllib2 import urlopen, Request

try:
# Fetch the code file from the given url
req = urllib2.Request(url)
response = urllib2.urlopen(req)
req = Request(url)
response = urlopen(req)
code = response.read()
print("Update complete. Code size: {}\n".format(len(code)))
try:
# Import the code string as a module
mod = importCode(code, "config_helper")
# Run the actual config tool from the dynamic module
mod.config_tool(project_dependencies)
mod.config_tool(project_dependencies, project_name)
except:
print("Unexpected error:")
print traceback.format_exc()
print(traceback.format_exc())
except Exception as e:
print("Could not fetch code file from:\n\t{}".format(url))
print(e)

raw_input('Press ENTER to exit...')
input('Press ENTER to exit...')
17 changes: 17 additions & 0 deletions resolve.json
@@ -0,0 +1,17 @@
[
{
"name": "waf-tools",
"resolver": "git",
"method": "semver",
"major": 4,
"sources": ["github.com/steinwurf/waf-tools.git"]
},
{
"name": "gtest",
"internal": true,
"resolver": "git",
"method": "semver",
"major": 4,
"sources": ["github.com/steinwurf/gtest.git"]
}
]
20 changes: 10 additions & 10 deletions waf

Large diffs are not rendered by default.

35 changes: 0 additions & 35 deletions wscript
Expand Up @@ -5,43 +5,8 @@ APPNAME = 'meta'
VERSION = '2.1.0'


import waflib.extras.wurf_options


def options(opt):

opt.load('wurf_common_tools')


def resolve(ctx):

import waflib.extras.wurf_dependency_resolve as resolve

ctx.load('wurf_common_tools')

ctx.add_dependency(resolve.ResolveVersion(
name='waf-tools',
git_repository='github.com/steinwurf/waf-tools.git',
major=3))

# Internal dependencies
if ctx.is_toplevel():

ctx.add_dependency(resolve.ResolveVersion(
name='gtest',
git_repository='github.com/steinwurf/gtest.git',
major=3))


def configure(conf):

conf.load("wurf_common_tools")


def build(bld):

bld.load("wurf_common_tools")

bld.env.append_unique(
'DEFINES_STEINWURF_VERSION',
'STEINWURF_META_VERSION="{}"'.format(VERSION))
Expand Down

0 comments on commit b016657

Please sign in to comment.