[flang-commits] [flang] f6b577e - [flang] Fix -intrinsic-module-directory in flang script

Tim Keith via flang-commits flang-commits at lists.llvm.org
Thu Dec 17 19:08:46 PST 2020


Author: Tim Keith
Date: 2020-12-17T19:08:19-08:00
New Revision: f6b577ed5bf61078cdcf60e94867b75c94f540a7

URL: https://github.com/llvm/llvm-project/commit/f6b577ed5bf61078cdcf60e94867b75c94f540a7
DIFF: https://github.com/llvm/llvm-project/commit/f6b577ed5bf61078cdcf60e94867b75c94f540a7.diff

LOG: [flang] Fix -intrinsic-module-directory in flang script

The flang wrapper script that was created as bin/flang in an in-tree
build did not have a correct -intrinsic-module-directory option.
It was correct for out-of-tree builds and for both kinds of installs.

The fix is to pick the correct directory based on what exists.

The script is no longer configured by cmake (just copied) so that
mechanism can be deleted from the cmake file.

Differential Revision: https://reviews.llvm.org/D93496

Added: 
    flang/tools/f18/flang

Modified: 
    flang/tools/f18/CMakeLists.txt

Removed: 
    flang/tools/f18/flang.sh.in


################################################################################
diff  --git a/flang/tools/f18/CMakeLists.txt b/flang/tools/f18/CMakeLists.txt
index cdc09fc7a68a..8f30bfa47b79 100644
--- a/flang/tools/f18/CMakeLists.txt
+++ b/flang/tools/f18/CMakeLists.txt
@@ -65,28 +65,12 @@ add_custom_target(module_files ALL DEPENDS ${MODULE_FILES})
 
 install(TARGETS f18 DESTINATION bin)
 
-set(FLANG_INTRINSIC_MODULES_DIR ${FLANG_BINARY_DIR}/include/flang)
-
 # This flang shell script will only work in a POSIX shell.
 if (NOT WIN32)
-  if (FLANG_STANDALONE_BUILD)
-    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/flang.sh.in ${CMAKE_BINARY_DIR}/tools/flang/bin/flang @ONLY)
-    file(COPY ${CMAKE_BINARY_DIR}/tools/flang/bin/flang DESTINATION ${CMAKE_BINARY_DIR}/bin FILE_PERMISSIONS OWNER_EXECUTE OWNER_READ OWNER_WRITE)
-  else()
-    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/flang.sh.in
-      ${CMAKE_CURRENT_BINARY_DIR}/tools/flang/bin/flang @ONLY)
-    add_custom_command(TARGET f18
-        POST_BUILD
-          COMMAND ${CMAKE_COMMAND} -E copy
-          ${CMAKE_CURRENT_BINARY_DIR}/tools/flang/bin/flang
-          ${LLVM_RUNTIME_OUTPUT_INTDIR}/flang
-            COMMAND chmod +x ${LLVM_RUNTIME_OUTPUT_INTDIR}/flang)
-  endif()
+  file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/flang
+    DESTINATION ${CMAKE_BINARY_DIR}/bin
+    FILE_PERMISSIONS OWNER_EXECUTE OWNER_READ OWNER_WRITE)
+  install(PROGRAMS ${CMAKE_BINARY_DIR}/bin/flang DESTINATION bin)
 endif()
 
-# The flang script to be installed needs a 
diff erent path to the headers.
-set(FLANG_INTRINSIC_MODULES_DIR ${CMAKE_INSTALL_PREFIX}/include/flang)
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/flang.sh.in ${FLANG_BINARY_DIR}/bin/flang-install.sh @ONLY)
 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/f18_version.h.in ${CMAKE_CURRENT_BINARY_DIR}/f18_version.h @ONLY)
-
-install(PROGRAMS ${FLANG_BINARY_DIR}/bin/flang-install.sh DESTINATION bin RENAME flang)

diff  --git a/flang/tools/f18/flang b/flang/tools/f18/flang
new file mode 100644
index 000000000000..01bdffdd20c7
--- /dev/null
+++ b/flang/tools/f18/flang
@@ -0,0 +1,15 @@
+#!/bin/bash
+#===-- tools/f18/flang.sh -----------------------------------------*- sh -*-===#
+#
+# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+# See https://llvm.org/LICENSE.txt for license information.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+#
+#===------------------------------------------------------------------------===#
+
+wd=$(cd $(dirname "$0")/.. && pwd)
+module_dir=$wd/include/flang
+if [[ ! -d $module_dir ]]; then
+  module_dir=$wd/tools/flang/include/flang
+fi
+$wd/bin/f18 -module-suffix .f18.mod -intrinsic-module-directory $module_dir "$@"

diff  --git a/flang/tools/f18/flang.sh.in b/flang/tools/f18/flang.sh.in
deleted file mode 100644
index 295d93abbeb6..000000000000
--- a/flang/tools/f18/flang.sh.in
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/bash
-#===-- tools/f18/flang.sh -----------------------------------------*- sh -*-===#
-#
-# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-#
-#===------------------------------------------------------------------------===#
-
-function abspath() {
-  pushd . > /dev/null;
-  if [ -d "$1" ]; then
-    cd "$1";
-    dirs -l +0;
-  else
-    cd "`dirname \"$1\"`";
-    cur_dir=`dirs -l +0`;
-    if [ "$cur_dir" == "/" ]; then
-      echo "$cur_dir`basename \"$1\"`";
-    else
-      echo "$cur_dir/`basename \"$1\"`";
-    fi;
-  fi;
-  popd > /dev/null;
-}
-
-wd=`abspath $(dirname "$0")/..`
-
-${wd}/bin/f18 -module-suffix .f18.mod -intrinsic-module-directory ${wd}/include/flang $*


        


More information about the flang-commits mailing list