[Cmake-commits] [cmake-commits] hoffman committed CMakeLists.txt 1.13.2.1 1.13.2.2

cmake-commits at cmake.org cmake-commits at cmake.org
Tue Dec 2 07:07:44 EST 2008


Update of /cvsroot/CMake/CMake/Tests/Fortran
In directory public:/mounts/ram/cvs-serv12155/Tests/Fortran

Modified Files:
      Tag: CMake-2-6
	CMakeLists.txt 
Log Message:
ENH: merge in RC 5


Index: CMakeLists.txt
===================================================================
RCS file: /cvsroot/CMake/CMake/Tests/Fortran/CMakeLists.txt,v
retrieving revision 1.13.2.1
retrieving revision 1.13.2.2
diff -C 2 -d -r1.13.2.1 -r1.13.2.2
*** CMakeLists.txt	25 Mar 2008 23:59:12 -0000	1.13.2.1
--- CMakeLists.txt	2 Dec 2008 12:07:41 -0000	1.13.2.2
***************
*** 1,43 ****
  cmake_minimum_required (VERSION 2.6)
! PROJECT(testf Fortran)
! SET(CMAKE_VERBOSE_MAKEFILE 1)
! MESSAGE("ENV_FLAGS = $ENV{FFLAGS}")
! MESSAGE("CMAKE_Fortran_COMPILER_INIT = ${CMAKE_Fortran_COMPILER_INIT}")
! MESSAGE("CMAKE_Fortran_COMPILER_FULLPATH = ${CMAKE_Fortran_COMPILER_FULLPATH}")
! MESSAGE("CMAKE_Fortran_COMPILER = ${CMAKE_Fortran_COMPILER}")
! MESSAGE("CMAKE_Fortran_FLAGS = ${CMAKE_Fortran_FLAGS}")
! ADD_EXECUTABLE(testf hello.f)
  
! SET(TEST_MODULE_DEPENDS 0)
! IF(CMAKE_Fortran_COMPILER_SUPPORTS_F90)
!   ADD_EXECUTABLE(test_module
      test_module_main.f90
      test_module_implementation.f90
      test_module_interface.f90)
  
!   ADD_EXECUTABLE(test_use_in_comment_fixedform
      test_use_in_comment_fixedform.f)
!   ADD_EXECUTABLE(test_use_in_comment_freeform 
      test_use_in_comment_freeform.f90)
  
!   ADD_EXECUTABLE(test_in_interface 
      in_interface/main.f90
      in_interface/module.f90)
  
!   ADD_DEFINITIONS(-DFOO -DBAR=1)
!   ADD_EXECUTABLE(test_preprocess test_preprocess.F90)
  
!   SET(TEST_MODULE_DEPENDS 1)
! ENDIF(CMAKE_Fortran_COMPILER_SUPPORTS_F90)
  
! IF(TEST_MODULE_DEPENDS)
    # Build the external project separately using a custom target.
    # Make sure it uses the same build configuration as this test.
!   IF(CMAKE_CONFIGURATION_TYPES)
!     SET(External_CONFIG_TYPE -C "${CMAKE_CFG_INTDIR}")
!   ELSE(CMAKE_CONFIGURATION_TYPES)
!     SET(External_CONFIG_TYPE)
!   ENDIF(CMAKE_CONFIGURATION_TYPES)
!   ADD_CUSTOM_COMMAND(
      OUTPUT ${testf_BINARY_DIR}/ExternalProject
      COMMAND ${CMAKE_CTEST_COMMAND}
--- 1,145 ----
  cmake_minimum_required (VERSION 2.6)
! project(testf Fortran C)
! message("CTEST_FULL_OUTPUT ")
! set(CMAKE_VERBOSE_MAKEFILE 1)
! message("ENV_FLAGS = $ENV{FFLAGS}")
! message("CMAKE_Fortran_COMPILER_INIT = ${CMAKE_Fortran_COMPILER_INIT}")
! message("CMAKE_Fortran_COMPILER_FULLPATH = ${CMAKE_Fortran_COMPILER_FULLPATH}")
! message("CMAKE_Fortran_COMPILER = ${CMAKE_Fortran_COMPILER}")
! message("CMAKE_Fortran_FLAGS = ${CMAKE_Fortran_FLAGS}")
! add_executable(testf hello.f)
  
! 
! function(test_fortran_c_interface_module)
!   message(STATUS "Testing FortranCInterface module")
!   # test the C to Fortran interface module
!   include(FortranCInterface)
!   if(CMAKE_Fortran_COMPILER_SUPPORTS_F90)
!     if(FORTRAN_C_MODULE_MANGLING_FOUND)
!       set(srcs foo.f)
!       set(FORTRAN_FUNCTIONS test_mod:sub)
!     else(FORTRAN_C_MODULE_MANGLING_FOUND)
!       if(CMAKE_Fortran_COMPILER_ID MATCHES "SunPro|MIPSpro")
!         message("${CMAKE_Fortran_COMPILER_ID} compilers do not support"
!           " linking Fortran module procedures from C")
!       else()
!         message("This will fail, but let the user see the error")
!         set(srcs foo.f)
!         set(FORTRAN_FUNCTIONS test_mod:sub)
!       endif()
!     endif(FORTRAN_C_MODULE_MANGLING_FOUND)
!   endif()
!   set(FORTRAN_FUNCTIONS ${FORTRAN_FUNCTIONS} my_sub mysub )
!   set(srcs ${srcs} mysub.f foo.c)
!   create_fortran_c_interface("F_" FORTRAN_FUNCTIONS 
!     "${testf_BINARY_DIR}/foo.h")
!   include_directories("${testf_BINARY_DIR}")
!   
!   # if the name mangling is not found for a F90 compiler
!   # print out some diagnostic stuff for the dashboard
!   if(CMAKE_Fortran_COMPILER_SUPPORTS_F90)
!     if(NOT FORTRAN_C_MODULE_MANGLING_FOUND)
!       file(GLOB_RECURSE O_OBJFILES
!         "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckFortranLink/*.o"
!         "*.o" )
!       file(GLOB_RECURSE OBJ_OBJFILES 
!         "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckFortranLink/*.obj")
!       find_program(DUMPBIN dumpbin)
!       find_program(NM nm)
!       foreach(ofile ${O_OBJFILES} ${OBJ_OBJFILES})
!         if(DEPENDS)
!           execute_process(COMMAND ${DUMPBIN} /symbols "${ofile}" 
!             OUTPUT_VARIABLE out)
!           message("symbols in ${ofile}:\n${out}")
!         endif()
!         if(NM)
!           execute_process(COMMAND ${NM} "${ofile}" OUTPUT_VARIABLE out)
!           message("symbols in ${ofile}:\n${out}")
!         endif()
!       endforeach()
!     endif()
!   endif()
!   message("Fortran = ${CMAKE_Fortran_COMPILER_ID}")
!   message("C = ${CMAKE_C_COMPILER_ID}")
!   add_executable(foo ${srcs})
!   if(NOT ("$ENV{EXTRA_FORTRAN_C_LIBS}" STREQUAL ""))
!     message(STATUS 
!       "linking in extra C to Fortran libs $ENV{EXTRA_FORTRAN_C_LIBS}")
!     target_link_libraries(foo $ENV{EXTRA_FORTRAN_C_LIBS})
!   endif()
!   # print out some stuff to help debug on machines via cdash
!   file(READ "${testf_BINARY_DIR}/foo.h" fooh)
!   message("foo.h contents:\n${fooh}")
! endfunction()
! 
! # if the id's match or the compilers are compatible, then
! # call the test_fortran_c_interface_module function
! if(("${CMAKE_Fortran_COMPILER_ID}" MATCHES "Intel")
!     AND 
!     ("${CMAKE_C_COMPILER_ID}" MATCHES "MSVC")
!     )
!   set(COMPATABLE_COMPILERS TRUE)
! endif()
! if(COMPATABLE_COMPILERS
!     OR ("${CMAKE_Fortran_COMPILER_ID}" MATCHES "${CMAKE_C_COMPILER_ID}" ))
!   test_fortran_c_interface_module()
! else()
!   message("Fortran does not match c compiler")
!   message("Fortran = ${CMAKE_Fortran_COMPILER_ID}")
!   message("C = ${CMAKE_C_COMPILER_ID}")
!   # hack to make g77 work after CL has been enabled 
!   # as a languge, cmake needs language specific versions
!   # of these variables....
!   if(WIN32 AND "${CMAKE_Fortran_COMPILER_ID}" MATCHES "GNU")
!     set(CMAKE_CREATE_CONSOLE_EXE )
!     set(CMAKE_LIBRARY_PATH_FLAG "-L")
!     set(CMAKE_LINK_LIBRARY_FLAG "-l")
!     set(CMAKE_LINK_LIBRARY_SUFFIX )
!   endif()
!   # gnu and sunpro do not use the same flags here...
!   # however if LDFLAGS is used to set -m64 it causes odd stuf
!   # with the fortran build
!   if( ("${CMAKE_C_COMPILER_ID}" MATCHES "GNU")
!       AND ("${CMAKE_Fortran_COMPILER_ID}" MATCHES "SunPro"))
!     set(CMAKE_EXE_LINKER_FLAGS "")
!     set(CMAKE_Fortran_FLAGS "")
!   endif()
! 
! endif()
! 
! 
! 
! 
! set(TEST_MODULE_DEPENDS 0)
! if(CMAKE_Fortran_COMPILER_SUPPORTS_F90)
!   add_executable(test_module
      test_module_main.f90
      test_module_implementation.f90
      test_module_interface.f90)
  
!   add_executable(test_use_in_comment_fixedform
      test_use_in_comment_fixedform.f)
!   add_executable(test_use_in_comment_freeform 
      test_use_in_comment_freeform.f90)
  
!   add_executable(test_in_interface 
      in_interface/main.f90
      in_interface/module.f90)
  
!   add_definitions(-DFOO -DBAR=1)
!   add_executable(test_preprocess test_preprocess.F90)
  
!   set(TEST_MODULE_DEPENDS 1)
! endif(CMAKE_Fortran_COMPILER_SUPPORTS_F90)
  
! if(TEST_MODULE_DEPENDS)
    # Build the external project separately using a custom target.
    # Make sure it uses the same build configuration as this test.
!   if(CMAKE_CONFIGURATION_TYPES)
!     set(External_CONFIG_TYPE -C "${CMAKE_CFG_INTDIR}")
!   else(CMAKE_CONFIGURATION_TYPES)
!     set(External_CONFIG_TYPE)
!   endif(CMAKE_CONFIGURATION_TYPES)
!   add_custom_command(
      OUTPUT ${testf_BINARY_DIR}/ExternalProject
      COMMAND ${CMAKE_CTEST_COMMAND}
***************
*** 58,71 ****
                           -DCMAKE_Fortran_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_Fortran_FLAGS_RELWITHDEBINFO}
           )
!   ADD_CUSTOM_TARGET(ExternalTarget ALL DEPENDS ${testf_BINARY_DIR}/ExternalProject)
  
    # Test module output directory if available.
!   IF(CMAKE_Fortran_MODDIR_FLAG)
!     SET(Library_MODDIR "${testf_BINARY_DIR}/Library/modules")
!   ELSE(CMAKE_Fortran_MODDIR_FLAG)
!     SET(Library_MODDIR "${testf_BINARY_DIR}/Library")
!   ENDIF(CMAKE_Fortran_MODDIR_FLAG)
  
!   ADD_SUBDIRECTORY(Library)
!   ADD_SUBDIRECTORY(Executable)
! ENDIF(TEST_MODULE_DEPENDS)
--- 160,173 ----
                           -DCMAKE_Fortran_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_Fortran_FLAGS_RELWITHDEBINFO}
           )
!   add_custom_target(ExternalTarget ALL DEPENDS ${testf_BINARY_DIR}/ExternalProject)
  
    # Test module output directory if available.
!   if(CMAKE_Fortran_MODDIR_FLAG)
!     set(Library_MODDIR "${testf_BINARY_DIR}/Library/modules")
!   else(CMAKE_Fortran_MODDIR_FLAG)
!     set(Library_MODDIR "${testf_BINARY_DIR}/Library")
!   endif(CMAKE_Fortran_MODDIR_FLAG)
  
!   add_subdirectory(Library)
!   add_subdirectory(Executable)
! endif(TEST_MODULE_DEPENDS)



More information about the Cmake-commits mailing list