|
|
(64 intermediate revisions by 4 users not shown) |
Line 1: |
Line 1: |
| __TOC__
| | {{CMake/Template/Moved}} |
|
| |
|
| = Introduction =
| | This page has moved [https://gitlab.kitware.com/cmake/community/wikis/doc/cmake/languages/fortran/Fortran-Issues here]. |
| CMake has a number of Fortran issues that have been discussed many different times on list and duplicated a fair number of times in the bug tracker as well.
| |
| | |
| Maik Beckmann is trying to make sense of all the confusion by collecting information on all Fortran issues at http://www.cmake.org/Bug/view.php?id=5809
| |
| | |
| Please join the work there by
| |
| | |
| * Contributing patches.
| |
| * Testing the patches that already exist there.
| |
| * Reporting things that don't work.
| |
| * Sending simplified examples of things which don't work.
| |
| * Sharing your expert knowledge of CMake.
| |
| | |
| = Concepts expressed using Makefiles =
| |
| | |
| This section is intended to discuss the makefile rules which CMake has to generate have to | |
| look like.
| |
| | |
| == A simple program ==
| |
| | |
| A f9x program which is build by compiling in linking two source files ''a.f90'' and ''main.f90''.
| |
| The tree structure is:
| |
| * example_simpleProgram
| |
| ** build
| |
| *** Makefile
| |
| *** prog.dir
| |
| **** build.make
| |
| ** main.f90
| |
| ** a.f90
| |
| | |
| a.f90:
| |
| <pre>
| |
| SUBROUTINE printHello
| |
| write(*,*) "Hello f9x world"
| |
| END SUBROUTINE
| |
| </pre>
| |
| | |
| main.f90:
| |
| <pre>
| |
| PROGRAM hello
| |
| CALL printHello
| |
| END PROGRAM
| |
| </pre>
| |
| | |
| Makefile:
| |
| <pre>
| |
| all: prog.dir/all
| |
| | |
| prog.dir/all:
| |
| $(MAKE) -f prog.dir/build.make prog.dir/all
| |
| | |
| clean:
| |
| $(MAKE) -f prog.dir/build.make prog.dir/clean
| |
| </pre>
| |
| | |
| build.make:
| |
| <pre>
| |
| prog.dir/all: prog.dir/prog
| |
| | |
| prog.dir/prog: prog.dir/a.o prog.dir/main.o
| |
| gfortran -o prog.dir/prog prog.dir/a.o prog.dir/main.o
| |
|
| |
| prog.dir/a.o: ../a.f90
| |
| gfortran -o prog.dir/a.o -c ../a.f90
| |
|
| |
| prog.dir/main.o: ../main.f90
| |
| gfortran -o prog.dir/main.o -c ../main.f90
| |
|
| |
| prog.dir/clean:
| |
| rm prog.dir/a.o prog.dir/main.o prog.dir/prog
| |
| </pre>
| |
| | |
| The current CMake is able to do this without any problems. You can download this example as tarball example_simpleProgram.tar.gz at http://www.cmake.org/Bug/view.php?id=5809
| |
| | |
| == A simple Program with Module ==
| |