CMakeLists.txt 2.7 KB

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