HEX
Server: nginx/1.28.3
System: Linux ip-172-31-12-242 6.17.0-1007-aws #7~24.04.1-Ubuntu SMP Thu Jan 22 21:04:49 UTC 2026 x86_64
User: root (0)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: //usr/share/cmake-3.28/Modules/Platform/Windows-LLVMFlang-Fortran.cmake
if("x${CMAKE_Fortran_SIMULATE_ID}" STREQUAL "xGNU")
  include(Platform/Windows-GNU)
  __windows_compiler_gnu(Fortran)
elseif("x${CMAKE_Fortran_SIMULATE_ID}" STREQUAL "xMSVC")
  include(Platform/Windows-MSVC)
  __windows_compiler_msvc(Fortran)

  # FIXME(LLVMFlang): It does not provides MSVC runtime library selection flags.
  # It should be given a flag like classic Flang's `-Xclang --dependent-lib=`, or a
  # dedicated flag to select among multiple `Fortran*.lib` runtime library variants
  # that each depend on a different MSVC runtime library.  For now, LLVMFlang's
  # `Fortran*.lib` runtime libraries hard-code use of msvcrt (MultiThreadedDLL),
  # so we link to it ourselves.
  set(_LLVMFlang_LINK_RUNTIME "-defaultlib:msvcrt")
  set(CMAKE_Fortran_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreaded         "")
  set(CMAKE_Fortran_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDLL      "")
  set(CMAKE_Fortran_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDebug    "")
  set(CMAKE_Fortran_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDebugDLL "")

  # LLVMFlang, like Clang, does not provide all debug information format flags.
  # In order to provide easy integration with C and C++ projects that use the
  # other debug information formats, pretend to support them, and just do not
  # actually generate any debug information for Fortran.
  set(CMAKE_Fortran_COMPILE_OPTIONS_MSVC_DEBUG_INFORMATION_FORMAT_Embedded        -g)
  set(CMAKE_Fortran_COMPILE_OPTIONS_MSVC_DEBUG_INFORMATION_FORMAT_ProgramDatabase "") # not supported by LLVMFlang
  set(CMAKE_Fortran_COMPILE_OPTIONS_MSVC_DEBUG_INFORMATION_FORMAT_EditAndContinue "") # not supported by LLVMFlang

  set(CMAKE_Fortran_COMPILE_OBJECT "<CMAKE_Fortran_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")

  if(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT_DEFAULT)
    set(_g "")
  else()
    set(_g " -g")
  endif()
  string(APPEND CMAKE_Fortran_FLAGS_DEBUG_INIT "${_g}")
  string(APPEND CMAKE_Fortran_FLAGS_RELEASE_INIT "")
  string(APPEND CMAKE_Fortran_FLAGS_RELWITHDEBINFO_INIT "${_g}")
  string(APPEND CMAKE_Fortran_FLAGS_MINSIZEREL_INIT "")
  unset(_g)

  # We link with lld-link.exe instead of the compiler driver, so explicitly
  # pass implicit link information previously detected from the compiler.
  set(_LLVMFlang_LINK_DIRS "${CMAKE_Fortran_IMPLICIT_LINK_DIRECTORIES}")
  list(TRANSFORM _LLVMFlang_LINK_DIRS PREPEND "-libpath:\"")
  list(TRANSFORM _LLVMFlang_LINK_DIRS APPEND "\"")
  string(JOIN " " _LLVMFlang_LINK_DIRS ${_LLVMFlang_LINK_DIRS})
  string(JOIN " " _LLVMFlang_LINK_LIBS ${CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES})
  foreach(v IN ITEMS
      CMAKE_Fortran_LINK_EXECUTABLE
      CMAKE_Fortran_CREATE_SHARED_LIBRARY
      CMAKE_Fortran_CREATE_SHARED_MODULE
      )
    string(APPEND "${v}" " ${_LLVMFlang_LINK_DIRS} ${_LLVMFlang_LINK_LIBS} ${_LLVMFlang_LINK_RUNTIME}")
  endforeach()
  unset(_LLVMFlang_LINK_DIRS)
  unset(_LLVMFlang_LINK_LIBS)
  unset(_LLVMFlang_LINK_RUNTIME)
else()
  message(FATAL_ERROR "LLVMFlang target ABI unrecognized: ${CMAKE_Fortran_SIMULATE_ID}")
endif()