This can be done using a Fortran compile option. For gfortran, add the option "-M<dir>" to CMAKE_Fortran_FLAGS.
> -----Original Message----- > From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On Behalf Of > Jed Brown > Sent: Monday, May 31, 2010 5:41 AM > To: cmake@cmake.org > Subject: [CMake] Fortran 90 module output directories, dependency analysis > > Is there a way to specify where generated *.mod files will be placed? > Something analogous to CMAKE_LIBRARY_OUTPUT_DIRECTORY? > > Also, I notice that if I delete a module file, the build fails (unlike > everything else where it will be properly regenerated). This is with a > plain Makefile build, cmake-2.8.1, after a successful complete build: > > $ rm petscmat.mod > $ make VERBOSE=1 > /usr/bin/cmake -H/home/jed/petsc -B/home/jed/petsc/ompi-complex-int64 -- > check-build-system CMakeFiles/Makefile.cmake 0 > /usr/bin/cmake -E cmake_progress_start /home/jed/petsc/ompi-complex- > int64/CMakeFiles /home/jed/petsc/ompi-complex- > int64/CMakeFiles/progress.marks > make -f CMakeFiles/Makefile2 all > make[1]: Entering directory `/home/jed/petsc/ompi-complex-int64' > make -f CMakeFiles/petsc.dir/build.make CMakeFiles/petsc.dir/depend > make[2]: Entering directory `/home/jed/petsc/ompi-complex-int64' > cd /home/jed/petsc/ompi-complex-int64 && /usr/bin/cmake -E cmake_depends > "Unix Makefiles" /home/jed/petsc /home/jed/petsc /home/jed/petsc/ompi- > complex-int64 /home/jed/petsc/ompi-complex-int64 /home/jed/petsc/ompi- > complex-int64/CMakeFiles/petsc.dir/DependInfo.cmake --color= > make[2]: Leaving directory `/home/jed/petsc/ompi-complex-int64' > make -f CMakeFiles/petsc.dir/build.make CMakeFiles/petsc.dir/requires > make[2]: Entering directory `/home/jed/petsc/ompi-complex-int64' > make -f CMakeFiles/petsc.dir/build.make CMakeFiles/petsc.dir/src/sys/f90- > mod/petscmod.F.o.provides.build > make[3]: Entering directory `/home/jed/petsc/ompi-complex-int64' > /usr/bin/cmake -E cmake_copy_f90_mod petscsys > CMakeFiles/petsc.dir/petscsys.mod.stamp GNU > /usr/bin/cmake -E cmake_copy_f90_mod petscsysdef > CMakeFiles/petsc.dir/petscsysdef.mod.stamp GNU > /usr/bin/cmake -E touch CMakeFiles/petsc.dir/src/sys/f90- > mod/petscmod.F.o.provides.build > make[3]: Leaving directory `/home/jed/petsc/ompi-complex-int64' > make -f CMakeFiles/petsc.dir/build.make CMakeFiles/petsc.dir/src/vec/f90- > mod/petscvecmod.F.o.provides.build > make[3]: Entering directory `/home/jed/petsc/ompi-complex-int64' > /usr/bin/cmake -E cmake_copy_f90_mod petscis > CMakeFiles/petsc.dir/petscis.mod.stamp GNU > /usr/bin/cmake -E cmake_copy_f90_mod petscisdef > CMakeFiles/petsc.dir/petscisdef.mod.stamp GNU > /usr/bin/cmake -E cmake_copy_f90_mod petscvec > CMakeFiles/petsc.dir/petscvec.mod.stamp GNU > /usr/bin/cmake -E cmake_copy_f90_mod petscvecdef > CMakeFiles/petsc.dir/petscvecdef.mod.stamp GNU > /usr/bin/cmake -E touch CMakeFiles/petsc.dir/src/vec/f90- > mod/petscvecmod.F.o.provides.build > make[3]: Leaving directory `/home/jed/petsc/ompi-complex-int64' > make -f CMakeFiles/petsc.dir/build.make CMakeFiles/petsc.dir/src/mat/f90- > mod/petscmatmod.F.o.provides.build > make[3]: Entering directory `/home/jed/petsc/ompi-complex-int64' > /usr/bin/cmake -E cmake_copy_f90_mod petscmat > CMakeFiles/petsc.dir/petscmat.mod.stamp GNU > Error copying Fortran module "petscmat". Tried "PETSCMAT.mod" and > "petscmat.mod". > make[3]: *** [CMakeFiles/petsc.dir/src/mat/f90- > mod/petscmatmod.F.o.provides.build] Error 1 > make[3]: Leaving directory `/home/jed/petsc/ompi-complex-int64' > make[2]: *** [CMakeFiles/petsc.dir/src/mat/f90-mod/petscmatmod.F.o.provides] > Error 2 > make[2]: Leaving directory `/home/jed/petsc/ompi-complex-int64' > make[1]: *** [CMakeFiles/petsc.dir/all] Error 2 > make[1]: Leaving directory `/home/jed/petsc/ompi-complex-int64' > make: *** [all] Error 2 > > > Jed > _______________________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Please keep messages on-topic and check the CMake FAQ at: > http://www.cmake.org/Wiki/CMake_FAQ > > Follow this link to subscribe/unsubscribe: > http://www.cmake.org/mailman/listinfo/cmake _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake