summaryrefslogtreecommitdiffstats
path: root/Modules/Compiler/XL-Fortran.cmake
Commit message (Collapse)AuthorAgeFilesLines
* Fortran: Add Fortran_PREPROCESS propertyPeter Hill2020-05-211-0/+5
| | | | Issue: #18870
* XL: Fix using Fortran modules from their output directoryBrad King2020-02-281-0/+1
| | | | | | | | | | | | | | | The XL Fortran compiler's `-qmoddir=` flag sets the module output directory but does not add the directory to the search path for using modules. This is inconsistent with other compilers like the GNU Fortran compiler's `-J` flag that does both. In order to make these consistent, add the module output directory with a `-I` flag on the XL Fortran compiler so that it will be searched when using modules too. This fixes our `FortranModules` test's coverage of submodules on Ninja + XL. That test places module files in a subdirectory that with Ninja is not the current working directory when the compiler runs. Fixes: #20400
* XL: Add support for Ninja and XL FortranBrad King2019-11-211-0/+4
| | | | | | | | | | | | | | | The Ninja generator's support for Fortran requires that source files be preprocessed explicitly first. However, the `xlf` compiler does not have a simple `-E` option or equivalent to do preprocessing. The only documented way to get preprocessed output is to use `-d` to leave it behind, but only at an inflexible location. Instead, create our own `cpp` wrapper script and substitute it for the real preprocessor using `-tF -B ...`. Teach the wrapper to map the `cpp` output to the location we need and then invoke the real `cpp` underneath. Fixes: #19450
* Fortran: Fix submodule file names across compilersBrad King2019-02-141-0/+3
| | | | | | | | | The naming convention for submodule files varies across compilers. Add a table to the compiler information modules and thread the information through to the Fortran module dependency parser. Fill out the table for compiler ids known to support Fortran submodules. Fixes: #18746
* Honor CMAKE_<LANG>_FLAGS[_<CONFIG>]_INIT set in toolchain filesBrad King2016-07-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | Document these variables. Change our convention for setting these variables from: set(CMAKE_C_FLAGS_INIT "...") to string(APPEND CMAKE_C_FLAGS_INIT " ...") so that any value previously set by a toolchain file will be used. Automate the conversion with: sed -i 's/set *(\(CMAKE_\(C\|CXX\|Fortran\|RC\|ASM\|${[^}]\+}\)_FLAGS\(_[^_]\+\)\?_INIT \+"\)/string(APPEND \1 /' \ Modules/Compiler/*.cmake Modules/Platform/*.cmake and follow up with some manual fixes (e.g. to cases that already meant to append). Also revert the automated changes to contexts that are not protected from running multiple times.
* Makefile: Add assembly and preprocessed targets for FortranTim Gallagher2014-11-101-1/+1
| | | | Extend the FortranOnly test to cover "make <src>.i" targets.
* Convert CMake-language commands to lower caseKitware Robot2012-08-131-5/+5
| | | | | | | | | | | | | | | | | Ancient CMake versions required upper-case commands. Later command names became case-insensitive. Now the preferred style is lower-case. Run the following shell code: cmake --help-command-list | grep -v "cmake version" | while read c; do echo 's/\b'"$(echo $c | tr '[:lower:]' '[:upper:]')"'\(\s*\)(/'"$c"'\1(/g' done >convert.sed && git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' | egrep -z -v '^(Utilities/cm|Source/kwsys/)' | xargs -0 sed -i -f convert.sed && rm convert.sed
* Fortran: Add support for free- and fixed-form flagsBrad King2011-08-311-0/+3
| | | | | | | Define a "Fortran_FORMAT" target and source file property. Initialize the target property from a "CMAKE_Fortran_FORMAT" variable. Interpret values "FIXED" and "FREE" to indicate the source file format. Append corresponding flags to the compiler command line.
* XL: Place Fortran modules with -qmoddir= flag (#12246)Brad King2011-06-011-0/+2
| | | | Suggested-by: Luis Kornblueh <luis.kornblueh@zmaw.de>
* XL: Consolidate compiler flag informationBrad King2011-04-071-5/+5
| | | | | | Factor duplicate information out of Compiler/XL-<lang>.cmake modules into a macro in a new Compiler/XL.cmake module. Invoke it from the per-language files to produce the original settings.
* XL: Set C++ and Fortran flags consistently with CBrad King2011-04-071-0/+4
| | | | | | Since commit e1729238 (Add initial XL C compiler flags for safer builds, 2009-09-30) CMake sets the initial XL C flags to include "-qthreaded" and "-qhalt=e". Do the same for C++ and Fortran with this toolchain.
* Make VERBOSE_FLAG appear as first statement for consistencyKovarththanan Rajaratnam2010-04-171-0/+1
|
* Split XL compiler information filesBrad King2009-09-301-0/+5
| | | | | | This moves platform-independent XL compiler flags into separate "Compiler/XL-<lang>.cmake" modules. Platform-specific flags go in "Platform/<os>-XL-<lang>.cmake" modules.
* Teach compiler id about VisualAge -> XL rebrandingBrad King2009-08-071-0/+2
IBM rebranded its VisualAge compiler to XL starting at version 8.0. We use the compiler id "XL" for newer versions and "VisualAge" for older versions. We now also recognize the "z/OS" compiler, which is distinct from XL.