Commit aa0e3abf authored by Marcel Huber's avatar Marcel Huber
Browse files

Merge branch 'release_0.3.20'

parents 8df1a0fe 14ff6bed
Pipeline #52061 passed with stages
in 4 minutes
......@@ -14,6 +14,13 @@ trim_trailing_whitespace = true
indent_style = space
indent_size = 4
charset = utf-8
profile = black
multi_line_output = 3
include_trailing_comma = True
force_grid_wrap = 0
use_parentheses = True
ensure_newline_before_comments = True
line_length = 120
[*.sconsider]
indent_style = space
......
[flake8]
max-line-length = 120
extend-ignore = E203
......@@ -10,3 +10,7 @@ dist/
.tox/
/coverage/
/.eggs/
/.wheels/
*.orig
.sconf_temp/
.sconsign*
[settings]
profile = black
multi_line_output = 3
include_trailing_comma = True
force_grid_wrap = 0
use_parentheses = True
ensure_newline_before_comments = True
line_length = 120
......@@ -60,7 +60,7 @@ confidence=
# --enable=similarities". If you want to run only the classes checker, but have
# no Warning level messages displayed, use"--disable=all --enable=classes
# --disable=W"
disable=import-star-module-level,old-octal-literal,oct-method,print-statement,unpacking-in-except,parameter-unpacking,backtick,old-raise-syntax,old-ne-operator,long-suffix,dict-view-method,dict-iter-method,metaclass-assignment,next-method-called,raising-string,indexing-exception,raw_input-builtin,long-builtin,file-builtin,execfile-builtin,coerce-builtin,cmp-builtin,buffer-builtin,basestring-builtin,apply-builtin,filter-builtin-not-iterating,using-cmp-argument,useless-suppression,range-builtin-not-iterating,suppressed-message,no-absolute-import,old-division,cmp-method,reload-builtin,zip-builtin-not-iterating,intern-builtin,unichr-builtin,reduce-builtin,standarderror-builtin,unicode-builtin,xrange-builtin,coerce-method,delslice-method,getslice-method,setslice-method,input-builtin,round-builtin,hex-method,nonzero-method,map-builtin-not-iterating
disable=import-star-module-level,old-octal-literal,oct-method,print-statement,unpacking-in-except,parameter-unpacking,backtick,old-raise-syntax,old-ne-operator,long-suffix,dict-view-method,dict-iter-method,metaclass-assignment,next-method-called,raising-string,indexing-exception,raw_input-builtin,long-builtin,file-builtin,execfile-builtin,coerce-builtin,cmp-builtin,buffer-builtin,basestring-builtin,apply-builtin,filter-builtin-not-iterating,using-cmp-argument,useless-suppression,range-builtin-not-iterating,suppressed-message,no-absolute-import,old-division,cmp-method,reload-builtin,zip-builtin-not-iterating,intern-builtin,unichr-builtin,reduce-builtin,standarderror-builtin,unicode-builtin,xrange-builtin,coerce-method,delslice-method,getslice-method,setslice-method,input-builtin,round-builtin,hex-method,nonzero-method,map-builtin-not-iterating,C0330,C0326
[REPORTS]
......
= Changelog
:ci_commit_link: link:/../commit/
== tag: 0.3.20
* Bumped version to 0.3.20 ({ci_commit_link}1349192[1349192])
* Merge branch 'feature_LibVersioning' into develop ({ci_commit_link}a12f8cf[a12f8cf])
* fixed oracle sqlplpus target error ({ci_commit_link}964a901[964a901])
* changelog updated ({ci_commit_link}c0d8ba7[c0d8ba7])
* isort reformattings ({ci_commit_link}0eea3c8[0eea3c8])
* don't emitt versioned targets if there is no source target ({ci_commit_link}8897faa[8897faa])
* adding include target as dependency only when it is a real target ({ci_commit_link}3c731de[3c731de])
* made target specs more specific ({ci_commit_link}e0d2a91[e0d2a91])
* combine package and targetname using helper function ({ci_commit_link}03da6bf[03da6bf])
* isort reformattings ({ci_commit_link}6484c1e[6484c1e])
* adjusted python configs to be black compatible ({ci_commit_link}24ccf2c[24ccf2c])
* enhanced binary dist target setup ({ci_commit_link}4c58be5[4c58be5])
* import and use backward compatible createFulltargetname ({ci_commit_link}1682d98[1682d98])
* 3rdparty-bin section improved ({ci_commit_link}15a4cd8[15a4cd8])
* WIP: prepared for multiple library versions ({ci_commit_link}6d3beb7[6d3beb7])
* Merge branch 'feature_9-Verify---package-behavior-when-target-is-already-built' into 'develop' ({ci_commit_link}dc3195b[dc3195b])
* setuptools needs to be <45 for python2.7 ({ci_commit_link}b93a5ca[b93a5ca])
* adapted test assertions ({ci_commit_link}98e2a80[98e2a80])
* using more explicit imports ({ci_commit_link}4c1a6ef[4c1a6ef])
* refactored getting buildsettings ({ci_commit_link}7854244[7854244])
* handling case for empty prerequisites list ({ci_commit_link}10baeee[10baeee])
* updated versioneer settings ({ci_commit_link}2555347[2555347])
* more files/dirs to ignore ({ci_commit_link}0e93a0b[0e93a0b])
* extended hello test with included header file ({ci_commit_link}5ee4936[5ee4936])
* SubstInFileBuilder: always build the targets ({ci_commit_link}38253be[38253be])
* ignoring 3rdparty files from being put into the compilation database ({ci_commit_link}0bee055[0bee055])
* version re adapted to allow for major version lib only too ({ci_commit_link}df64c0b[df64c0b])
* added compilation_db to support clang tools ({ci_commit_link}746f21e[746f21e])
* reformatted code ({ci_commit_link}735e956[735e956])
* re-added required test tools ({ci_commit_link}9f4ac24[9f4ac24])
* removed old scons versions from tests ({ci_commit_link}6d81619[6d81619])
* fixed package creation in regards to installing dependant libs to packagedir ({ci_commit_link}ce51dc1[ce51dc1])
* required scons version changed to 2.5.x ({ci_commit_link}838f209[838f209])
* adjusted version re to also match for non patch version libs ({ci_commit_link}c3b1118[c3b1118])
* improved systemlib installer for versioned libs ({ci_commit_link}e2783e5[e2783e5])
* simplified install node function ({ci_commit_link}a35e1ea[a35e1ea])
* extended parameter list with library install directory ({ci_commit_link}985bd06[985bd06])
* added installed files emitter for symlinks ({ci_commit_link}f058418[f058418])
* adjusted syslibs regex to not include absolute lib links ({ci_commit_link}6f8a732[6f8a732])
* added testfile with replacement markers ({ci_commit_link}fdb2923[fdb2923])
* removed obsoleted function and tests ({ci_commit_link}b2e74aa[b2e74aa])
* adding generated file to list of installed files ({ci_commit_link}209d387[209d387])
* moved import block ({ci_commit_link}050fc11[050fc11])
* adding substituted file to list of installed files ({ci_commit_link}d36c86e[d36c86e])
* using same code to load tools as in other locations ({ci_commit_link}27d4e6e[27d4e6e])
* rely on InstallVerionedLib to create symlinks ({ci_commit_link}9176caa[9176caa])
* disable pip version check in tox environment ({ci_commit_link}a09a661[a09a661])
* using versioned lib installer for systemlibs ({ci_commit_link}ca07085[ca07085])
* use of global lock variable corrected ({ci_commit_link}f1e7dfb[f1e7dfb])
* refactored copyTarget related code ({ci_commit_link}52db351[52db351])
* install tool import and references adjusted ({ci_commit_link}3aae780[3aae780])
* adjusted method on how to load required tools ({ci_commit_link}3a090a7[3a090a7])
* reformatting changes ({ci_commit_link}664dc61[664dc61])
* use copyFunc from install tool ({ci_commit_link}4d1e73d[4d1e73d])
* rearranged methods ({ci_commit_link}1a8b85e[1a8b85e])
* deleted target list preserving reference semantics ({ci_commit_link}2befb8f[2befb8f])
* extended tests for package creation ({ci_commit_link}fd8441e[fd8441e])
* changed to using two arguments getBuildSettings function ({ci_commit_link}438b8a8[438b8a8])
* Merge branch '11-update-compiler-defines-to-latest-version' into 'master' ({ci_commit_link}8df1a0f[8df1a0f])
* changed to better local function names ({ci_commit_link}f3acaad[f3acaad])
* shellchecked generated script ({ci_commit_link}224e06e[224e06e])
* removed exec and eval which might be unnecessary ({ci_commit_link}0bce33a[0bce33a])
* improved logfilename setting in shell execution cases ({ci_commit_link}5ce4495[5ce4495])
* fixed problems reported by shellcheck ({ci_commit_link}fac5c8a[fac5c8a])
* updated script with latest changes from remote ({ci_commit_link}471ca2e[471ca2e])
* Merge tag '0.3.19' into develop ({ci_commit_link}a9676dd[a9676dd])
== tag: 0.3.19
* Different run target default timeouts for run/test targets ({ci_commit_link}1323159[1323159])
* changelog updated ({ci_commit_link}83ede0f[83ede0f])
* Bumped version to 0.3.19 ({ci_commit_link}1ad5e2c[1ad5e2c])
......
......@@ -10,60 +10,92 @@
# -------------------------------------------------------------------------
import pkg_resources
pkg_resources.require(["SConsider"])
from SomeUtils import listFiles
Import('*')
_sconsider_dist = pkg_resources.get_distribution("SConsider").parsed_version
if _sconsider_dist < pkg_resources.parse_version("0.5"):
from SConsider import createTargets
if _sconsider_dist < pkg_resources.parse_version("0.3.10"):
from SConsider.PackageRegistry import createFulltargetname
else:
from SConsider.PackageRegistry import PackageRegistry
buildSettings = {
'include': {
'public': {
'includeSubdir': '',
},
},
'regex': {
'targetType': 'LibraryShared',
'targetName': packagename + '_regex',
'linkDependencies': [
# used to pass public include dirs of boost
PackageRegistry.createFulltargetname(packagename, 'include'),
],
'sourceFiles': listFiles(['libs/regex/src/*.cpp']),
# 'appendUnique' : {
# 'CPPDEFINES' : ['BOOST_HAS_ICU=1'],
# 'LIBS' : ['icui18n','icuuc'],
# },
},
'system': {
'targetType': 'LibraryShared',
'targetName': packagename + '_system',
'linkDependencies': [
# used to pass public include dirs of boost
PackageRegistry.createFulltargetname(packagename, 'include'),
],
'sourceFiles': listFiles(['libs/system/src/*.cpp']),
},
}
createFulltargetname = PackageRegistry.createFulltargetname
INCLUDE_TARGET_NAME = 'include'
TARGET_LIBS_AND_HEADERS = [(INCLUDE_TARGET_NAME, 'include', 'boost/version.hpp', 'CXX'),
('regex', 'boost_regex', 'boost/regex.h', 'CXX'),
('system', 'boost_system', 'boost/system/error_code.hpp', 'CXX')]
if _sconsider_dist < pkg_resources.parse_version("0.5"):
from os import path
from SomeUtils import listFiles
from SConsider import cloneBaseEnv, createTargets
buildSettings = {packagename: {'linkDependencies': [], 'requires': []}}
_package_link_dependencies = buildSettings.get(packagename, {}).get('linkDependencies', [])
_package_requires = buildSettings.get(packagename, {}).get('requires', [])
env = cloneBaseEnv()
for _target_name, _real_libname_or_subdir, _headerfile, _lang in TARGET_LIBS_AND_HEADERS:
_lib_targetname = '_'.join(['lib', _target_name])
if _target_name == INCLUDE_TARGET_NAME:
buildSettings[_target_name] = {
'public': {
'includeSubdir': _real_libname_or_subdir,
},
}
_package_link_dependencies.append(createFulltargetname(packagename, _target_name))
else:
buildSettings[_lib_targetname] = {
'targetType': 'LibraryShared',
'targetName': _real_libname_or_subdir,
'sourceFiles': listFiles([path.join('libs', _target_name, 'src', '*.cpp')]),
'appendUnique': {},
'linkDependencies': [
createFulltargetname(packagename, INCLUDE_TARGET_NAME), # pass public include dirs
],
'public': {
'appendUnique': {},
},
}
# alias to prefixed target
buildSettings[_target_name] = {
'linkDependencies': [
createFulltargetname(packagename, _lib_targetname),
],
}
# add default link dependency to package target if needed
if False:
_package_link_dependencies.append(createFulltargetname(packagename, _lib_targetname))
_package_link_dependencies.append(createFulltargetname(packagename, _target_name))
# additional flag settings if required
if _target_name == 'regex' and False:
buildSettings[_lib_targetname]['appendUnique']['CPPDEFINES'] = ['BOOST_HAS_ICU=1']
buildSettings[_lib_targetname]['appendUnique']['LIBS'] = ['icui18n', 'icuuc']
createTargets(packagename, buildSettings)
elif _sconsider_dist >= pkg_resources.parse_version("0.5"):
from TargetMaker import EnvBuilder
from os import path
from SomeUtils import listFiles
from TargetHelpers import createPackageSharedLibrary
from TargetMaker import EnvBuilder
includeTarget = EnvBuilder(export=[EnvBuilder().include(Dir('.'))]).build().RegisterPackageTarget(
packagename=packagename, targetname='include')
all_libs = []
for libname in ['regex', 'system']:
for _target_name in ['regex', 'system']:
shared_lib = createPackageSharedLibrary(packagename,
'boost_' + libname,
listFiles(['libs/' + libname + '/src/*.cpp']),
'boost_' + _target_name,
listFiles([path.join('libs', _target_name, 'src', '*.cpp')]),
depend=[includeTarget])
# register lib with backward compatibility name
EnvBuilder().depend(shared_lib).build().RegisterPackageTarget(packagename=packagename,
targetname=libname)
targetname=_target_name)
all_libs.append(shared_lib)
libs = EnvBuilder().depend(all_libs).build().RegisterPackageTarget(packagename=packagename,
......
......@@ -10,51 +10,77 @@
# -------------------------------------------------------------------------
import pkg_resources
pkg_resources.require(["SConsider"])
Import('*')
_sconsider_dist = pkg_resources.get_distribution("SConsider").parsed_version
if _sconsider_dist < pkg_resources.parse_version("0.3.10"):
from SConsider.PackageRegistry import createFulltargetname
else:
from SConsider.PackageRegistry import PackageRegistry
createFulltargetname = PackageRegistry.createFulltargetname
INCLUDE_TARGET_NAME = 'include'
TARGET_LIBS_AND_HEADERS = [(INCLUDE_TARGET_NAME, 'include', 'boost/version.hpp', 'CXX'),
('regex', 'boost_regex', 'boost/regex.h', 'CXX'),
('system', 'boost_system', 'boost/system/error_code.hpp', 'CXX')]
if _sconsider_dist < pkg_resources.parse_version("0.5"):
from ConfigureHelper import Configure
from SConsider import createTargets, cloneBaseEnv
env = cloneBaseEnv()
conf = Configure(env)
if conf.CheckCXXHeader('boost/version.hpp'):
conf.env.Append(CPPDEFINES='HAS_BOOST')
if conf.CheckLibWithHeader('boost_regex', 'boost/regex.h', 'CXX'):
conf.env.Append(CPPDEFINES='HAS_BOOST_REGEX')
if conf.CheckLibWithHeader('boost_system', 'boost/system/error_code.hpp', 'CXX'):
conf.env.Append(CPPDEFINES='HAS_BOOST_SYSTEM')
env = conf.Finish()
buildSettings = {}
if 'HAS_BOOST' in env['CPPDEFINES']:
buildSettings['include'] = {}
from SConsider import cloneBaseEnv, createTargets
if 'HAS_BOOST_REGEX' in env['CPPDEFINES']:
buildSettings['regex'] = {
'public': {
'appendUnique': {
'LIBS': ['boost_regex'],
},
},
}
buildSettings = {packagename: {'linkDependencies': [], 'requires': []}}
_package_link_dependencies = buildSettings.get(packagename, {}).get('linkDependencies', [])
_package_requires = buildSettings.get(packagename, {}).get('requires', [])
if 'HAS_BOOST_SYSTEM' in env['CPPDEFINES']:
buildSettings['system'] = {
'public': {
'appendUnique': {
'LIBS': ['boost_system'],
},
},
}
env = cloneBaseEnv()
conf = Configure(env)
for _target_name, _real_libname_or_subdir, _headerfile, _lang in TARGET_LIBS_AND_HEADERS:
_lib_targetname = '_'.join(['lib', _target_name])
if _target_name == INCLUDE_TARGET_NAME:
if conf.CheckHeader(_headerfile, include_quotes='""', language=_lang):
buildSettings[_target_name] = {
'public': {},
}
_package_link_dependencies.append(createFulltargetname(packagename, _target_name))
else:
if conf.CheckLibWithHeader(_real_libname_or_subdir, _headerfile, _lang):
buildSettings[_lib_targetname] = {
'appendUnique': {},
'linkDependencies': [
createFulltargetname(packagename, INCLUDE_TARGET_NAME), # pass public include dirs
],
'public': {
'appendUnique': {
'LIBS': [_real_libname_or_subdir],
},
},
}
# alias to prefixed target
buildSettings[_target_name] = {
'linkDependencies': [
createFulltargetname(packagename, _lib_targetname),
],
}
# add default link dependency to package target if needed
if False:
_package_link_dependencies.append(createFulltargetname(packagename, _lib_targetname))
_package_link_dependencies.append(createFulltargetname(packagename, _target_name))
# add default requires if needed
if False:
_package_requires.append(createFulltargetname(packagename, _lib_targetname))
env = conf.Finish()
createTargets(packagename, buildSettings)
elif _sconsider_dist >= pkg_resources.parse_version("0.5"):
from TargetMaker import EnvBuilder
from ThirdParty import add_3rdparty_system_lib_target, add_3rdparty_system_header_target
from ThirdParty import add_3rdparty_system_header_target, add_3rdparty_system_lib_target
includeTarget = add_3rdparty_system_header_target(EnvBuilder().build(), packagename,
lambda conf: conf.CheckCHeader('boost/version.hpp'))
lambda conf: conf.CheckCXXHeader('boost/version.hpp'))
libnames = [('boost_regex', 'lib_boost_regex'), ('boost_system', 'lib_boost_system')]
libs = add_3rdparty_system_lib_target(EnvBuilder().depend(includeTarget).build(), packagename,
......
......@@ -10,14 +10,21 @@
# -------------------------------------------------------------------------
import pkg_resources
pkg_resources.require(["SConsider"])
from SomeUtils import listFiles
Import('*')
_sconsider_dist = pkg_resources.get_distribution("SConsider").parsed_version
if _sconsider_dist < pkg_resources.parse_version("0.3.10"):
from SConsider.PackageRegistry import createFulltargetname
else:
from SConsider.PackageRegistry import PackageRegistry
createFulltargetname = PackageRegistry.createFulltargetname
if _sconsider_dist < pkg_resources.parse_version("0.5"):
from SConsider import createTargets
from SConsider.PackageRegistry import PackageRegistry
buildSettings = {
'include': {
'public': {
......@@ -27,8 +34,8 @@ if _sconsider_dist < pkg_resources.parse_version("0.5"):
'tests': {
'targetType': 'ProgramTest',
'linkDependencies': [
PackageRegistry.createFulltargetname(packagename, 'include'),
PackageRegistry.createFulltargetname('boost', 'include'),
createFulltargetname(packagename, 'include'),
createFulltargetname('boost', 'include'),
],
'includeSubdir': 'cute_tests',
'sourceFiles': listFiles(['cute_tests/*.cpp']),
......@@ -37,8 +44,8 @@ if _sconsider_dist < pkg_resources.parse_version("0.5"):
createTargets(packagename, buildSettings)
elif _sconsider_dist >= pkg_resources.parse_version("0.5"):
from TargetHelpers import createAlias, createPackageProgram, createPackageProgramScript, createPackageTestTarget
from TargetMaker import EnvBuilder
from TargetHelpers import createPackageProgram, createPackageTestTarget, createPackageProgramScript, createAlias
def setUp(target, source, env):
pass
......
......@@ -10,24 +10,29 @@
# -------------------------------------------------------------------------
import pkg_resources
pkg_resources.require(["SConsider"])
Import('*')
_sconsider_dist = pkg_resources.get_distribution("SConsider").parsed_version
if _sconsider_dist < pkg_resources.parse_version("0.3.10"):
from SConsider.PackageRegistry import createFulltargetname
else:
from SConsider.PackageRegistry import PackageRegistry
createFulltargetname = PackageRegistry.createFulltargetname
if _sconsider_dist < pkg_resources.parse_version("0.5"):
from ConfigureHelper import Configure
from SConsider import createTargets, cloneBaseEnv
from SConsider import cloneBaseEnv, createTargets
buildSettings = {}
env = cloneBaseEnv()
conf = Configure(env)
if conf.CheckCHeader('cute.h'):
conf.env.Append(CPPDEFINES='HAS_CUTE')
env = conf.Finish()
buildSettings = {}
if 'HAS_CUTE' in env['CPPDEFINES']:
buildSettings['include'] = {}
env = conf.Finish()
createTargets(packagename, buildSettings)
elif _sconsider_dist >= pkg_resources.parse_version("0.5"):
from TargetMaker import EnvBuilder
from ThirdParty import add_3rdparty_system_header_target
......
......@@ -10,36 +10,48 @@
# -------------------------------------------------------------------------
import pkg_resources
pkg_resources.require(["SConsider"])
Import('*')
_sconsider_dist = pkg_resources.get_distribution("SConsider").parsed_version
if _sconsider_dist < pkg_resources.parse_version("0.3.10"):
from SConsider.PackageRegistry import createFulltargetname
else:
from SConsider.PackageRegistry import PackageRegistry
createFulltargetname = PackageRegistry.createFulltargetname
if _sconsider_dist < pkg_resources.parse_version("0.5"):
from SConsider import createTargets
from ThirdParty import getBinaryDistDir
from SConsider import createTargets
buildSettings = {
packagename: {
'linkDependencies': [packagename + '.ldap50'],
'targetType': 'IncludeOnly',
'linkDependencies': [
createFulltargetname(packagename, 'include'),
createFulltargetname(packagename, 'lib_ldap')
],
},
'include': {
'public': {
'includeSubdir': 'include',
},
},
'ldap50': {
'lib_ldap': {
'sourceFiles': [getBinaryDistDir(packagename).File('ldap50')],
'targetType': 'PrecompiledLibrary',
},
}
createTargets(packagename, buildSettings)
elif _sconsider_dist >= pkg_resources.parse_version("0.5"):
from TargetMaker import EnvBuilder
from TargetHelpers import installPrecompiledLibraries
from TargetMaker import EnvBuilder
includeTarget = EnvBuilder(export=[EnvBuilder().include(Dir('include'))]).build().RegisterPackageTarget(
packagename=packagename, targetname='include')
libnames = [('ldap50', 'lib_iplanetLDAP')]
libnames = [('ldap50', 'lib_ldap')]
libs_installed = installPrecompiledLibraries(packagename, libnames)
libs = EnvBuilder().depend(libs_installed).build().RegisterPackageTarget(packagename=packagename,
targetname='libs')
......