[flang-commits] [flang] [flang][runtime] Build ISO_FORTRAN_ENV to export kind arrays as linkable symbols (PR #95388)
Michael Kruse via flang-commits
flang-commits at lists.llvm.org
Thu Jul 18 03:58:40 PDT 2024
================
@@ -58,18 +76,41 @@ if (NOT CMAKE_CROSSCOMPILING)
endif()
endif()
+
+ # Some modules have an implementation part that needs to be added to the
+ # FortranRuntime library.
+ set(compile_with "-fsyntax-only")
+ set(object_output "")
+ set(include_in_link FALSE)
+ if(${filename} IN_LIST MODULES_WITH_IMPLEMENTATION)
+ set(object_output "${CMAKE_CURRENT_BINARY_DIR}/${filename}${CMAKE_CXX_OUTPUT_EXTENSION}")
+ set(compile_with -c -o ${object_output})
+ set(include_in_link TRUE)
+ endif()
+
set(base ${FLANG_INTRINSIC_MODULES_DIR}/${filename})
# TODO: We may need to flag this with conditional, in case Flang is built w/o OpenMP support
- add_custom_command(OUTPUT ${base}.mod
+ add_custom_command(OUTPUT ${base}.mod ${object_output}
COMMAND ${CMAKE_COMMAND} -E make_directory ${FLANG_INTRINSIC_MODULES_DIR}
- COMMAND flang-new ${opts} -cpp -fsyntax-only -module-dir ${FLANG_INTRINSIC_MODULES_DIR}
+ COMMAND flang-new ${opts} -cpp ${compile_with} -module-dir ${FLANG_INTRINSIC_MODULES_DIR}
${FLANG_SOURCE_DIR}/module/${filename}.f90
DEPENDS flang-new ${FLANG_SOURCE_DIR}/module/${filename}.f90 ${FLANG_SOURCE_DIR}/module/__fortran_builtins.f90 ${depends}
)
list(APPEND MODULE_FILES ${base}.mod)
install(FILES ${base}.mod DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/flang")
+
+ # If a module has been compiled into an object file, add the file to
+ # the link line for the FortranRuntime library.
+ if(include_in_link)
+ set(module_objects ${module_} ${object_output})
----------------
Meinersbur wrote:
```suggestion
list(APPEND module_objects ${module_})
```
https://github.com/llvm/llvm-project/pull/95388
More information about the flang-commits
mailing list