From 1da3ba42c01c41d85c33a5025068e09c4e97219c Mon Sep 17 00:00:00 2001 From: Russel Winder Date: Wed, 23 Apr 2014 19:00:51 +0100 Subject: Fix Issue 2939. --- src/engine/SCons/Tool/dmd.py | 29 ++++++---- src/engine/SCons/Tool/dmd.xml | 19 +++---- src/engine/SCons/Tool/gdc.py | 19 ++++--- src/engine/SCons/Tool/gdc.xml | 10 ++-- src/engine/SCons/Tool/ldc.py | 27 ++++++---- src/engine/SCons/Tool/ldc.xml | 40 +++++++++++--- test/D/Issues/2939_Ariovistus/Common/__init__.py | 0 .../2939_Ariovistus/Common/correctLinkOptions.py | 62 ++++++++++++++++++++++ .../D/Issues/2939_Ariovistus/Common/sconstest.skip | 0 .../2939_Ariovistus/Project/SConstruct_template | 9 ++++ .../2939_Ariovistus/Project/test/test1/SConscript | 14 +++++ .../2939_Ariovistus/Project/test/test1/stuff.cpp | 12 +++++ .../2939_Ariovistus/Project/test/test1/stuff.h | 10 ++++ .../2939_Ariovistus/Project/test/test1/test1.cpp | 5 ++ .../2939_Ariovistus/Project/test/test1/test2.d | 13 +++++ .../sconstest-correctLinkOptions_dmd.py | 37 +++++++++++++ .../sconstest-correctLinkOptions_gdc.py | 37 +++++++++++++ .../sconstest-correctLinkOptions_ldc.py | 37 +++++++++++++ 18 files changed, 333 insertions(+), 47 deletions(-) create mode 100644 test/D/Issues/2939_Ariovistus/Common/__init__.py create mode 100644 test/D/Issues/2939_Ariovistus/Common/correctLinkOptions.py create mode 100644 test/D/Issues/2939_Ariovistus/Common/sconstest.skip create mode 100644 test/D/Issues/2939_Ariovistus/Project/SConstruct_template create mode 100644 test/D/Issues/2939_Ariovistus/Project/test/test1/SConscript create mode 100644 test/D/Issues/2939_Ariovistus/Project/test/test1/stuff.cpp create mode 100644 test/D/Issues/2939_Ariovistus/Project/test/test1/stuff.h create mode 100644 test/D/Issues/2939_Ariovistus/Project/test/test1/test1.cpp create mode 100644 test/D/Issues/2939_Ariovistus/Project/test/test1/test2.d create mode 100644 test/D/Issues/2939_Ariovistus/sconstest-correctLinkOptions_dmd.py create mode 100644 test/D/Issues/2939_Ariovistus/sconstest-correctLinkOptions_gdc.py create mode 100644 test/D/Issues/2939_Ariovistus/sconstest-correctLinkOptions_ldc.py diff --git a/src/engine/SCons/Tool/dmd.py b/src/engine/SCons/Tool/dmd.py index dafb5b9..4279184 100644 --- a/src/engine/SCons/Tool/dmd.py +++ b/src/engine/SCons/Tool/dmd.py @@ -95,8 +95,6 @@ def generate(env): env['DVERSIONS'] = [] env['DDEBUG'] = [] - #env['SHOBJSUFFIX'] = '.os' - #env['OBJSUFFIX'] = '.o' env['STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME'] = 0 if env['DC']: @@ -113,21 +111,30 @@ def generate(env): env['DFILESUFFIX'] = '.d' env['DLINK'] = '$DC' - env['DLINKCOM'] = '$DLINK -of$TARGET $SOURCES $DFLAGS $DLINKFLAGS $_DLINKLIBFLAGS' - env['SHDLINKCOM'] = '$DLINK -shared -defaultlib=libphobos2.so -of$TARGET $SOURCES $DFLAGS $DLINKFLAGS $_DLINKLIBFLAGS' + env['DLINKFLAGS'] = SCons.Util.CLVar('') + env['DLINKCOM'] = '$DLINK -of$TARGET $DLINKFLAGS $__RPATH $SOURCES $_DLIBDIRFLAGS $_DLIBFLAGS' - env['DLIB'] = 'lib' if env['PLATFORM'] == 'win32' else 'ar cr' - env['DLIBCOM'] = '$DLIB $_DLIBFLAGS {} $TARGET $SOURCES $_DLINKLIBFLAGS'.format('-c' if env['PLATFORM'] == 'win32' else '') + env['DSHLINK'] = '$DC' + env['DSHLINKFLAGS'] = SCons.Util.CLVar('$DLINKFLAGS -shared -defaultlib=libphobos2.so') + env['SHDLINKCOM'] = '$DLINK -of$TARGET $DSHLINKFLAGS $__RPATH $SOURCES $_DLIBDIRFLAGS $_DLIBFLAGS' - env['_DLINKLIBFLAGS'] = '$( ${_concat(DLIBLINKPREFIX, LIBS, DLIBLINKSUFFIX, __env__, RDirs, TARGET, SOURCE)} $)' - env['_DLIBFLAGS'] = '$( ${_concat(DLIBFLAGPREFIX, DLIBFLAGS, DLIBFLAGSUFFIX, __env__)} $)' - env['DLINKFLAGS'] = ['-L-L.'] env['DLIBLINKPREFIX'] = '' if env['PLATFORM'] == 'win32' else '-L-l' env['DLIBLINKSUFFIX'] = '.lib' if env['PLATFORM'] == 'win32' else '' + #env['_DLIBFLAGS'] = '$( ${_concat(DLIBLINKPREFIX, LIBS, DLIBLINKSUFFIX, __env__, RDirs, TARGET, SOURCE)} $)' + env['_DLIBFLAGS'] = '${_stripixes(DLIBLINKPREFIX, LIBS, DLIBLINKSUFFIX, LIBPREFIXES, LIBSUFFIXES, __env__)}' + + env['DLIBDIRPREFIX'] = '-L-L' + env['DLIBDIRSUFFIX'] = '' + env['_DLIBDIRFLAGS'] = '$( ${_concat(DLIBDIRPREFIX, LIBPATH, DLIBDIRSUFFIX, __env__, RDirs, TARGET, SOURCE)} $)' + + + env['DLIB'] = 'lib' if env['PLATFORM'] == 'win32' else 'ar cr' + env['DLIBCOM'] = '$DLIB $_DLIBFLAGS {} $TARGET $SOURCES $_DLIBFLAGS'.format('-c' if env['PLATFORM'] == 'win32' else '') + + #env['_DLIBFLAGS'] = '$( ${_concat(DLIBFLAGPREFIX, DLIBFLAGS, DLIBFLAGSUFFIX, __env__)} $)' + env['DLIBFLAGPREFIX'] = '-' env['DLIBFLAGSUFFIX'] = '' - env['DLINKFLAGPREFIX'] = '-' - env['DLINKFLAGSUFFIX'] = '' SCons.Tool.createStaticLibBuilder(env) diff --git a/src/engine/SCons/Tool/dmd.xml b/src/engine/SCons/Tool/dmd.xml index 7cda2a8..b42791e 100644 --- a/src/engine/SCons/Tool/dmd.xml +++ b/src/engine/SCons/Tool/dmd.xml @@ -26,8 +26,7 @@ See its __doc__ string for a discussion of the format. -Sets construction variables for D language compilers -(the Digital Mars D compiler, or GDC). +Sets construction variables for D language compiler DMD. @@ -54,19 +53,21 @@ Sets construction variables for D language compilers DFLAGSUFFIX DFLESUFFIX DLINK +DLINKFLAGS DLINKCOM +SHDLINK +SHDLINKFLAGS SHDLINKCOM -DLIB -DLIBCOM -_DLINKLIBFLAGS -_DLIBFLAGS -DLINKFLAGS DLIBLINKPREFIX DLIBLINKSUFFIX +_DLIBFLAGS +DLIBDIRPREFIX +DLIBDIRSUFFIX +_DLIBDIRFLAGS +DLIB +DLIBCOM DLIBFLAGPREFIX DLIBFLAGSUFFIX -DLINKFLAGPREFIX -DLINKFLAGSUFFIX diff --git a/src/engine/SCons/Tool/gdc.py b/src/engine/SCons/Tool/gdc.py index 458b10e..7c8649b 100644 --- a/src/engine/SCons/Tool/gdc.py +++ b/src/engine/SCons/Tool/gdc.py @@ -94,22 +94,29 @@ def generate(env): env['DFILESUFFIX'] = '.d' env['DLINK'] = '$DC' - env['DLINKCOM'] = '$DLINK -o $TARGET $SOURCES $DFLAGS $DLINKFLAGS $_DLINKLIBFLAGS' - env['SHDLINKCOM'] = '$DLINK -o $TARGET $SOURCES $DFLAGS $DLINKFLAGS $_DLINKLIBFLAGS' + env['DLINKFLAGS'] = SCons.Util.CLVar('') + env['DLINKCOM'] = '$DLINK -o $TARGET $DLINKFLAGS $__RPATH $SOURCES $_LIBDIRFLAGS $_LIBFLAGS' + + env['SHDLINK'] = '$DC' + env['SHDLINKFLAGS'] = SCons.Util.CLVar('$DLINKFLAGS -shared') + env['SHDLINKCOM'] = '$DLINK -o $TARGET $DLINKFLAGS $__RPATH $SOURCES $_LIBDIRFLAGS $_LIBFLAGS' env['DLIB'] = 'lib' if env['PLATFORM'] == 'win32' else 'ar cr' env['DLIBCOM'] = '$DLIB $_DLIBFLAGS {} $TARGET $SOURCES $_DLINKLIBFLAGS'.format('-c' if env['PLATFORM'] == 'win32' else '') - env['_DLINKLIBFLAGS'] = '$( ${_concat(DLIBLINKPREFIX, LIBS, DLIBLINKSUFFIX, __env__, RDirs, TARGET, SOURCE)} $)' env['_DLIBFLAGS'] = '$( ${_concat(DLIBFLAGPREFIX, DLIBFLAGS, DLIBFLAGSUFFIX, __env__)} $)' - env['DLINKFLAGS'] = ['-L.'] - env['DLIBLINKPREFIX'] = '' if env['PLATFORM'] == 'win32' else '-l' - env['DLIBLINKSUFFIX'] = '.lib' if env['PLATFORM'] == 'win32' else '' + env['DLIBFLAGPREFIX'] = '-' env['DLIBFLAGSUFFIX'] = '' env['DLINKFLAGPREFIX'] = '-' env['DLINKFLAGSUFFIX'] = '' + # __RPATH is set to $_RPATH in the platform specification if that + # platform supports it. + env['RPATHPREFIX'] = '-Wl,-rpath=' + env['RPATHSUFFIX'] = '' + env['_RPATH'] = '${_concat(RPATHPREFIX, RPATH, RPATHSUFFIX, __env__)}' + SCons.Tool.createStaticLibBuilder(env) diff --git a/src/engine/SCons/Tool/gdc.xml b/src/engine/SCons/Tool/gdc.xml index 1fd95df..818c7d2 100644 --- a/src/engine/SCons/Tool/gdc.xml +++ b/src/engine/SCons/Tool/gdc.xml @@ -53,19 +53,21 @@ Sets construction variables for the D language compiler GDC. DFLAGSUFFIX DFLESUFFIX DLINK +DLINKFLAGS DLINKCOM +SHDLINK +SHDLINKFLAGS SHDLINKCOM DLIB DLIBCOM -_DLINKLIBFLAGS _DLIBFLAGS -DLINKFLAGS -DLIBLINKPREFIX -DLIBLINKSUFFIX DLIBFLAGPREFIX DLIBFLAGSUFFIX DLINKFLAGPREFIX DLINKFLAGSUFFIX +RPATHPREFIX +RPATHSUFFIX +_RPATH diff --git a/src/engine/SCons/Tool/ldc.py b/src/engine/SCons/Tool/ldc.py index aee6701..2531064 100644 --- a/src/engine/SCons/Tool/ldc.py +++ b/src/engine/SCons/Tool/ldc.py @@ -99,21 +99,30 @@ def generate(env): env['DFILESUFFIX'] = '.d' env['DLINK'] = '$DC' - env['DLINKCOM'] = '$DLINK -of=$TARGET $SOURCES $DFLAGS $DLINKFLAGS $_DLINKLIBFLAGS' - env['SHDLINKCOM'] = '$DLINK -shared -of=$TARGET $SOURCES $DFLAGS $DLINKFLAGS $_DLINKLIBFLAGS' + env['DLINKFLAGS'] = SCons.Util.CLVar('') + env['DLINKCOM'] = '$DLINK -of=$TARGET $DLINKFLAGS $__RPATH $SOURCES $_DLIBDIRFLAGS $_DLIBFLAGS' - env['DLIB'] = 'lib' if env['PLATFORM'] == 'win32' else 'ar cr' - env['DLIBCOM'] = '$DLIB $_DLIBFLAGS {} $TARGET $SOURCES $_DLINKLIBFLAGS'.format('-c' if env['PLATFORM'] == 'win32' else '') + env['DSHLINK'] = '$DC' + env['DSHLINKFLAGS'] = SCons.Util.CLVar('$DLINKFLAGS -shared') + env['SHDLINKCOM'] = '$DLINK -of=$TARGET $DSHLINKFLAGS $__RPATH $SOURCES $_DLIBDIRFLAGS $_DLIBFLAGS' - env['_DLINKLIBFLAGS'] = '$( ${_concat(DLIBLINKPREFIX, LIBS, DLIBLINKSUFFIX, __env__, RDirs, TARGET, SOURCE)} $)' - env['_DLIBFLAGS'] = '$( ${_concat(DLIBFLAGPREFIX, DLIBFLAGS, DLIBFLAGSUFFIX, __env__)} $)' - env['DLINKFLAGS'] = ['-L-L.'] env['DLIBLINKPREFIX'] = '' if env['PLATFORM'] == 'win32' else '-L-l' env['DLIBLINKSUFFIX'] = '.lib' if env['PLATFORM'] == 'win32' else '' + #env['_DLIBFLAGS'] = '$( ${_concat(DLIBLINKPREFIX, LIBS, DLIBLINKSUFFIX, __env__, RDirs, TARGET, SOURCE)} $)' + env['_DLIBFLAGS'] = '${_stripixes(DLIBLINKPREFIX, LIBS, DLIBLINKSUFFIX, LIBPREFIXES, LIBSUFFIXES, __env__)}' + + env['DLIBDIRPREFIX'] = '-L-L' + env['DLIBDIRSUFFIX'] = '' + env['_DLIBDIRFLAGS'] = '$( ${_concat(DLIBDIRPREFIX, LIBPATH, DLIBDIRSUFFIX, __env__, RDirs, TARGET, SOURCE)} $)' + + + env['DLIB'] = 'lib' if env['PLATFORM'] == 'win32' else 'ar cr' + env['DLIBCOM'] = '$DLIB $_DLIBFLAGS {} $TARGET $SOURCES $_DLIBFLAGS'.format('-c' if env['PLATFORM'] == 'win32' else '') + + #env['_DLIBFLAGS'] = '$( ${_concat(DLIBFLAGPREFIX, DLIBFLAGS, DLIBFLAGSUFFIX, __env__)} $)' + env['DLIBFLAGPREFIX'] = '-' env['DLIBFLAGSUFFIX'] = '' - env['DLINKFLAGPREFIX'] = '-' - env['DLINKFLAGSUFFIX'] = '' SCons.Tool.createStaticLibBuilder(env) diff --git a/src/engine/SCons/Tool/ldc.xml b/src/engine/SCons/Tool/ldc.xml index e8879f8..cfa38a9 100644 --- a/src/engine/SCons/Tool/ldc.xml +++ b/src/engine/SCons/Tool/ldc.xml @@ -5,9 +5,29 @@ __COPYRIGHT__ This file is processed by the bin/SConsDoc.py module. See its __doc__ string for a discussion of the format. --> - + + +%scons; + +%builders-mod; + +%functions-mod; + +%tools-mod; + +%variables-mod; +]> + + + + + Sets construction variables for the D language compiler LDC2. + DC @@ -33,20 +53,24 @@ Sets construction variables for the D language compiler LDC2. DFLAGSUFFIX DFLESUFFIX DLINK +DLINKFLAGS DLINKCOM +SHDLINK +SHDLINKFLAGS SHDLINKCOM -DLIB -DLIBCOM -_DLINKLIBFLAGS -_DLIBFLAGS -DLINKFLAGS DLIBLINKPREFIX DLIBLINKSUFFIX +_DLIBFLAGS +DLIBDIRPREFIX +DLIBDIRSUFFIX +_DLIBDIRFLAGS +DLIB +DLIBCOM DLIBFLAGPREFIX DLIBFLAGSUFFIX -DLINKFLAGPREFIX -DLINKFLAGSUFFIX + + diff --git a/test/D/Issues/2939_Ariovistus/Common/__init__.py b/test/D/Issues/2939_Ariovistus/Common/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/test/D/Issues/2939_Ariovistus/Common/correctLinkOptions.py b/test/D/Issues/2939_Ariovistus/Common/correctLinkOptions.py new file mode 100644 index 0000000..3b178b9 --- /dev/null +++ b/test/D/Issues/2939_Ariovistus/Common/correctLinkOptions.py @@ -0,0 +1,62 @@ +""" +These tests check a problem with the linker options setting. +""" + +# +# __COPYRIGHT__ +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY +# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# + +__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" + +import TestSCons + +from SCons.Environment import Base + +from os.path import abspath, dirname, join + +import sys +sys.path.insert(1, abspath(dirname(__file__) + '/../../../Support')) + +from executablesSearch import isExecutableOfToolAvailable + +def testForTool(tool): + + test = TestSCons.TestSCons() + + if not isExecutableOfToolAvailable(test, tool) : + test.skip_test("Required executable for tool '{}' not found, skipping test.\n".format(tool)) + + test.dir_fixture('Project') + test.write('SConstruct', open('SConstruct_template', 'r').read().format('tools=["{}", "link"]'.format(tool))) + + test.run() + + for f in ('libstuff.so', 'stuff.os', 'test1', 'test1.o', 'test2', 'test2.o'): + test.must_exist(test.workpath(join('test', 'test1', f))) + + test.pass_test() + +# Local Variables: +# tab-width:4 +# indent-tabs-mode:nil +# End: +# vim: set expandtab tabstop=4 shiftwidth=4: diff --git a/test/D/Issues/2939_Ariovistus/Common/sconstest.skip b/test/D/Issues/2939_Ariovistus/Common/sconstest.skip new file mode 100644 index 0000000..e69de29 diff --git a/test/D/Issues/2939_Ariovistus/Project/SConstruct_template b/test/D/Issues/2939_Ariovistus/Project/SConstruct_template new file mode 100644 index 0000000..55f02aa --- /dev/null +++ b/test/D/Issues/2939_Ariovistus/Project/SConstruct_template @@ -0,0 +1,9 @@ +from os.path import join + +environment = Environment({}) + +Export('environment') + +environment.SConscript([ + join("test","test1", "SConscript"), +]); diff --git a/test/D/Issues/2939_Ariovistus/Project/test/test1/SConscript b/test/D/Issues/2939_Ariovistus/Project/test/test1/SConscript new file mode 100644 index 0000000..53a1ca0 --- /dev/null +++ b/test/D/Issues/2939_Ariovistus/Project/test/test1/SConscript @@ -0,0 +1,14 @@ +Import('environment') + +env = Environment() +env.SharedLibrary(target='stuff', source=['stuff.cpp']) + +env = Environment() +env.Append(LIBPATH=['.']) +env.Append(LIBS=['stuff']) +env.Program(target='test1', source=['test1.cpp']) + +env = environment.Clone() +env.Append(LIBPATH=['.']) +env.Append(LIBS=['stuff']) +env.Program(target='test2', source=['test2.d']) diff --git a/test/D/Issues/2939_Ariovistus/Project/test/test1/stuff.cpp b/test/D/Issues/2939_Ariovistus/Project/test/test1/stuff.cpp new file mode 100644 index 0000000..2970549 --- /dev/null +++ b/test/D/Issues/2939_Ariovistus/Project/test/test1/stuff.cpp @@ -0,0 +1,12 @@ +#include "stuff.h" + +X::X() { + this->i = 1; +} +int X::y(){ + return this->i; +} + +X *SomeX() { + return new X(); +} diff --git a/test/D/Issues/2939_Ariovistus/Project/test/test1/stuff.h b/test/D/Issues/2939_Ariovistus/Project/test/test1/stuff.h new file mode 100644 index 0000000..863c330 --- /dev/null +++ b/test/D/Issues/2939_Ariovistus/Project/test/test1/stuff.h @@ -0,0 +1,10 @@ + +class X { + public: + int i; + + X(); + int y(); +}; + +X *SomeX(); diff --git a/test/D/Issues/2939_Ariovistus/Project/test/test1/test1.cpp b/test/D/Issues/2939_Ariovistus/Project/test/test1/test1.cpp new file mode 100644 index 0000000..f4d7208 --- /dev/null +++ b/test/D/Issues/2939_Ariovistus/Project/test/test1/test1.cpp @@ -0,0 +1,5 @@ +#include "stuff.h" + +int main() { + X *x = SomeX(); +} diff --git a/test/D/Issues/2939_Ariovistus/Project/test/test1/test2.d b/test/D/Issues/2939_Ariovistus/Project/test/test1/test2.d new file mode 100644 index 0000000..4fbfa4d --- /dev/null +++ b/test/D/Issues/2939_Ariovistus/Project/test/test1/test2.d @@ -0,0 +1,13 @@ +import std.stdio; + +struct X { +} + +extern(C) int _ZN1X1yEv(X* _this); +extern(C) X* _Z5SomeXv(); + +void main() { + X *x = _Z5SomeXv(); + int i = _ZN1X1yEv(x); + writeln("i: ", i); +} diff --git a/test/D/Issues/2939_Ariovistus/sconstest-correctLinkOptions_dmd.py b/test/D/Issues/2939_Ariovistus/sconstest-correctLinkOptions_dmd.py new file mode 100644 index 0000000..2446a28 --- /dev/null +++ b/test/D/Issues/2939_Ariovistus/sconstest-correctLinkOptions_dmd.py @@ -0,0 +1,37 @@ +""" +Test compiling and executing using the gdc tool. +""" + +# +# __COPYRIGHT__ +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY +# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# + +__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" + +from Common.correctLinkOptions import testForTool +testForTool('dmd') + +# Local Variables: +# tab-width:4 +# indent-tabs-mode:nil +# End: +# vim: set expandtab tabstop=4 shiftwidth=4: diff --git a/test/D/Issues/2939_Ariovistus/sconstest-correctLinkOptions_gdc.py b/test/D/Issues/2939_Ariovistus/sconstest-correctLinkOptions_gdc.py new file mode 100644 index 0000000..baf2921 --- /dev/null +++ b/test/D/Issues/2939_Ariovistus/sconstest-correctLinkOptions_gdc.py @@ -0,0 +1,37 @@ +""" +Test compiling and executing using the gdc tool. +""" + +# +# __COPYRIGHT__ +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY +# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# + +__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" + +from Common.correctLinkOptions import testForTool +testForTool('gdc') + +# Local Variables: +# tab-width:4 +# indent-tabs-mode:nil +# End: +# vim: set expandtab tabstop=4 shiftwidth=4: diff --git a/test/D/Issues/2939_Ariovistus/sconstest-correctLinkOptions_ldc.py b/test/D/Issues/2939_Ariovistus/sconstest-correctLinkOptions_ldc.py new file mode 100644 index 0000000..a61a94b --- /dev/null +++ b/test/D/Issues/2939_Ariovistus/sconstest-correctLinkOptions_ldc.py @@ -0,0 +1,37 @@ +""" +Test compiling and executing using the gdc tool. +""" + +# +# __COPYRIGHT__ +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY +# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# + +__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" + +from Common.correctLinkOptions import testForTool +testForTool('ldc') + +# Local Variables: +# tab-width:4 +# indent-tabs-mode:nil +# End: +# vim: set expandtab tabstop=4 shiftwidth=4: -- cgit v0.12