Initial commit.
[CMakeLuaTailorHgBridge.git] / CMakeLua / Tests / Fortran / CMakeLists.txt
blob54f18d06d1c74e5a1645ce4f24a4a26b659ebd36
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)
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)
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 
23     in_interface/main.f90
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)
40   ADD_CUSTOM_COMMAND(
41     OUTPUT ${testf_BINARY_DIR}/ExternalProject
42     COMMAND ${CMAKE_CTEST_COMMAND}
43     ARGS ${External_CONFIG_TYPE}
44          --build-and-test
45          ${testf_SOURCE_DIR}/External
46          ${testf_BINARY_DIR}/External
47          --build-noclean
48          --build-two-config
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}
58          )
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)