aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNirbheek Chauhan <nirbheek@centricular.com>2018-05-26 15:27:37 +0530
committerNirbheek Chauhan <nirbheek.chauhan@gmail.com>2018-06-05 10:50:22 +0000
commit21dc45dbbb567068ae2dafc9e34fba24e04e0d93 (patch)
treeef19074c1d15e1b1f9ca3ef213991ab4337a1b60
parentefa9b75d5d21018b27f593ee65ea562d10d6dc2c (diff)
downloadmeson-21dc45dbbb567068ae2dafc9e34fba24e04e0d93.zip
meson-21dc45dbbb567068ae2dafc9e34fba24e04e0d93.tar.gz
meson-21dc45dbbb567068ae2dafc9e34fba24e04e0d93.tar.bz2
Add MinGW-w64 64-bit to the Travis CI
Includes new cross files for MinGW-w64
-rw-r--r--cross/linux-mingw-w64-32bit.txt20
-rw-r--r--cross/linux-mingw-w64-64bit.txt20
-rw-r--r--cross/ubuntu-mingw.txt25
-rwxr-xr-xrun_tests.py13
4 files changed, 50 insertions, 28 deletions
diff --git a/cross/linux-mingw-w64-32bit.txt b/cross/linux-mingw-w64-32bit.txt
new file mode 100644
index 0000000..8707a60
--- /dev/null
+++ b/cross/linux-mingw-w64-32bit.txt
@@ -0,0 +1,20 @@
+[binaries]
+c = '/usr/bin/i686-w64-mingw32-gcc'
+cpp = '/usr/bin/i686-w64-mingw32-g++'
+ar = '/usr/bin/i686-w64-mingw32-ar'
+strip = '/usr/bin/i686-w64-mingw32-strip'
+pkgconfig = '/usr/bin/i686-w64-mingw32-pkg-config'
+windres = '/usr/bin/i686-w64-mingw32-windres'
+exe_wrapper = 'wine'
+
+[properties]
+# Directory that contains 'bin', 'lib', etc
+root = '/usr/i686-w64-mingw32'
+# Directory that contains 'bin', 'lib', etc for the toolchain and system libraries
+sys_root = '/usr/i686-w64-mingw32/sys-root/mingw'
+
+[host_machine]
+system = 'windows'
+cpu_family = 'x86'
+cpu = 'i686'
+endian = 'little'
diff --git a/cross/linux-mingw-w64-64bit.txt b/cross/linux-mingw-w64-64bit.txt
new file mode 100644
index 0000000..1c5c002
--- /dev/null
+++ b/cross/linux-mingw-w64-64bit.txt
@@ -0,0 +1,20 @@
+[binaries]
+c = '/usr/bin/x86_64-w64-mingw32-gcc'
+cpp = '/usr/bin/x86_64-w64-mingw32-g++'
+ar = '/usr/bin/x86_64-w64-mingw32-ar'
+strip = '/usr/bin/x86_64-w64-mingw32-strip'
+pkgconfig = '/usr/bin/x86_64-w64-mingw32-pkg-config'
+windres = '/usr/bin/x86_64-w64-mingw32-windres'
+exe_wrapper = 'wine64'
+
+[properties]
+# Directory that contains 'bin', 'lib', etc
+root = '/usr/x86_64-w64-mingw32'
+# Directory that contains 'bin', 'lib', etc for the toolchain and system libraries
+sys_root = '/usr/x86_64-w64-mingw32/sys-root/mingw'
+
+[host_machine]
+system = 'windows'
+cpu_family = 'x86_64'
+cpu = 'x86_64'
+endian = 'little'
diff --git a/cross/ubuntu-mingw.txt b/cross/ubuntu-mingw.txt
deleted file mode 100644
index 4c8fcac..0000000
--- a/cross/ubuntu-mingw.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-# Something crazy: compiling on Linux a crosscompiler that
-# runs on Windows and generates code for OSX.
-
-[binaries]
-exe_wrapper = 'wine' # A command used to run generated executables.
-c = '/usr/bin/i686-w64-mingw32-gcc'
-cpp = '/usr/bin/i686-w64-mingw32-g++'
-ar = '/usr/bin/i686-w64-mingw32-ar'
-strip = '/usr/bin/i686-w64-mingw32-strip'
-pkgconfig = '/usr/bin/mingw32-pkg-config'
-
-[properties]
-root = '/usr/i686-w64-mingw32'
-
-[host_machine]
-system = 'windows'
-cpu_family = 'x86'
-cpu = 'i686'
-endian = 'little'
-
-[target_machine]
-system = 'darwin'
-cpu_family = 'arm'
-cpu = 'armv7h' # Don't know if this is correct.
-endian = 'little'
diff --git a/run_tests.py b/run_tests.py
index 736cdc0..da02a9b 100755
--- a/run_tests.py
+++ b/run_tests.py
@@ -158,6 +158,9 @@ def get_fake_options(prefix):
def should_run_linux_cross_tests():
return shutil.which('arm-linux-gnueabihf-gcc') and not platform.machine().lower().startswith('arm')
+def should_run_mingw_cross_tests():
+ return shutil.which('x86_64-w64-mingw32-gcc')
+
def run_configure_inprocess(commandlist):
old_stdout = sys.stdout
sys.stdout = mystdout = StringIO()
@@ -244,11 +247,15 @@ if __name__ == '__main__':
# Unit tests
returncode += subprocess.call(mesonlib.python_command + ['run_unittests.py', '-v'], env=env)
# Ubuntu packages do not have a binary without -6 suffix.
+ cross_test_args = mesonlib.python_command + ['run_cross_test.py']
if should_run_linux_cross_tests():
- print(mlog.bold('Running cross compilation tests.').get_text(mlog.colorize_console))
+ print(mlog.bold('Running armhf cross tests.').get_text(mlog.colorize_console))
+ print()
+ returncode += subprocess.call(cross_test_args + ['cross/ubuntu-armhf.txt'], env=env)
+ if should_run_mingw_cross_tests():
+ print(mlog.bold('Running mingw-w64 64-bit cross tests.').get_text(mlog.colorize_console))
print()
- returncode += subprocess.call(mesonlib.python_command + ['run_cross_test.py', 'cross/ubuntu-armhf.txt'],
- env=env)
+ returncode += subprocess.call(cross_test_args + ['cross/linux-mingw-w64-64bit.txt'], env=env)
# Project tests
returncode += subprocess.call(mesonlib.python_command + ['run_project_tests.py'] + sys.argv[1:], env=env)
sys.exit(returncode)