Preset the environment for Intel Fortran and G95.
This commit was SVN r22563.
Этот коммит содержится в:
родитель
cd5012d481
Коммит
1c096aece9
@ -78,6 +78,7 @@ MACRO(OMPI_F77_CHECK FORTRAN_TYPE C_TYPE TYPE_LIST EXPECTED_SIZE)
|
|||||||
ENDIF(ofc_have_type)
|
ENDIF(ofc_have_type)
|
||||||
|
|
||||||
ENDIF(NOT ${ofc_expected_size} STREQUAL "-1" AND NOT ${ofc_type_size} EQUAL "${ofc_expected_size}")
|
ENDIF(NOT ${ofc_expected_size} STREQUAL "-1" AND NOT ${ofc_type_size} EQUAL "${ofc_expected_size}")
|
||||||
|
SET(F77_SETUP_${TYPE_NAME}_DONE TRUE CACHE INTERNAL "F77 ${TYPE_NAME} check done or not.")
|
||||||
ENDIF(ofc_have_type)
|
ENDIF(ofc_have_type)
|
||||||
|
|
||||||
# We always need these defines -- even if we don't have a given type,
|
# We always need these defines -- even if we don't have a given type,
|
||||||
@ -89,8 +90,6 @@ MACRO(OMPI_F77_CHECK FORTRAN_TYPE C_TYPE TYPE_LIST EXPECTED_SIZE)
|
|||||||
SET(ompi_fortran_${TYPE_NAME_L}_t ${ofc_c_type} CACHE INTERNAL "ompi_fortran_${TYPE_NAME_L}_t")
|
SET(ompi_fortran_${TYPE_NAME_L}_t ${ofc_c_type} CACHE INTERNAL "ompi_fortran_${TYPE_NAME_L}_t")
|
||||||
ENDIF(NOT "${TYPE_LIST}" STREQUAL "")
|
ENDIF(NOT "${TYPE_LIST}" STREQUAL "")
|
||||||
|
|
||||||
SET(F77_SETUP_${TYPE_NAME}_DONE TRUE CACHE INTERNAL "F77 ${TYPE_NAME} check done or not.")
|
|
||||||
|
|
||||||
#MESSAGE("OMPI_HAVE_FORTRAN_${TYPE_NAME}:${OMPI_HAVE_FORTRAN_${TYPE_NAME}}")
|
#MESSAGE("OMPI_HAVE_FORTRAN_${TYPE_NAME}:${OMPI_HAVE_FORTRAN_${TYPE_NAME}}")
|
||||||
#MESSAGE("OMPI_SIZEOF_FORTRAN_${TYPE_NAME}:${OMPI_SIZEOF_FORTRAN_${TYPE_NAME}}")
|
#MESSAGE("OMPI_SIZEOF_FORTRAN_${TYPE_NAME}:${OMPI_SIZEOF_FORTRAN_${TYPE_NAME}}")
|
||||||
#MESSAGE("OMPI_ALIGNMENT_FORTRAN_${TYPE_NAME}:${OMPI_ALIGNMENT_FORTRAN_${TYPE_NAME}}")
|
#MESSAGE("OMPI_ALIGNMENT_FORTRAN_${TYPE_NAME}:${OMPI_ALIGNMENT_FORTRAN_${TYPE_NAME}}")
|
||||||
|
@ -15,6 +15,8 @@
|
|||||||
|
|
||||||
MACRO(OMPI_F77_CHECK_TYPE TYPE HAVE_TYPE)
|
MACRO(OMPI_F77_CHECK_TYPE TYPE HAVE_TYPE)
|
||||||
|
|
||||||
|
IF(NOT OMPI_HAVE_FORTRAN_${TYPE_NAME})
|
||||||
|
|
||||||
MESSAGE(STATUS "Check if Fortran 77 compiler supports ${TYPE}...")
|
MESSAGE(STATUS "Check if Fortran 77 compiler supports ${TYPE}...")
|
||||||
|
|
||||||
FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/check_fortran_type.f
|
FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/check_fortran_type.f
|
||||||
@ -29,11 +31,13 @@ MACRO(OMPI_F77_CHECK_TYPE TYPE HAVE_TYPE)
|
|||||||
ERROR_VARIABLE ERROR)
|
ERROR_VARIABLE ERROR)
|
||||||
|
|
||||||
IF(RESULT)
|
IF(RESULT)
|
||||||
SET(${HAVE_TYPE} 0)
|
SET(${HAVE_TYPE} 0 CACHE INTERNAL "have Fortran ${TYPE}")
|
||||||
MESSAGE(STATUS "Check if Fortran 77 compiler supports ${TYPE}...failed")
|
MESSAGE(STATUS "Check if Fortran 77 compiler supports ${TYPE}...failed")
|
||||||
ELSE(RESULT)
|
ELSE(RESULT)
|
||||||
SET(${HAVE_TYPE} 1)
|
SET(${HAVE_TYPE} 1 CACHE INTERNAL "have Fortran ${TYPE}")
|
||||||
MESSAGE(STATUS "Check if Fortran 77 compiler supports ${TYPE}...done")
|
MESSAGE(STATUS "Check if Fortran 77 compiler supports ${TYPE}...done")
|
||||||
ENDIF(RESULT)
|
ENDIF(RESULT)
|
||||||
|
|
||||||
|
ENDIF(NOT OMPI_HAVE_FORTRAN_${TYPE_NAME})
|
||||||
|
|
||||||
ENDMACRO(OMPI_F77_CHECK_TYPE TYPE HAVE_TYPE)
|
ENDMACRO(OMPI_F77_CHECK_TYPE TYPE HAVE_TYPE)
|
@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
|
|
||||||
MACRO(OMPI_F77_FIND_EXT_SYMBOL_CONVENTION)
|
MACRO(OMPI_F77_FIND_EXT_SYMBOL_CONVENTION)
|
||||||
IF(OMPI_WANT_F77_BINDINGS AND NOT DEFINED SYMBOL_CONVENTION_CHECK_DONE)
|
IF(NOT SYMBOL_CONVENTION_CHECK_DONE)
|
||||||
SET(OMPI_F77_DOUBLE_UNDERSCORE 0
|
SET(OMPI_F77_DOUBLE_UNDERSCORE 0
|
||||||
CACHE INTERNAL "external symbol convention - double underscore")
|
CACHE INTERNAL "external symbol convention - double underscore")
|
||||||
SET(OMPI_F77_SINGLE_UNDERSCORE 0
|
SET(OMPI_F77_SINGLE_UNDERSCORE 0
|
||||||
@ -21,7 +21,7 @@ MACRO(OMPI_F77_FIND_EXT_SYMBOL_CONVENTION)
|
|||||||
CACHE INTERNAL "external symbol convention - plain")
|
CACHE INTERNAL "external symbol convention - plain")
|
||||||
|
|
||||||
# make sure we know our linking convention...
|
# make sure we know our linking convention...
|
||||||
MESSAGE(STATUS "Check ${CMAKE_Fortran_COMPILER} external symbol convention...")
|
MESSAGE(STATUS "Check ${F77} external symbol convention...")
|
||||||
FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/conftest.f
|
FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/conftest.f
|
||||||
"\t subroutine FOO_bar(a) \n"
|
"\t subroutine FOO_bar(a) \n"
|
||||||
"\t integer a \n"
|
"\t integer a \n"
|
||||||
@ -29,7 +29,7 @@ MACRO(OMPI_F77_FIND_EXT_SYMBOL_CONVENTION)
|
|||||||
"\t return \n"
|
"\t return \n"
|
||||||
"\t end \n")
|
"\t end \n")
|
||||||
|
|
||||||
EXECUTE_PROCESS(COMMAND ${F77} ${OMPI_F77_OPTION_COMPILE} conftest.f ${OMPI_F77_OUTPUT_OBJ}conftest.lib
|
EXECUTE_PROCESS(COMMAND ${F77} ${F77_OPTION_COMPILE} conftest.f ${F77_OUTPUT_OBJ}conftest.lib
|
||||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp
|
||||||
OUTPUT_VARIABLE OUTPUT
|
OUTPUT_VARIABLE OUTPUT
|
||||||
RESULT_VARIABLE RESULT
|
RESULT_VARIABLE RESULT
|
||||||
@ -93,7 +93,7 @@ MACRO(OMPI_F77_FIND_EXT_SYMBOL_CONVENTION)
|
|||||||
SET(ompi_cv_f77_external_symbol "unknow")
|
SET(ompi_cv_f77_external_symbol "unknow")
|
||||||
ENDIF(NOT DOUBLE_UNDERSCORE STREQUAL "")
|
ENDIF(NOT DOUBLE_UNDERSCORE STREQUAL "")
|
||||||
|
|
||||||
MESSAGE(STATUS "Check ${CMAKE_Fortran_COMPILER} external symbol convention...${ompi_cv_f77_external_symbol}")
|
MESSAGE(STATUS "Check ${F77} external symbol convention...${ompi_cv_f77_external_symbol}")
|
||||||
|
|
||||||
# now test if we can link the library with c program
|
# now test if we can link the library with c program
|
||||||
FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/conftest_c.c
|
FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/conftest_c.c
|
||||||
@ -102,7 +102,7 @@ MACRO(OMPI_F77_FIND_EXT_SYMBOL_CONVENTION)
|
|||||||
FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CMakeLists.txt
|
FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CMakeLists.txt
|
||||||
"CMAKE_MINIMUM_REQUIRED(VERSION 2.4.6 FATAL_ERROR)\n"
|
"CMAKE_MINIMUM_REQUIRED(VERSION 2.4.6 FATAL_ERROR)\n"
|
||||||
"PROJECT(conftest_c C)\n"
|
"PROJECT(conftest_c C)\n"
|
||||||
"LINK_DIRECTORIES(\"${OMPI_F77_LIB_PATH}\")\n"
|
"LINK_DIRECTORIES(\"${F77_LIB_PATH}\")\n"
|
||||||
"ADD_EXECUTABLE(conftest_c conftest_c.c)\n"
|
"ADD_EXECUTABLE(conftest_c conftest_c.c)\n"
|
||||||
"TARGET_LINK_LIBRARIES(conftest_c ${OUTPUT_OBJ_FILE})\n")
|
"TARGET_LINK_LIBRARIES(conftest_c ${OUTPUT_OBJ_FILE})\n")
|
||||||
|
|
||||||
@ -115,24 +115,15 @@ MACRO(OMPI_F77_FIND_EXT_SYMBOL_CONVENTION)
|
|||||||
|
|
||||||
#MESSAGE("MY_OUTPUT:${MY_OUTPUT}")
|
#MESSAGE("MY_OUTPUT:${MY_OUTPUT}")
|
||||||
|
|
||||||
IF(NOT TEST_OK)
|
|
||||||
MESSAGE(FATAL_ERROR "C and Fortran 77 compilers are not link compatible. Can not continue.")
|
|
||||||
ENDIF(NOT TEST_OK)
|
|
||||||
|
|
||||||
SET(SYMBOL_CONVENTION_CHECK_DONE TRUE CACHE INTERNAL "Symbol convention check done.")
|
SET(SYMBOL_CONVENTION_CHECK_DONE TRUE CACHE INTERNAL "Symbol convention check done.")
|
||||||
|
|
||||||
ELSEIF(NOT OMPI_WANT_F77_BINDINGS)
|
IF(NOT TEST_OK)
|
||||||
SET(OMPI_F77_DOUBLE_UNDERSCORE 0
|
MESSAGE(FATAL_ERROR "C and Fortran 77 compilers are not link compatible. Can not continue.")
|
||||||
CACHE INTERNAL "external symbol convention - double underscore")
|
MESSAGE(STATUS "*** Probably you have to setup the library path of the Fortran compiler.")
|
||||||
SET(OMPI_F77_SINGLE_UNDERSCORE 0
|
|
||||||
CACHE INTERNAL "external symbol convention - single underscore")
|
|
||||||
SET(OMPI_F77_CAPS 0
|
|
||||||
CACHE INTERNAL "external symbol convention - captital")
|
|
||||||
SET(OMPI_F77_PLAIN 0
|
|
||||||
CACHE INTERNAL "external symbol convention - plain")
|
|
||||||
|
|
||||||
UNSET(SYMBOL_CONVENTION_CHECK_DONE CACHE)
|
UNSET(SYMBOL_CONVENTION_CHECK_DONE CACHE)
|
||||||
ENDIF(OMPI_WANT_F77_BINDINGS AND NOT DEFINED SYMBOL_CONVENTION_CHECK_DONE)
|
ENDIF(NOT TEST_OK)
|
||||||
|
|
||||||
|
ENDIF(NOT SYMBOL_CONVENTION_CHECK_DONE)
|
||||||
|
|
||||||
ENDMACRO(OMPI_F77_FIND_EXT_SYMBOL_CONVENTION)
|
ENDMACRO(OMPI_F77_FIND_EXT_SYMBOL_CONVENTION)
|
||||||
|
|
||||||
|
@ -61,14 +61,14 @@ MACRO(OMPI_F77_GET_SIZEOF TYPE OUTPUT_VARIABLE)
|
|||||||
|
|
||||||
# generate the Fortran object file
|
# generate the Fortran object file
|
||||||
# some Fortran compilers don't allow to compile and link in one step. :-(
|
# some Fortran compilers don't allow to compile and link in one step. :-(
|
||||||
EXECUTE_PROCESS(COMMAND ${F77} ${OMPI_F77_OPTION_COMPILE} conftest.f ${OMPI_F77_OUTPUT_OBJ}conftest.obj
|
EXECUTE_PROCESS(COMMAND ${F77} ${F77_OPTION_COMPILE} conftest.f ${F77_OUTPUT_OBJ}conftest.obj
|
||||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp
|
||||||
OUTPUT_VARIABLE OUTPUT
|
OUTPUT_VARIABLE OUTPUT
|
||||||
RESULT_VARIABLE RESULT
|
RESULT_VARIABLE RESULT
|
||||||
ERROR_VARIABLE ERROR)
|
ERROR_VARIABLE ERROR)
|
||||||
|
|
||||||
# link the C and Fortran object files.
|
# link the C and Fortran object files.
|
||||||
EXECUTE_PROCESS(COMMAND ${F77} conftest.obj conftest_c.obj ${OMPI_F77_OUTPUT_EXE}conftest.exe
|
EXECUTE_PROCESS(COMMAND ${F77} conftest.obj conftest_c.obj ${F77_OUTPUT_EXE}conftest.exe
|
||||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp
|
||||||
OUTPUT_VARIABLE OUTPUT
|
OUTPUT_VARIABLE OUTPUT
|
||||||
RESULT_VARIABLE RESULT
|
RESULT_VARIABLE RESULT
|
||||||
|
@ -26,7 +26,7 @@ MACRO(OMPI_MICROSOFT_COMPILER)
|
|||||||
MESSAGE( STATUS "Start Microsoft specific detection....")
|
MESSAGE( STATUS "Start Microsoft specific detection....")
|
||||||
|
|
||||||
# search for Microsoft VC tools
|
# search for Microsoft VC tools
|
||||||
SET(VC_BIN_PATH ${VC_BIN_PATH}
|
SET(CHECK_PATHS ${CHECK_PATHS}
|
||||||
"C:/Program Files/Microsoft Visual Studio 9.0/VC/bin"
|
"C:/Program Files/Microsoft Visual Studio 9.0/VC/bin"
|
||||||
"C:/Program Files (x86)/Microsoft Visual Studio 9.0/VC/bin"
|
"C:/Program Files (x86)/Microsoft Visual Studio 9.0/VC/bin"
|
||||||
"C:/Program Files/Microsoft Visual Studio 8/VC/BIN"
|
"C:/Program Files/Microsoft Visual Studio 8/VC/BIN"
|
||||||
@ -36,21 +36,22 @@ MACRO(OMPI_MICROSOFT_COMPILER)
|
|||||||
"$ENV{VS90COMNTOOLS}../../VC/bin"
|
"$ENV{VS90COMNTOOLS}../../VC/bin"
|
||||||
"$ENV{VS80COMNTOOLS}../../VC/bin")
|
"$ENV{VS80COMNTOOLS}../../VC/bin")
|
||||||
|
|
||||||
FIND_PROGRAM(CL_EXE cl PATHS ${VC_BIN_PATH})
|
FIND_PROGRAM(CL_EXE cl PATHS ${CHECK_PATHS})
|
||||||
|
|
||||||
# Set up VS environments.
|
# Set up VS environments.
|
||||||
GET_FILENAME_COMPONENT(CL_EXE_PATH ${CL_EXE} PATH)
|
GET_FILENAME_COMPONENT(VC_BIN_PATH ${CL_EXE} PATH)
|
||||||
GET_FILENAME_COMPONENT(CC ${CL_EXE} NAME CACHE)
|
GET_FILENAME_COMPONENT(COMPILER_NAME ${CL_EXE} NAME)
|
||||||
GET_FILENAME_COMPONENT(CXX ${CL_EXE} NAME CACHE)
|
SET(CC ${COMPILER_NAME} CACHE INTERNAL "C compiler executable")
|
||||||
|
SET(CXX ${COMPILER_NAME} CACHE INTERNAL "CXX compiler executable")
|
||||||
GET_FILENAME_COMPONENT(SDK_ROOT_PATH
|
GET_FILENAME_COMPONENT(SDK_ROOT_PATH
|
||||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows;CurrentInstallFolder]" ABSOLUTE CACHE)
|
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows;CurrentInstallFolder]" ABSOLUTE CACHE)
|
||||||
SET(VS_ROOT_DIR ${CL_EXE_PATH}/../../)
|
SET(VS_ROOT_DIR ${VC_BIN_PATH}/../../)
|
||||||
SET(VS_COMMON_TOOLS_DIR ${VS_ROOT_DIR}/Common7/Tools)
|
SET(VS_COMMON_TOOLS_DIR ${VS_ROOT_DIR}/Common7/Tools)
|
||||||
SET(VS_IDE_DIR ${VS_ROOT_DIR}/Common7/IDE)
|
SET(VS_IDE_DIR ${VS_ROOT_DIR}/Common7/IDE)
|
||||||
SET(VC_INCLUDE_DIR ${VS_ROOT_DIR}/VC/INCLUDE)
|
SET(VC_INCLUDE_DIR ${VS_ROOT_DIR}/VC/INCLUDE)
|
||||||
SET(VC_LIB_DIR ${VS_ROOT_DIR}/VC/LIB)
|
SET(VC_LIB_DIR ${VS_ROOT_DIR}/VC/LIB)
|
||||||
|
|
||||||
SET(ENV{PATH} "${CL_EXE_PATH};${SDK_ROOT_PATH}/bin;$ENV{PATH}")
|
SET(ENV{PATH} "${VC_BIN_PATH};${SDK_ROOT_PATH}/bin;${VS_IDE_DIR};$ENV{PATH}")
|
||||||
SET(ENV{INCLUDE} "${VC_INCLUDE_DIR};$ENV{INCLUDE}")
|
SET(ENV{INCLUDE} "${VC_INCLUDE_DIR};$ENV{INCLUDE}")
|
||||||
SET(ENV{LIB} "${VC_LIB_DIR};${SDK_ROOT_PATH}/lib;$ENV{LIB}")
|
SET(ENV{LIB} "${VC_LIB_DIR};${SDK_ROOT_PATH}/lib;$ENV{LIB}")
|
||||||
SET(ENV{LIBPATH} "${VC_LIB_DIR};${SDK_ROOT_PATH}/lib;$ENV{LIBPATH}")
|
SET(ENV{LIBPATH} "${VC_LIB_DIR};${SDK_ROOT_PATH}/lib;$ENV{LIBPATH}")
|
||||||
@ -63,7 +64,7 @@ MACRO(OMPI_MICROSOFT_COMPILER)
|
|||||||
SET(OMPI_C_OUTPUT_EXE "/Fe" CACHE INTERNAL
|
SET(OMPI_C_OUTPUT_EXE "/Fe" CACHE INTERNAL
|
||||||
"C compiler option for setting executable file name.")
|
"C compiler option for setting executable file name.")
|
||||||
|
|
||||||
SET(DUMP_UTIL "dumpbin.exe" CACHE INTERNAL "the dumpbin application.")
|
SET(DUMP_UTIL "${VC_BIN_PATH}/dumpbin.exe" CACHE INTERNAL "the dumpbin application.")
|
||||||
|
|
||||||
FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/cl_test.c
|
FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/cl_test.c
|
||||||
"int main() {return 0;}")
|
"int main() {return 0;}")
|
||||||
|
@ -8,7 +8,6 @@
|
|||||||
# $HEADER$
|
# $HEADER$
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# first try to find a f77 compiler, will be checked when f77 support is enabled.
|
# first try to find a f77 compiler, will be checked when f77 support is enabled.
|
||||||
|
|
||||||
# There might be a bug in CMake, the CMAKE_GENERATOR_FC is set to "ifort" by default,
|
# There might be a bug in CMake, the CMAKE_GENERATOR_FC is set to "ifort" by default,
|
||||||
@ -18,32 +17,49 @@ SET(CMAKE_GENERATOR_FC "")
|
|||||||
include(CMakeDetermineFortranCompiler)
|
include(CMakeDetermineFortranCompiler)
|
||||||
include(CMakeFortranInformation)
|
include(CMakeFortranInformation)
|
||||||
|
|
||||||
|
IF(OMPI_WANT_F77_BINDINGS AND NOT F77_SETUP_DONE)
|
||||||
|
|
||||||
GET_FILENAME_COMPONENT(F77 ${CMAKE_Fortran_COMPILER} NAME_WE)
|
GET_FILENAME_COMPONENT(F77 ${CMAKE_Fortran_COMPILER} NAME_WE)
|
||||||
GET_FILENAME_COMPONENT(F77_PATH ${CMAKE_Fortran_COMPILER} PATH)
|
GET_FILENAME_COMPONENT(F77_PATH ${CMAKE_Fortran_COMPILER} PATH)
|
||||||
|
|
||||||
# Default compiler settings.
|
# Default compiler settings.
|
||||||
SET(OMPI_F77_OPTION_COMPILE "-c" CACHE STRING
|
IF(${F77} STREQUAL "ifort")
|
||||||
|
#settings for Intel Fortran
|
||||||
|
SET(F77_OPTION_COMPILE "/c" CACHE INTERNAL
|
||||||
"Fortran compiler option for compiling without linking.")
|
"Fortran compiler option for compiling without linking.")
|
||||||
SET(OMPI_F77_OUTPUT_OBJ "-o" CACHE STRING
|
SET(F77_OUTPUT_OBJ "/Fo" CACHE INTERNAL
|
||||||
"Fortran compiler option for setting object file name.")
|
"Fortran compiler option for setting object file name.")
|
||||||
SET(OMPI_F77_OUTPUT_EXE "-o" CACHE STRING
|
SET(F77_OUTPUT_EXE "/Fe" CACHE INTERNAL
|
||||||
"Fortran compiler option for setting executable file name.")
|
"Fortran compiler option for setting executable file name.")
|
||||||
SET(OMPI_F77_LIB_PATH "" CACHE PATH
|
FIND_LIBRARY(F77_IFCONSOL_LIB ifconsol.lib PATHS ${F77_PATH}/../../)
|
||||||
|
GET_FILENAME_COMPONENT(F77_LIB_PATH ${F77_IFCONSOL_LIB} PATH)
|
||||||
|
UNSET(F77_IFCONSOL_LIB CACHE)
|
||||||
|
ELSEIF(${F77} STREQUAL "g95")
|
||||||
|
#settings for G95
|
||||||
|
SET(F77_OPTION_COMPILE "-c" CACHE INTERNAL
|
||||||
|
"Fortran compiler option for compiling without linking.")
|
||||||
|
SET(F77_OUTPUT_OBJ "-o" CACHE INTERNAL
|
||||||
|
"Fortran compiler option for setting object file name.")
|
||||||
|
SET(F77_OUTPUT_EXE "-o" CACHE INTERNAL
|
||||||
|
"Fortran compiler option for setting executable file name.")
|
||||||
|
ELSE(${F77} STREQUAL "ifort")
|
||||||
|
# in other case, let user specify their fortran configrations.
|
||||||
|
SET(F77_OPTION_COMPILE "-c" CACHE STRING
|
||||||
|
"Fortran compiler option for compiling without linking.")
|
||||||
|
SET(F77_OUTPUT_OBJ "-o" CACHE STRING
|
||||||
|
"Fortran compiler option for setting object file name.")
|
||||||
|
SET(F77_OUTPUT_EXE "-o" CACHE STRING
|
||||||
|
"Fortran compiler option for setting executable file name.")
|
||||||
|
SET(F77_LIB_PATH "" CACHE PATH
|
||||||
"Library path for the fortran compiler")
|
"Library path for the fortran compiler")
|
||||||
SET(OMPI_F77_INCLUDE_PATH "" CACHE PATH
|
SET(F77_INCLUDE_PATH "" CACHE PATH
|
||||||
"Include path for the fortran compiler")
|
"Include path for the fortran compiler")
|
||||||
|
ENDIF(${F77} STREQUAL "ifort")
|
||||||
INCLUDE(F77_find_ext_symbol_convention)
|
|
||||||
# make sure we know the linking convention
|
|
||||||
# this macro will also test linking with C code
|
|
||||||
OMPI_F77_FIND_EXT_SYMBOL_CONVENTION()
|
|
||||||
|
|
||||||
IF(OMPI_WANT_F77_BINDINGS AND NOT F77_SETUP_DONE)
|
|
||||||
|
|
||||||
# Export env variables for fortran compiler.
|
# Export env variables for fortran compiler.
|
||||||
SET(ENV{PATH} "${F77_PATH};$ENV{PATH}")
|
SET(ENV{PATH} "${F77_PATH};$ENV{PATH}")
|
||||||
SET(ENV{LIB} "${OMPI_F77_LIB_PATH};$ENV{LIB}")
|
SET(ENV{LIB} "${F77_LIB_PATH};$ENV{LIB}")
|
||||||
SET(ENV{INCLUDE} "${OMPI_F77_INCLUDE_PATH};$ENV{INCLUDE}")
|
SET(ENV{INCLUDE} "${F77_INCLUDE_PATH};$ENV{INCLUDE}")
|
||||||
|
|
||||||
# make sure the compiler actually works, if not cross-compiling
|
# make sure the compiler actually works, if not cross-compiling
|
||||||
MESSAGE(STATUS "Checking for working Fortran compiler...")
|
MESSAGE(STATUS "Checking for working Fortran compiler...")
|
||||||
@ -62,11 +78,33 @@ IF(OMPI_WANT_F77_BINDINGS AND NOT F77_SETUP_DONE)
|
|||||||
IF(RESULT)
|
IF(RESULT)
|
||||||
MESSAGE("Fortran compiler ${F77} can't compile a simple fortran program.")
|
MESSAGE("Fortran compiler ${F77} can't compile a simple fortran program.")
|
||||||
MESSAGE(FATAL_ERROR "Cannot continue. Please check Fortran compiler installation, or disable Fortran 77 support.")
|
MESSAGE(FATAL_ERROR "Cannot continue. Please check Fortran compiler installation, or disable Fortran 77 support.")
|
||||||
|
SET(F77_SETUP_DONE FALSE CACHE INTERNAL "f77 setup done.")
|
||||||
ELSE(RESULT)
|
ELSE(RESULT)
|
||||||
MESSAGE(STATUS "Checking for working Fortran compiler...${F77}")
|
MESSAGE(STATUS "Checking for working Fortran compiler...${F77}")
|
||||||
|
SET(F77_SETUP_DONE TRUE CACHE INTERNAL "f77 setup done.")
|
||||||
ENDIF(RESULT)
|
ENDIF(RESULT)
|
||||||
|
|
||||||
|
INCLUDE(F77_find_ext_symbol_convention)
|
||||||
|
# make sure we know the linking convention
|
||||||
|
# this macro will also test linking with C code
|
||||||
|
OMPI_F77_FIND_EXT_SYMBOL_CONVENTION()
|
||||||
|
|
||||||
SET(F77_SETUP_DONE TRUE CACHE INTERNAL "f77 setup done.")
|
ELSEIF(NOT OMPI_WANT_F77_BINDINGS)
|
||||||
|
SET(OMPI_F77_DOUBLE_UNDERSCORE 0
|
||||||
|
CACHE INTERNAL "external symbol convention - double underscore")
|
||||||
|
SET(OMPI_F77_SINGLE_UNDERSCORE 0
|
||||||
|
CACHE INTERNAL "external symbol convention - single underscore")
|
||||||
|
SET(OMPI_F77_CAPS 0
|
||||||
|
CACHE INTERNAL "external symbol convention - captital")
|
||||||
|
SET(OMPI_F77_PLAIN 0
|
||||||
|
CACHE INTERNAL "external symbol convention - plain")
|
||||||
|
|
||||||
|
UNSET(SYMBOL_CONVENTION_CHECK_DONE CACHE)
|
||||||
|
UNSET(F77_OPTION_COMPILE CACHE)
|
||||||
|
UNSET(F77_OUTPUT_OBJ CACHE)
|
||||||
|
UNSET(F77_OUTPUT_EXE CACHE)
|
||||||
|
UNSET(F77_LIB_PATH CACHE)
|
||||||
|
UNSET(F77_INCLUDE_PATH CACHE)
|
||||||
|
UNSET(F77_IFCONSOL_LIB CACHE)
|
||||||
|
UNSET(F77_SETUP_DONE CACHE)
|
||||||
ENDIF(OMPI_WANT_F77_BINDINGS AND NOT F77_SETUP_DONE)
|
ENDIF(OMPI_WANT_F77_BINDINGS AND NOT F77_SETUP_DONE)
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user