CMakeLists.txt 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. PROJECT(testf Fortran)
  2. SET(CMAKE_VERBOSE_MAKEFILE 1)
  3. MESSAGE("ENV_FLAGS = $ENV{FFLAGS}")
  4. MESSAGE("CMAKE_Fortran_COMPILER_INIT = ${CMAKE_Fortran_COMPILER_INIT}")
  5. MESSAGE("CMAKE_Fortran_COMPILER_FULLPATH = ${CMAKE_Fortran_COMPILER_FULLPATH}")
  6. MESSAGE("CMAKE_Fortran_COMPILER = ${CMAKE_Fortran_COMPILER}")
  7. MESSAGE("CMAKE_Fortran_FLAGS = ${CMAKE_Fortran_FLAGS}")
  8. ADD_EXECUTABLE(testf hello.f)
  9. SET(TEST_MODULE_DEPENDS 0)
  10. IF(CMAKE_Fortran_COMPILER_SUPPORTS_F90)
  11. ADD_EXECUTABLE(test_module
  12. test_module_main.f90
  13. test_module_implementation.f90
  14. test_module_interface.f90)
  15. ADD_EXECUTABLE(test_use_in_comment_fixedform
  16. test_use_in_comment_fixedform.f)
  17. ADD_EXECUTABLE(test_use_in_comment_freeform
  18. test_use_in_comment_freeform.f90)
  19. ADD_EXECUTABLE(test_in_interface
  20. in_interface/main.f90
  21. in_interface/module.f90)
  22. SET(TEST_MODULE_DEPENDS 1)
  23. ENDIF(CMAKE_Fortran_COMPILER_SUPPORTS_F90)
  24. IF(TEST_MODULE_DEPENDS)
  25. # Build the external project separately using a custom target.
  26. # Make sure it uses the same build configuration as this test.
  27. IF(CMAKE_CONFIGURATION_TYPES)
  28. SET(External_CONFIG_TYPE -C "${CMAKE_CFG_INTDIR}")
  29. ELSE(CMAKE_CONFIGURATION_TYPES)
  30. SET(External_CONFIG_TYPE)
  31. ENDIF(CMAKE_CONFIGURATION_TYPES)
  32. ADD_CUSTOM_COMMAND(
  33. OUTPUT ${testf_BINARY_DIR}/ExternalProject
  34. COMMAND ${CMAKE_CTEST_COMMAND}
  35. ARGS ${External_CONFIG_TYPE}
  36. --build-and-test
  37. ${testf_SOURCE_DIR}/External
  38. ${testf_BINARY_DIR}/External
  39. --build-noclean
  40. --build-two-config
  41. --build-project ExtFort
  42. --build-generator ${CMAKE_GENERATOR}
  43. --build-makeprogram ${CMAKE_MAKE_PROGRAM}
  44. --build-options -DCMAKE_Fortran_COMPILER:STRING=${CMAKE_Fortran_COMPILER}
  45. -DCMAKE_Fortran_FLAGS:STRING=${CMAKE_Fortran_FLAGS}
  46. -DCMAKE_Fortran_FLAGS_DEBUG:STRING=${CMAKE_Fortran_FLAGS_DEBUG}
  47. -DCMAKE_Fortran_FLAGS_RELEASE:STRING=${CMAKE_Fortran_FLAGS_RELEASE}
  48. -DCMAKE_Fortran_FLAGS_MINSIZEREL:STRING=${CMAKE_Fortran_FLAGS_MINSIZEREL}
  49. -DCMAKE_Fortran_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_Fortran_FLAGS_RELWITHDEBINFO}
  50. )
  51. ADD_CUSTOM_TARGET(ExternalTarget ALL DEPENDS ${testf_BINARY_DIR}/ExternalProject)
  52. # Test module output directory if available.
  53. IF(CMAKE_Fortran_MODDIR_FLAG)
  54. SET(Library_MODDIR "${testf_BINARY_DIR}/Library/modules")
  55. ELSE(CMAKE_Fortran_MODDIR_FLAG)
  56. SET(Library_MODDIR "${testf_BINARY_DIR}/Library")
  57. ENDIF(CMAKE_Fortran_MODDIR_FLAG)
  58. ADD_SUBDIRECTORY(Library)
  59. ADD_SUBDIRECTORY(Executable)
  60. ENDIF(TEST_MODULE_DEPENDS)