Merge pull request #72 from samchesney/feature/sync_buildsystems

Sync buildsystems
This commit is contained in:
Ross Owen
2019-01-10 12:07:53 +00:00
committed by GitHub
9 changed files with 173 additions and 32 deletions

View File

@@ -21,6 +21,8 @@ lib_xua Change Log
- lib_spdif: Added dependency 3.0.0
- lib_xassert: Added dependency 3.0.1
0.1.2
-----

61
Jenkinsfile vendored Normal file
View File

@@ -0,0 +1,61 @@
@Library('xmos_jenkins_shared_library@master') _
pipeline {
agent {
label 'x86&&macOS&&Apps'
}
environment {
VIEW = 'xua'
REPO = 'lib_xua'
}
options {
skipDefaultCheckout()
}
stages {
stage('Get view') {
steps {
prepareAppsSandbox("${VIEW}", "${REPO}")
}
}
stage('Library checks') {
steps {
xcoreLibraryChecks("${REPO}")
}
}
stage('Tests') {
steps {
runXmostest("${REPO}", 'tests')
}
}
stage('Host builds') {
steps {
dir("${REPO}") {
dir("${REPO}") {
dir('host') {
dir('xmosdfu') {
sh 'make -f Makefile.OSX64'
}
}
}
}
}
}
stage('xCORE builds') {
steps {
dir("${REPO}") {
xcoreAllAppNotesBuild('examples')
dir("${REPO}") {
runXdoc('doc')
}
}
}
}
}
post {
success {
updateViewfiles()
}
cleanup {
cleanWs()
}
}
}

View File

@@ -1,6 +1,6 @@
Software Release License Agreement
Copyright (c) 2011-2018, XMOS, All rights reserved.
Copyright (c) 2011-2019, XMOS, All rights reserved.
BY ACCESSING, USING, INSTALLING OR DOWNLOADING THE XMOS SOFTWARE, YOU AGREE TO BE BOUND BY THE FOLLOWING TERMS. IF YOU DO NOT AGREE TO THESE, DO NOT ATTEMPT TO DOWNLOAD, ACCESS OR USE THE XMOS Software.

View File

@@ -1,6 +1,6 @@
Software Release License Agreement
Copyright (c) 2017-2018, XMOS, All rights reserved.
Copyright (c) 2017-2019, XMOS, All rights reserved.
BY ACCESSING, USING, INSTALLING OR DOWNLOADING THE XMOS SOFTWARE, YOU AGREE TO BE BOUND BY THE FOLLOWING TERMS. IF YOU DO NOT AGREE TO THESE, DO NOT ATTEMPT TO DOWNLOAD, ACCESS OR USE THE XMOS Software.

View File

@@ -15,12 +15,15 @@ OPTIONAL_HEADERS += xua_conf.h
VERSION = 0.2.0
DEPENDENT_MODULES = lib_logging(>=2.1.0) lib_xud(>=0.1.0) lib_spdif(>=3.0.0)
DEPENDENT_MODULES = lib_logging(>=2.1.0) lib_xassert(>=2.0.0) lib_xud(>=0.1.0) lib_spdif(>=3.0.0)
INCLUDE_DIRS = api src/*
#ignore host dir
SOURCE_DIRS = src/*
#core
# The following file specific flags are not automatically kept in sync with the wscript file
# Core
EXCLUDE_FILES += descriptors_2.rst
XCC_FLAGS_xua_endpoint0.c = -Os -mno-dual-issue $(XCC_FLAGS)
XCC_FLAGS_xua_ep0_uacreqs.xc = -Os -mno-dual-issue $(XCC_FLAGS)
@@ -28,9 +31,7 @@ XCC_FLAGS_dbcalc.xc = -Os -mno-dual-issue $(XCC_FLAGS)
XCC_FLAGS_audioports.c = -Os -mno-dual-issue $(XCC_FLAGS)
XCC_FLAGS_audioports.xc = -Os -mno-dual-issue $(XCC_FLAGS)
#dfu
# DFU
XCC_FLAGS_dfu.xc = -Os -mno-dual-issue $(XCC_FLAGS)
XCC_FLAGS_flash_interface.c = -Os -mno-dual-issue $(XCC_FLAGS)
XCC_FLAGS_flashlib_user.c = -Os -mno-dual-issue $(XCC_FLAGS)

View File

@@ -1,3 +1,4 @@
# Copyright (c) 2015-2018, XMOS Ltd, All rights reserved
def genstrings(outputChanCount, chanString, portString, structureString, adc_dac):

View File

@@ -1,35 +1,109 @@
def use_module(bld):
bld.env.XCC_FLAGS = bld.env.XCC_FLAGS + [
'-O3', '-DREF_CLK_FREQ=100', '-fasm-linenum', '-fcomment-asm',
'-fsubword-select', '-DXUD_FULL_PIDTABLE=1'
]
source = bld.path.ant_glob(
[
'src/**/*.xc', 'src/**/*.c', 'src/**/*.S'
],
excl=[
'**/descriptors_2.rst'
])
depends_on = [
'lib_logging(>=2.0.0)', 'lib_xassert(>=2.0.0)', 'lib_xud(>=1.0.0)'
]
import os.path
def create_list_from_make_flag(bld, list_of_flags):
for i, flag in enumerate(list_of_flags):
if flag.startswith('$('):
for f in bld.env[flag.strip('$()')]:
list_of_flags.insert(i, f)
i += 1
list_of_flags.remove(flag)
return list_of_flags
def create_list_of_strings(whitespace_seperated_list):
list_of_strings = whitespace_seperated_list.split(' ')
for item in list_of_strings:
item = "'{}'".format(item)
return list_of_strings
def read_module_build_info(bld):
with open(os.path.join(bld.path.abspath(), 'module_build_info')) as file:
module_build_info = {}
for line in file.readlines():
line = line.strip()
if line and not line.startswith('#'):
key, value = line.split('=', 1)
module_build_info[key.strip(' +')] = value.strip()
try:
module_build_info['OPTIONAL_HEADERS'] = (
create_list_of_strings(module_build_info['OPTIONAL_HEADERS']))
except KeyError:
pass
try:
module_build_info['DEPENDENT_MODULES'] = (
create_list_of_strings(module_build_info['DEPENDENT_MODULES']))
except KeyError:
pass
try:
module_build_info['MODULE_XCC_FLAGS'] = (
create_list_from_make_flag(bld,
create_list_of_strings(module_build_info['MODULE_XCC_FLAGS'])))
except KeyError:
pass
try:
module_build_info['MODULE_XCC_XC_FLAGS'] = (
create_list_from_make_flag(bld,
create_list_of_strings(module_build_info['MODULE_XCC_XC_FLAGS'])))
except KeyError:
pass
try:
module_build_info['MODULE_XCC_C_FLAGS'] = (
create_list_from_make_flag(bld,
create_list_of_strings(module_build_info['MODULE_XCC_C_FLAGS'])))
except KeyError:
pass
try:
module_build_info['MODULE_XCC_CPP_FLAGS'] = (
create_list_from_make_flag(bld,
create_list_of_strings(module_build_info['MODULE_XCC_CPP_FLAGS'])))
except KeyError:
pass
try:
module_build_info['MODULE_XCC_ASM_FLAGS'] = (
create_list_from_make_flag(bld,
create_list_of_strings(module_build_info['MODULE_XCC_ASM_FLAGS'])))
except KeyError:
pass
try:
module_build_info['INCLUDE_DIRS'] = (
create_list_of_strings(module_build_info['INCLUDE_DIRS']))
except KeyError:
pass
return module_build_info
def use_module(bld):
module_build_info = read_module_build_info(bld)
source = bld.path.ant_glob(['src/**/*.xc', 'src/**/*.c', 'src/**/*.S'],
excl=['**/descriptors_2.rst'])
bld.env.MODULE_XCC_FLAGS = module_build_info['MODULE_XCC_FLAGS']
# The following file specific flags are not automatically kept in sync with the module_build_info file
# Core
bld.env['XCC_FLAGS_endpoint0.c'] = bld.env.XCC_FLAGS + ['-Os', '-mno-dual-issue']
bld.env['XCC_FLAGS_xua_ep0_uacreqs.xc'] = bld.env.XCC_FLAGS + ['-Os', '-mno-dual-issue']
bld.env['XCC_FLAGS_dbcalc.xc'] = bld.env.XCC_FLAGS + ['-Os', '-mno-dual-issue']
bld.env['XCC_FLAGS_audiorequests.xc'] = bld.env.XCC_FLAGS + ['-Os', '-mno-dual-issue']
bld.env['XCC_FLAGS_flashlib_user.c'] = bld.env.XCC_FLAGS + ['-Os', '-mno-dual-issue']
bld.env['XCC_FLAGS_audioports.c'] = bld.env.XCC_FLAGS + ['-Os', '-mno-dual-issue']
bld.env['XCC_FLAGS_audioports.xc'] = bld.env.XCC_FLAGS + ['-Os', '-mno-dual-issue']
# DFU
bld.env['XCC_FLAGS_dfu.xc'] = bld.env.XCC_FLAGS + ['-Os', '-mno-dual-issue']
bld.env['XCC_FLAGS_flash_interface.c'] = bld.env.XCC_FLAGS + ['-Os', '-mno-dual-issue']
bld.env['XCC_FLAGS_flashlib_user.c'] = bld.env.XCC_FLAGS + ['-Os', '-mno-dual-issue']
bld.module(
source=source,
depends_on=depends_on,
includes=['api'],
optional_headers='xua_conf.h',
version='0.2.0')
depends_on=module_build_info['DEPENDENT_MODULES'],
includes=module_build_info['INCLUDE_DIRS'],
optional_headers=module_build_info['OPTIONAL_HEADERS'],
version=module_build_info['VERSION'])

View File

@@ -1,4 +1,5 @@
#!/usr/bin/env python2.7
# Copyright (c) 2018, XMOS Ltd, All rights reserved
import xmostest
import os.path

View File

@@ -1,4 +1,5 @@
#!/usr/bin/env python
# Copyright (c) 2018, XMOS Ltd, All rights reserved
import xmostest
def runtest_one_config(env, format, i2s_role, num_chans_in, num_chans_out, sample_rate):