aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBálint Aradi <baradi09@gmail.com>2017-05-19 17:35:13 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2017-05-26 23:21:27 +0300
commit809a5938ff58c17e6fb6448b9c50326d1a46580c (patch)
tree2924782a552858f15424624c2b1047dc2608ef3d
parentc389f7cdc731f3ded5e227240c43e642d7f48d8a (diff)
downloadmeson-809a5938ff58c17e6fb6448b9c50326d1a46580c.zip
meson-809a5938ff58c17e6fb6448b9c50326d1a46580c.tar.gz
meson-809a5938ff58c17e6fb6448b9c50326d1a46580c.tar.bz2
Fix case sensitivity in Fortran module names
-rw-r--r--mesonbuild/backend/ninjabackend.py6
-rw-r--r--test cases/fortran/8 module names/meson.build6
-rw-r--r--test cases/fortran/8 module names/mod1.f906
-rw-r--r--test cases/fortran/8 module names/mod2.f906
-rw-r--r--test cases/fortran/8 module names/test.f907
5 files changed, 28 insertions, 3 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py
index e8fae8e..8ab57ea 100644
--- a/mesonbuild/backend/ninjabackend.py
+++ b/mesonbuild/backend/ninjabackend.py
@@ -1722,8 +1722,8 @@ rule FORTRAN_DEP_HACK
for line in f:
modmatch = modre.match(line)
if modmatch is not None:
- modname = modmatch.group(1)
- if modname.lower() == 'procedure':
+ modname = modmatch.group(1).lower()
+ if modname == 'procedure':
# MODULE PROCEDURE construct
continue
if modname in module_files:
@@ -1743,7 +1743,7 @@ rule FORTRAN_DEP_HACK
for line in f:
usematch = usere.match(line)
if usematch is not None:
- usename = usematch.group(1)
+ usename = usematch.group(1).lower()
if usename not in tdeps:
# The module is not provided by any source file. This
# is due to:
diff --git a/test cases/fortran/8 module names/meson.build b/test cases/fortran/8 module names/meson.build
new file mode 100644
index 0000000..632c597
--- /dev/null
+++ b/test cases/fortran/8 module names/meson.build
@@ -0,0 +1,6 @@
+project('mod_name_case', 'fortran')
+
+sources = ['test.f90', 'mod1.f90', 'mod2.f90']
+
+exe = executable('mod_name_case', sources)
+test('mod_name_case', exe)
diff --git a/test cases/fortran/8 module names/mod1.f90 b/test cases/fortran/8 module names/mod1.f90
new file mode 100644
index 0000000..69cc900
--- /dev/null
+++ b/test cases/fortran/8 module names/mod1.f90
@@ -0,0 +1,6 @@
+module MyMod1
+ implicit none
+
+ integer, parameter :: myModVal1 = 1
+
+end module MyMod1
diff --git a/test cases/fortran/8 module names/mod2.f90 b/test cases/fortran/8 module names/mod2.f90
new file mode 100644
index 0000000..971df44
--- /dev/null
+++ b/test cases/fortran/8 module names/mod2.f90
@@ -0,0 +1,6 @@
+module mymod2
+ implicit none
+
+ integer, parameter :: myModVal2 = 2
+
+end module mymod2
diff --git a/test cases/fortran/8 module names/test.f90 b/test cases/fortran/8 module names/test.f90
new file mode 100644
index 0000000..ff5a545
--- /dev/null
+++ b/test cases/fortran/8 module names/test.f90
@@ -0,0 +1,7 @@
+program test
+ use mymod1
+ use MyMod2
+
+ integer, parameter :: testVar = myModVal1 + myModVal2
+
+end program test