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)
10 SET(TEST_MODULE_DEPENDS 0)
11 IF(CMAKE_Fortran_COMPILER_SUPPORTS_F90)
12 ADD_EXECUTABLE(test_module
14 test_module_implementation.f90
15 test_module_interface.f90)
17 ADD_EXECUTABLE(test_use_in_comment_fixedform
18 test_use_in_comment_fixedform.f)
19 ADD_EXECUTABLE(test_use_in_comment_freeform
20 test_use_in_comment_freeform.f90)
22 ADD_EXECUTABLE(test_in_interface
24 in_interface/module.f90)
26 ADD_DEFINITIONS(-DFOO -DBAR=1)
27 ADD_EXECUTABLE(test_preprocess test_preprocess.F90)
29 SET(TEST_MODULE_DEPENDS 1)
30 ENDIF(CMAKE_Fortran_COMPILER_SUPPORTS_F90)
32 IF(TEST_MODULE_DEPENDS)
33 # Build the external project separately using a custom target.
34 # Make sure it uses the same build configuration as this test.
35 IF(CMAKE_CONFIGURATION_TYPES)
36 SET(External_CONFIG_TYPE -C "${CMAKE_CFG_INTDIR}")
37 ELSE(CMAKE_CONFIGURATION_TYPES)
38 SET(External_CONFIG_TYPE)
39 ENDIF(CMAKE_CONFIGURATION_TYPES)
41 OUTPUT ${testf_BINARY_DIR}/ExternalProject
42 COMMAND ${CMAKE_CTEST_COMMAND}
43 ARGS ${External_CONFIG_TYPE}
45 ${testf_SOURCE_DIR}/External
46 ${testf_BINARY_DIR}/External
49 --build-project ExtFort
50 --build-generator ${CMAKE_GENERATOR}
51 --build-makeprogram ${CMAKE_MAKE_PROGRAM}
52 --build-options -DCMAKE_Fortran_COMPILER:STRING=${CMAKE_Fortran_COMPILER}
53 -DCMAKE_Fortran_FLAGS:STRING=${CMAKE_Fortran_FLAGS}
54 -DCMAKE_Fortran_FLAGS_DEBUG:STRING=${CMAKE_Fortran_FLAGS_DEBUG}
55 -DCMAKE_Fortran_FLAGS_RELEASE:STRING=${CMAKE_Fortran_FLAGS_RELEASE}
56 -DCMAKE_Fortran_FLAGS_MINSIZEREL:STRING=${CMAKE_Fortran_FLAGS_MINSIZEREL}
57 -DCMAKE_Fortran_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_Fortran_FLAGS_RELWITHDEBINFO}
59 ADD_CUSTOM_TARGET(ExternalTarget ALL DEPENDS ${testf_BINARY_DIR}/ExternalProject)
61 # Test module output directory if available.
62 IF(CMAKE_Fortran_MODDIR_FLAG)
63 SET(Library_MODDIR "${testf_BINARY_DIR}/Library/modules")
64 ELSE(CMAKE_Fortran_MODDIR_FLAG)
65 SET(Library_MODDIR "${testf_BINARY_DIR}/Library")
66 ENDIF(CMAKE_Fortran_MODDIR_FLAG)
68 ADD_SUBDIRECTORY(Library)
69 ADD_SUBDIRECTORY(Executable)
70 ENDIF(TEST_MODULE_DEPENDS)