From 68d1455ed8f87b436b7f21a0113d4479d6fe4835 Mon Sep 17 00:00:00 2001 From: Sam Chesney Date: Tue, 11 Dec 2018 16:20:53 +0000 Subject: [PATCH 1/9] Update module_build_info to match wscript --- lib_xua/module_build_info | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_xua/module_build_info b/lib_xua/module_build_info index 3460a1ed..25e3a916 100644 --- a/lib_xua/module_build_info +++ b/lib_xua/module_build_info @@ -15,7 +15,7 @@ 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) #ignore host dir SOURCE_DIRS = src/* From 6f295d388a7c35355a1e48e3e2cb631e8e57c9e9 Mon Sep 17 00:00:00 2001 From: Sam Chesney Date: Tue, 11 Dec 2018 16:22:50 +0000 Subject: [PATCH 2/9] Remove file specific flags for audiorequests.xc Library does not contain a file of this name. --- lib_xua/wscript | 1 - 1 file changed, 1 deletion(-) diff --git a/lib_xua/wscript b/lib_xua/wscript index d7d30c1b..f1b4a92f 100644 --- a/lib_xua/wscript +++ b/lib_xua/wscript @@ -19,7 +19,6 @@ def use_module(bld): bld.env['XCC_FLAGS_endpoint0.c'] = 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'] From a2498dacd872a91ad553ec23b7422eccc740af75 Mon Sep 17 00:00:00 2001 From: Sam Chesney Date: Tue, 11 Dec 2018 17:27:34 +0000 Subject: [PATCH 3/9] Add file specific flags for xua_ep0_uacreqs.xc This is to bring the xwaf build in line with the xmake build. --- lib_xua/wscript | 1 + 1 file changed, 1 insertion(+) diff --git a/lib_xua/wscript b/lib_xua/wscript index f1b4a92f..f7ccee29 100644 --- a/lib_xua/wscript +++ b/lib_xua/wscript @@ -18,6 +18,7 @@ def use_module(bld): 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_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'] From 7b4ff40b256fa435b9fdeb2aba0466f38854fd82 Mon Sep 17 00:00:00 2001 From: Sam Chesney Date: Tue, 11 Dec 2018 17:39:21 +0000 Subject: [PATCH 4/9] Read values required in wscript from module_build_info --- lib_xua/module_build_info | 7 +-- lib_xua/wscript | 122 ++++++++++++++++++++++++++++++-------- 2 files changed, 101 insertions(+), 28 deletions(-) diff --git a/lib_xua/module_build_info b/lib_xua/module_build_info index 25e3a916..a00f320f 100644 --- a/lib_xua/module_build_info +++ b/lib_xua/module_build_info @@ -20,7 +20,8 @@ DEPENDENT_MODULES = lib_logging(>=2.1.0) lib_xassert(>=2.0.0) lib_xud(>=0.1.0) l #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 +29,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) - - diff --git a/lib_xua/wscript b/lib_xua/wscript index f7ccee29..d34fd99a 100644 --- a/lib_xua/wscript +++ b/lib_xua/wscript @@ -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_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='1.0.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']) From 3f1fd3db37ca9df2d4ff69daf1cfb99469591c78 Mon Sep 17 00:00:00 2001 From: Sam Chesney Date: Thu, 13 Dec 2018 18:01:44 +0000 Subject: [PATCH 5/9] Add Jenkins Pipeline --- Jenkinsfile | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 00000000..f2e9dbad --- /dev/null +++ b/Jenkinsfile @@ -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() + } + } +} From 5830b75c0ff43cbc3662ad79b5b4913641c336ce Mon Sep 17 00:00:00 2001 From: Sam Chesney Date: Thu, 13 Dec 2018 18:14:27 +0000 Subject: [PATCH 6/9] Fix CHANGELOG --- CHANGELOG.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index f96a4797..048f1501 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -20,6 +20,8 @@ lib_xua Change Log - lib_spdif: Added dependency 3.0.0 + - lib_xassert: Added dependency 3.0.1 + 0.1.2 ----- From 600ec0da9292fc23a10c4ebf50f383c635107ac9 Mon Sep 17 00:00:00 2001 From: Sam Chesney Date: Thu, 13 Dec 2018 18:14:54 +0000 Subject: [PATCH 7/9] Add XMOS copyright --- lib_xua/src/core/endpoint0/chanstringgen.py | 1 + tests/runtests.py | 1 + tests/test_i2s_loopback.py | 1 + 3 files changed, 3 insertions(+) diff --git a/lib_xua/src/core/endpoint0/chanstringgen.py b/lib_xua/src/core/endpoint0/chanstringgen.py index c5343a03..49249f8a 100644 --- a/lib_xua/src/core/endpoint0/chanstringgen.py +++ b/lib_xua/src/core/endpoint0/chanstringgen.py @@ -1,3 +1,4 @@ +# Copyright (c) 2015-2018, XMOS Ltd, All rights reserved def genstrings(outputChanCount, chanString, portString, structureString, adc_dac): diff --git a/tests/runtests.py b/tests/runtests.py index 36198102..7d419e66 100755 --- a/tests/runtests.py +++ b/tests/runtests.py @@ -1,4 +1,5 @@ #!/usr/bin/env python2.7 +# Copyright (c) 2018, XMOS Ltd, All rights reserved import xmostest import os.path diff --git a/tests/test_i2s_loopback.py b/tests/test_i2s_loopback.py index 06821bef..f56bdcf6 100644 --- a/tests/test_i2s_loopback.py +++ b/tests/test_i2s_loopback.py @@ -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): From 1460b610a4ca0b76e72eebb3b6bba46c000b06a7 Mon Sep 17 00:00:00 2001 From: Sam Chesney Date: Wed, 9 Jan 2019 17:32:43 +0000 Subject: [PATCH 8/9] Set INCLUDE_DIRS in module_build_info This is required in the wscript. --- lib_xua/module_build_info | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib_xua/module_build_info b/lib_xua/module_build_info index a00f320f..7def5758 100644 --- a/lib_xua/module_build_info +++ b/lib_xua/module_build_info @@ -17,6 +17,8 @@ VERSION = 0.2.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/* From 8340c4054b796f67a9aae6a7e1f37a5a90fa44a0 Mon Sep 17 00:00:00 2001 From: Sam Chesney Date: Wed, 9 Jan 2019 17:40:45 +0000 Subject: [PATCH 9/9] Update XMOS copyright --- LICENSE.txt | 2 +- lib_xua/LICENSE.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/LICENSE.txt b/LICENSE.txt index d26bf69d..19f8e7cc 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -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. diff --git a/lib_xua/LICENSE.txt b/lib_xua/LICENSE.txt index 9f9fc466..3932a9ae 100644 --- a/lib_xua/LICENSE.txt +++ b/lib_xua/LICENSE.txt @@ -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.