|
@@ -178,27 +178,25 @@ set(OpenMP_Fortran_TEST_SOURCE
|
|
|
"
|
|
"
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
-function(_OPENMP_WRITE_SOURCE_FILE LANG SRC_FILE_CONTENT_VAR SRC_FILE_NAME SRC_FILE_FULLPATH)
|
|
|
|
|
- set(WORK_DIR ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/FindOpenMP)
|
|
|
|
|
|
|
+macro(_OPENMP_PREPARE_SOURCE LANG CONTENT_ID NAME_PREFIX FULLNAME_VAR CONTENT_VAR)
|
|
|
if("${LANG}" STREQUAL "C")
|
|
if("${LANG}" STREQUAL "C")
|
|
|
- set(SRC_FILE "${WORK_DIR}/${SRC_FILE_NAME}.c")
|
|
|
|
|
- file(WRITE "${SRC_FILE}" "${OpenMP_C_CXX_${SRC_FILE_CONTENT_VAR}}")
|
|
|
|
|
|
|
+ set(${FULLNAME_VAR} "${NAME_PREFIX}.c")
|
|
|
|
|
+ set(${CONTENT_VAR} "${OpenMP_C_CXX_${CONTENT_ID}}")
|
|
|
elseif("${LANG}" STREQUAL "CXX")
|
|
elseif("${LANG}" STREQUAL "CXX")
|
|
|
- set(SRC_FILE "${WORK_DIR}/${SRC_FILE_NAME}.cpp")
|
|
|
|
|
- file(WRITE "${SRC_FILE}" "${OpenMP_C_CXX_${SRC_FILE_CONTENT_VAR}}")
|
|
|
|
|
|
|
+ set(${FULLNAME_VAR} "${NAME_PREFIX}.cpp")
|
|
|
|
|
+ set(${CONTENT_VAR} "${OpenMP_C_CXX_${CONTENT_ID}}")
|
|
|
elseif("${LANG}" STREQUAL "Fortran")
|
|
elseif("${LANG}" STREQUAL "Fortran")
|
|
|
- set(SRC_FILE "${WORK_DIR}/${SRC_FILE_NAME}.f90")
|
|
|
|
|
- file(WRITE "${SRC_FILE}_in" "${OpenMP_Fortran_${SRC_FILE_CONTENT_VAR}}")
|
|
|
|
|
- configure_file("${SRC_FILE}_in" "${SRC_FILE}" @ONLY)
|
|
|
|
|
|
|
+ set(${FULLNAME_VAR} "${NAME_PREFIX}.F90")
|
|
|
|
|
+ string(CONFIGURE "${OpenMP_Fortran_${CONTENT_ID}}" ${CONTENT_VAR} @ONLY)
|
|
|
endif()
|
|
endif()
|
|
|
- set(${SRC_FILE_FULLPATH} "${SRC_FILE}" PARENT_SCOPE)
|
|
|
|
|
-endfunction()
|
|
|
|
|
|
|
+endmacro()
|
|
|
|
|
|
|
|
include(${CMAKE_CURRENT_LIST_DIR}/CMakeParseImplicitLinkInfo.cmake)
|
|
include(${CMAKE_CURRENT_LIST_DIR}/CMakeParseImplicitLinkInfo.cmake)
|
|
|
|
|
|
|
|
function(_OPENMP_GET_FLAGS LANG FLAG_MODE OPENMP_FLAG_VAR OPENMP_LIB_NAMES_VAR)
|
|
function(_OPENMP_GET_FLAGS LANG FLAG_MODE OPENMP_FLAG_VAR OPENMP_LIB_NAMES_VAR)
|
|
|
_OPENMP_FLAG_CANDIDATES("${LANG}")
|
|
_OPENMP_FLAG_CANDIDATES("${LANG}")
|
|
|
- _OPENMP_WRITE_SOURCE_FILE("${LANG}" "TEST_SOURCE" OpenMPTryFlag _OPENMP_TEST_SRC)
|
|
|
|
|
|
|
+ _OPENMP_PREPARE_SOURCE("${LANG}" TEST_SOURCE OpenMPTryFlag
|
|
|
|
|
+ _OPENMP_TEST_SRC_NAME _OPENMP_TEST_SRC_CONTENT)
|
|
|
|
|
|
|
|
unset(OpenMP_VERBOSE_COMPILE_OPTIONS)
|
|
unset(OpenMP_VERBOSE_COMPILE_OPTIONS)
|
|
|
separate_arguments(OpenMP_VERBOSE_OPTIONS NATIVE_COMMAND "${CMAKE_${LANG}_VERBOSE_FLAG}")
|
|
separate_arguments(OpenMP_VERBOSE_OPTIONS NATIVE_COMMAND "${CMAKE_${LANG}_VERBOSE_FLAG}")
|
|
@@ -215,7 +213,7 @@ function(_OPENMP_GET_FLAGS LANG FLAG_MODE OPENMP_FLAG_VAR OPENMP_LIB_NAMES_VAR)
|
|
|
endif()
|
|
endif()
|
|
|
string(REGEX REPLACE "[-/=+]" "" OPENMP_PLAIN_FLAG "${OPENMP_FLAG}")
|
|
string(REGEX REPLACE "[-/=+]" "" OPENMP_PLAIN_FLAG "${OPENMP_FLAG}")
|
|
|
try_compile( OpenMP_COMPILE_RESULT_${FLAG_MODE}_${OPENMP_PLAIN_FLAG}
|
|
try_compile( OpenMP_COMPILE_RESULT_${FLAG_MODE}_${OPENMP_PLAIN_FLAG}
|
|
|
- SOURCES ${_OPENMP_TEST_SRC}
|
|
|
|
|
|
|
+ SOURCE_FROM_VAR "${_OPENMP_TEST_SRC_NAME}" _OPENMP_TEST_SRC_CONTENT
|
|
|
CMAKE_FLAGS "-DCOMPILE_DEFINITIONS:STRING=${OPENMP_FLAGS_TEST}"
|
|
CMAKE_FLAGS "-DCOMPILE_DEFINITIONS:STRING=${OPENMP_FLAGS_TEST}"
|
|
|
LINK_LIBRARIES ${CMAKE_${LANG}_VERBOSE_FLAG}
|
|
LINK_LIBRARIES ${CMAKE_${LANG}_VERBOSE_FLAG}
|
|
|
OUTPUT_VARIABLE OpenMP_TRY_COMPILE_OUTPUT
|
|
OUTPUT_VARIABLE OpenMP_TRY_COMPILE_OUTPUT
|
|
@@ -313,7 +311,7 @@ function(_OPENMP_GET_FLAGS LANG FLAG_MODE OPENMP_FLAG_VAR OPENMP_LIB_NAMES_VAR)
|
|
|
# explicitly add a search path if the header can't be found on the
|
|
# explicitly add a search path if the header can't be found on the
|
|
|
# default header search path already.
|
|
# default header search path already.
|
|
|
try_compile( OpenMP_COMPILE_RESULT_${FLAG_MODE}_${OPENMP_PLAIN_FLAG}
|
|
try_compile( OpenMP_COMPILE_RESULT_${FLAG_MODE}_${OPENMP_PLAIN_FLAG}
|
|
|
- SOURCES ${_OPENMP_TEST_SRC}
|
|
|
|
|
|
|
+ SOURCE_FROM_VAR "${_OPENMP_TEST_SRC_NAME}" _OPENMP_TEST_SRC_CONTENT
|
|
|
CMAKE_FLAGS "-DCOMPILE_DEFINITIONS:STRING=${OPENMP_FLAGS_TEST}"
|
|
CMAKE_FLAGS "-DCOMPILE_DEFINITIONS:STRING=${OPENMP_FLAGS_TEST}"
|
|
|
LINK_LIBRARIES ${CMAKE_${LANG}_VERBOSE_FLAG} ${OpenMP_libomp_LIBRARY}
|
|
LINK_LIBRARIES ${CMAKE_${LANG}_VERBOSE_FLAG} ${OpenMP_libomp_LIBRARY}
|
|
|
OUTPUT_VARIABLE OpenMP_TRY_COMPILE_OUTPUT
|
|
OUTPUT_VARIABLE OpenMP_TRY_COMPILE_OUTPUT
|
|
@@ -324,7 +322,7 @@ function(_OPENMP_GET_FLAGS LANG FLAG_MODE OPENMP_FLAG_VAR OPENMP_LIB_NAMES_VAR)
|
|
|
set(OpenMP_${LANG}_INCLUDE_DIR "${OpenMP_${LANG}_INCLUDE_DIR}" PARENT_SCOPE)
|
|
set(OpenMP_${LANG}_INCLUDE_DIR "${OpenMP_${LANG}_INCLUDE_DIR}" PARENT_SCOPE)
|
|
|
if(OpenMP_${LANG}_INCLUDE_DIR)
|
|
if(OpenMP_${LANG}_INCLUDE_DIR)
|
|
|
try_compile( OpenMP_COMPILE_RESULT_${FLAG_MODE}_${OPENMP_PLAIN_FLAG}
|
|
try_compile( OpenMP_COMPILE_RESULT_${FLAG_MODE}_${OPENMP_PLAIN_FLAG}
|
|
|
- SOURCES ${_OPENMP_TEST_SRC}
|
|
|
|
|
|
|
+ SOURCE_FROM_VAR "${_OPENMP_TEST_SRC_NAME}" _OPENMP_TEST_SRC_CONTENT
|
|
|
CMAKE_FLAGS "-DCOMPILE_DEFINITIONS:STRING=${OPENMP_FLAGS_TEST}"
|
|
CMAKE_FLAGS "-DCOMPILE_DEFINITIONS:STRING=${OPENMP_FLAGS_TEST}"
|
|
|
"-DINCLUDE_DIRECTORIES:STRING=${OpenMP_${LANG}_INCLUDE_DIR}"
|
|
"-DINCLUDE_DIRECTORIES:STRING=${OpenMP_${LANG}_INCLUDE_DIR}"
|
|
|
LINK_LIBRARIES ${CMAKE_${LANG}_VERBOSE_FLAG} ${OpenMP_libomp_LIBRARY}
|
|
LINK_LIBRARIES ${CMAKE_${LANG}_VERBOSE_FLAG} ${OpenMP_libomp_LIBRARY}
|
|
@@ -347,7 +345,7 @@ function(_OPENMP_GET_FLAGS LANG FLAG_MODE OPENMP_FLAG_VAR OPENMP_LIB_NAMES_VAR)
|
|
|
mark_as_advanced(OpenMP_libomp_LIBRARY)
|
|
mark_as_advanced(OpenMP_libomp_LIBRARY)
|
|
|
if(OpenMP_libomp_LIBRARY)
|
|
if(OpenMP_libomp_LIBRARY)
|
|
|
try_compile( OpenMP_COMPILE_RESULT_${FLAG_MODE}_${OPENMP_PLAIN_FLAG}
|
|
try_compile( OpenMP_COMPILE_RESULT_${FLAG_MODE}_${OPENMP_PLAIN_FLAG}
|
|
|
- SOURCES ${_OPENMP_TEST_SRC}
|
|
|
|
|
|
|
+ SOURCE_FROM_VAR "${_OPENMP_TEST_SRC_NAME}" _OPENMP_TEST_SRC_CONTENT
|
|
|
CMAKE_FLAGS "-DCOMPILE_DEFINITIONS:STRING=${OPENMP_FLAGS_TEST}"
|
|
CMAKE_FLAGS "-DCOMPILE_DEFINITIONS:STRING=${OPENMP_FLAGS_TEST}"
|
|
|
LINK_LIBRARIES ${CMAKE_${LANG}_VERBOSE_FLAG} ${OpenMP_libomp_LIBRARY}
|
|
LINK_LIBRARIES ${CMAKE_${LANG}_VERBOSE_FLAG} ${OpenMP_libomp_LIBRARY}
|
|
|
OUTPUT_VARIABLE OpenMP_TRY_COMPILE_OUTPUT
|
|
OUTPUT_VARIABLE OpenMP_TRY_COMPILE_OUTPUT
|
|
@@ -409,7 +407,8 @@ set(OpenMP_Fortran_CHECK_VERSION_SOURCE
|
|
|
")
|
|
")
|
|
|
|
|
|
|
|
function(_OPENMP_GET_SPEC_DATE LANG SPEC_DATE)
|
|
function(_OPENMP_GET_SPEC_DATE LANG SPEC_DATE)
|
|
|
- _OPENMP_WRITE_SOURCE_FILE("${LANG}" "CHECK_VERSION_SOURCE" OpenMPCheckVersion _OPENMP_TEST_SRC)
|
|
|
|
|
|
|
+ _OPENMP_PREPARE_SOURCE("${LANG}" CHECK_VERSION_SOURCE OpenMPCheckVersion
|
|
|
|
|
+ _OPENMP_TEST_SRC_NAME _OPENMP_TEST_SRC_CONTENT)
|
|
|
|
|
|
|
|
unset(_includeDirFlags)
|
|
unset(_includeDirFlags)
|
|
|
if(OpenMP_${LANG}_INCLUDE_DIR)
|
|
if(OpenMP_${LANG}_INCLUDE_DIR)
|
|
@@ -419,10 +418,10 @@ function(_OPENMP_GET_SPEC_DATE LANG SPEC_DATE)
|
|
|
set(BIN_FILE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/FindOpenMP/ompver_${LANG}.bin")
|
|
set(BIN_FILE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/FindOpenMP/ompver_${LANG}.bin")
|
|
|
string(REGEX REPLACE "[-/=+]" "" OPENMP_PLAIN_FLAG "${OPENMP_FLAG}")
|
|
string(REGEX REPLACE "[-/=+]" "" OPENMP_PLAIN_FLAG "${OPENMP_FLAG}")
|
|
|
try_compile(OpenMP_SPECTEST_${LANG}_${OPENMP_PLAIN_FLAG}
|
|
try_compile(OpenMP_SPECTEST_${LANG}_${OPENMP_PLAIN_FLAG}
|
|
|
- SOURCES "${_OPENMP_TEST_SRC}"
|
|
|
|
|
- CMAKE_FLAGS "-DCOMPILE_DEFINITIONS:STRING=${OpenMP_${LANG}_FLAGS}" ${_includeDirFlags}
|
|
|
|
|
- COPY_FILE ${BIN_FILE}
|
|
|
|
|
- OUTPUT_VARIABLE OpenMP_TRY_COMPILE_OUTPUT)
|
|
|
|
|
|
|
+ SOURCE_FROM_VAR "${_OPENMP_TEST_SRC_NAME}" _OPENMP_TEST_SRC_CONTENT
|
|
|
|
|
+ CMAKE_FLAGS "-DCOMPILE_DEFINITIONS:STRING=${OpenMP_${LANG}_FLAGS}" ${_includeDirFlags}
|
|
|
|
|
+ COPY_FILE "${BIN_FILE}"
|
|
|
|
|
+ OUTPUT_VARIABLE OpenMP_TRY_COMPILE_OUTPUT)
|
|
|
|
|
|
|
|
if(${OpenMP_SPECTEST_${LANG}_${OPENMP_PLAIN_FLAG}})
|
|
if(${OpenMP_SPECTEST_${LANG}_${OPENMP_PLAIN_FLAG}})
|
|
|
file(STRINGS ${BIN_FILE} specstr LIMIT_COUNT 1 REGEX "INFO:OpenMP-date")
|
|
file(STRINGS ${BIN_FILE} specstr LIMIT_COUNT 1 REGEX "INFO:OpenMP-date")
|