diff options
author | Dylan Baker <dylan@pnwbakers.com> | 2020-03-24 12:09:54 -0700 |
---|---|---|
committer | Dylan Baker <dylan@pnwbakers.com> | 2020-04-30 10:38:55 -0700 |
commit | fdd60225301731d5b696479eb091c01a2ea121e0 (patch) | |
tree | babae95f81505683ab0ef3af2cd4359ad72fa52e | |
parent | d8a3c777a62b18d33bbdbca0fd4954399e1ebc04 (diff) | |
download | meson-fdd60225301731d5b696479eb091c01a2ea121e0.zip meson-fdd60225301731d5b696479eb091c01a2ea121e0.tar.gz meson-fdd60225301731d5b696479eb091c01a2ea121e0.tar.bz2 |
interpreter: Add link_language to all build targets
If the feature hadn't been broken in the first place it would have
worked on them anyway, so we might as well expose it. I'm loathe to do
it because one of the best features of meson in a mixed C/C++ code base
is that meson figures out the right linker every time, but there are
cases people have where they want to force a linker. We'll let them keep
the pieces.
-rw-r--r-- | mesonbuild/build.py | 3 | ||||
-rwxr-xr-x | run_unittests.py | 3 | ||||
-rw-r--r-- | test cases/common/232 link language/lib.cpp | 5 | ||||
-rw-r--r-- | test cases/common/232 link language/meson.build | 6 |
4 files changed, 15 insertions, 2 deletions
diff --git a/mesonbuild/build.py b/mesonbuild/build.py index 4a8e9cc..aff1d5f 100644 --- a/mesonbuild/build.py +++ b/mesonbuild/build.py @@ -82,6 +82,7 @@ buildtarget_kwargs = set([ 'override_options', 'sources', 'gnu_symbol_visibility', + 'link_language', ]) known_build_target_kwargs = ( @@ -92,7 +93,7 @@ known_build_target_kwargs = ( rust_kwargs | cs_kwargs) -known_exe_kwargs = known_build_target_kwargs | {'implib', 'export_dynamic', 'link_language', 'pie'} +known_exe_kwargs = known_build_target_kwargs | {'implib', 'export_dynamic', 'pie'} known_shlib_kwargs = known_build_target_kwargs | {'version', 'soversion', 'vs_module_defs', 'darwin_versions'} known_shmod_kwargs = known_build_target_kwargs | {'vs_module_defs'} known_stlib_kwargs = known_build_target_kwargs | {'pic'} diff --git a/run_unittests.py b/run_unittests.py index 35f5f9c..c77c9c0 100755 --- a/run_unittests.py +++ b/run_unittests.py @@ -4647,7 +4647,7 @@ recommended as it is not supported on some platforms''') if self.backend is not Backend.ninja: raise unittest.SkipTest('This test reads the ninja file') - testdir = os.path.join(self.common_test_dir, '230 link language') + testdir = os.path.join(self.common_test_dir, '232 link language') self.init(testdir) build_ninja = os.path.join(self.builddir, 'build.ninja') @@ -4655,6 +4655,7 @@ recommended as it is not supported on some platforms''') contents = f.read() self.assertRegex(contents, r'build main(\.exe)?.*: c_LINKER') + self.assertRegex(contents, r'build (lib|cyg)?mylib.*: c_LINKER') class FailureTests(BasePlatformTests): diff --git a/test cases/common/232 link language/lib.cpp b/test cases/common/232 link language/lib.cpp new file mode 100644 index 0000000..ab43828 --- /dev/null +++ b/test cases/common/232 link language/lib.cpp @@ -0,0 +1,5 @@ +extern "C" { + int makeInt(void) { + return 1; + } +} diff --git a/test cases/common/232 link language/meson.build b/test cases/common/232 link language/meson.build index fdb3deb..f9af6cd 100644 --- a/test cases/common/232 link language/meson.build +++ b/test cases/common/232 link language/meson.build @@ -9,4 +9,10 @@ exe = executable( link_language : 'c', ) +lib = library( + 'mylib', + ['lib.cpp'], + link_language : 'c', +) + test('main', exe) |