summaryrefslogtreecommitdiffstats
path: root/Modules/Platform
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'add_support_for_windres'Brad King2011-01-044-1/+6
|\ | | | | | | | | | | | | | | 971692c Build enable_language command during bootstrap 960ace1 Add testing for windows resources for mingw/msys/cygwin and remove for watcom. 060d6e8 Add support for windres to cygwin. b2f308c Add support for windows resources with mingw/msys.
| * Add support for windres to cygwin.Bill Hoffman2010-12-232-1/+3
| |
| * Add support for windows resources with mingw/msys.Bill Hoffman2010-12-232-0/+3
| |
* | Enable resource building with the intel compiler on windows.Bill Hoffman2011-01-031-0/+4
| |
* | Merge topic 'mac-headerpad_max_install_names-passthru'Brad King2010-12-282-6/+6
|\ \ | | | | | | | | | | | | e498527 Pass Mac linker flag through all compilers with -Wl,
| * | Pass Mac linker flag through all compilers with -Wl,Brad King2010-12-222-6/+6
| | | | | | | | | | | | | | | | | | | | | The Mac linker defines flag -headerpad_max_install_names but not all front-ends recognize the flag and pass it through (many did in the past, such as the Apple port of GCC). Use the -Wl, option prefix to tell front-ends to pass it through without trying to interpret it.
* | | Merge topic 'cygwin'Brad King2010-12-211-1/+45
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 85c0a69 Cygwin: Do not define 'WIN32' (#10122) 62c6d2d Merge branch 'cmake_--system-information_min-version' into cygwin 72db20f Merge branch 'tests-if-CYGWIN' into cygwin 5adef16 Merge branch 'cygwin-module-prefix' into cygwin cbc3258 Merge branch 'try-compile-min-version' into cygwin
| * | | Cygwin: Do not define 'WIN32' (#10122)Brad King2010-12-171-1/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | One of Cygwin's goals is to build projects using the POSIX API with no Windows awareness. Many CMake-built projects have been written to test for UNIX and WIN32 but not CYGWIN. The preferred behavior under Cygwin in such projects is to take the UNIX path but not the WIN32 path. Unfortunately this change is BACKWARDS INCOMPATIBLE for Cygwin-aware CMake projects! Some projects that previously built under Cygwin and are Cygwin-aware when they test for WIN32 may now behave differently. Eventually these projects will need to be updated, but to help users build them in the meantime we print a warning about the change in behavior. Furthermore, one may set CMAKE_LEGACY_CYGWIN_WIN32 to request old behavior during the transition. Normally we avoid backwards incompatible changes, but we make an exception in this case for a few reasons: (1) This behavior is preferred by Cygwin's design goals. (2) A warning provides a clear path forward for everyone who may see incompatible behavior, and CMAKE_LEGACY_CYGWIN_WIN32 provides a compatibility option. The warning and compatibility option both disappear when the minimum required version of CMake in a project is sufficiently new, so this issue will simply go away over time as projects are updated to account for the change. (3) The fixes required to update projects are fairly insignificant. Furthermore, the Cygwin distribution has no releases itself so project versions that predate said fixes tend to be difficult to build anyway. (4) This change enables many CMake-built projects that did not previously build under Cygwin to work out-of-the-box. From bug #10122: "I have built over 120 different source packages with (my patched) CMake, including most of KDE4, and have found that NOT defining WIN32 on Cygwin is much more accurate." -- Yaakov Selkowitz A fully compatible change would require patches on top of these project releases for Cygwin even though they otherwise need not be aware of it. (5) Yaakov has been maintaining a fork of CMake with this change for the Cygwin Ports distribution. It works well in practice. By accepting the change in upstream CMake we avoid confusion between the versions. CMake itself builds without WIN32 defined on Cygwin. Simply disable CMAKE_LEGACY_CYGWIN_WIN32 explicitly in our own CMakeLists.txt file.
* | | | Merge topic 'gnu-compiler-windows-info'Brad King2010-12-211-1/+0
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | e8d380f Remove unused old-style g++ info file
| * | | | Remove unused old-style g++ info fileBrad King2010-12-161-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit aff31479 (Modernize GNU compiler info on Windows, 2009-12-02) the file Modules/Platform/Windows-g++.cmake has been unused. It just includes the non-existent Modules/Platform/Windows-gcc.cmake so remove it outright.
* | | | | Merge topic 'intel-compiler-windows-info'Brad King2010-12-216-189/+104
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cd43636 Modernize Intel compiler info on Windows 58c73c4 Detect Fortran target architecture on Windows
| * | | | | Modernize Intel compiler info on WindowsBrad King2010-12-166-192/+104
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This moves Intel compiler info on Windows into new-style modules Platform/Windows-Intel-<lang>.cmake using language-independent helper module Platform/Windows-Intel.cmake to define macros consolidating the information.
| * | | | | Detect Fortran target architecture on WindowsBrad King2010-12-161-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 4430bccc (Change the way 32/64 bit compiles are detected with MSVC and intel, 2009-11-19) added detection of the target processor to C and CXX language builds with MS and Intel tools. Do the same for Intel Fortran for Windows (ifort). Use /machine:<arch> to link executables.
* | | | | | Merge topic 'intel-config-definitions'Brad King2010-12-211-10/+10
|\ \ \ \ \ \ | |/ / / / / | | | | | / | |_|_|_|/ |/| | | | 3fb088e Make Intel defines consistent with MSVC on Windows (#9904)
| * | | | Make Intel defines consistent with MSVC on Windows (#9904)Brad King2010-12-151-10/+10
| |/ / / | | | | | | | | | | | | | | | | Add /DWIN32 and /D_WINDOWS to default config-independent flags. Add /D[_N]DEBUG to default flags for each configuration.
* | | | Merge topic 'cygwin-module-prefix'Brad King2010-12-161-1/+1
|\ \ \ \ | | |/ / | |/| | | | | | | | | | 1dcc977 Cygwin: Use 'cyg' prefix for module DLLs (#10122)
| * | | Cygwin: Use 'cyg' prefix for module DLLs (#10122)Yaakov Selkowitz2010-12-131-1/+1
| | |/ | |/| | | | | | | Cygwin now uses the prefix 'cyg' for plugin DLLs instead of 'lib'.
* | | Merge topic 'NAG-Fortran'Brad King2010-12-162-0/+15
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | | | | | | | 09d1c10 FortranCInterface: Recognize NAG Fortran module symbols af2ad90 Add NAG Fortran compiler information files 24cc3d4 Recognize the NAG Fortran compiler 83892c4 Allow Fortran platform files to set empty values fe3f878 Detect object files in implicit link information
| * | Add NAG Fortran compiler information filesBrad King2010-12-092-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | On Linux the NAG Fortran compiler uses gcc under the hood to link. Use "-Wl,-v" to pass "-v" to the underlying gcc compiler to get verbose link output. Detect the NAG Fortran directory (using -dryrun) and then honor object files in the directory referenced in the implicit link line. Pass real linker options with "-Wl,-Xlinker,". The -Wl, gets through the NAG front-end and the -Xlinker gets through the gcc front-end.
* | | Fix incremental linking for VS2010 with nmake or make.Bill Hoffman2010-12-091-0/+2
| |/ |/| | | | | | | | | VS2010 deprecated /INCREMENTAL:YES. This change makes /INCREMENTAL the flag to use for incremental linking with VS2010.
* | Pass Mac linker flag through PGI compiler using "-Wl,"Brad King2010-11-221-4/+4
|/ | | | | | | The Mac linker defines -headerpad_max_install_names and the GCC front-end passes this flag through. The PGI compiler does not know about this flag, so we must use -Wl,-headerpad_max_install_names to pass it to the linker instead.
* Merge topic 'mingw-long-object-lists'Brad King2010-09-222-2/+34
|\ | | | | | | | | | | 5f05a3c MinGW: Support long object file lists 2d9bb33 Evaluate <OBJECT_DIR> rule variable for executables
| * MinGW: Support long object file listsBrad King2010-09-172-2/+34
| | | | | | | | | | | | | | Use a combination of response files and the archiver to support long object file lists that do not fit in the Windows command-line length limit. This can work only with GCC >= 4 because the MinGW GCC 3.x front-ends do not support response-file syntax.
* | Merge topic 'compaq-fortran-moddir-flag'Brad King2010-09-211-0/+2
|\ \ | |/ |/| | | | | c04af06 Add module-dir flag for Compaq Visual Fortran (#11248)
| * Add module-dir flag for Compaq Visual Fortran (#11248)Brad King2010-09-201-0/+2
| | | | | | | | This compiler uses "-module:" to specify where modules should be placed.
* | Merge topic 'hpux-required-runtime-path-10571'Brad King2010-09-081-0/+2
|\ \ | | | | | | | | | | | | 11a917d HP-UX: Always add /usr/lib to rpath (#10571)
| * | HP-UX: Always add /usr/lib to rpath (#10571)Brad King2010-09-071-0/+2
| | | | | | | | | | | | | | | | | | | | | Set CMAKE_PLATFORM_REQUIRED_RUNTIME_PATH in the HP-UX platform file to tell CMake to pass -Wl,+b,/usr/lib no matter whether RPATH is enabled or not. This corrects the behavior of -Wl,+nodefaultrpath to look in this default library path as documented.
* | | Merge topic 'watcom_fixes'Brad King2010-09-081-3/+16
|\ \ \ | | | | | | | | | | | | | | | | 3b7da53 Fix for bug 10388, fix various default flags.
| * | | Fix for bug 10388, fix various default flags.Bill Hoffman2010-09-021-3/+16
| |/ /
* | | Search MacPorts /opt/local prefix on MacBrad King2010-09-012-3/+6
|/ / | | | | | | | | | | Include this prefix in CMAKE_SYSTEM_PREFIX_PATH so that it will be used for all find* commands. Previously only find_library and find_path would look under /opt/local/lib and /opt/local/include, respectively.
* | Merge topic 'tg/BlueGeneP'Brad King2010-08-1715-0/+348
|\ \ | | | | | | | | | | | | 7083c81 Add platform files for BlueGene/P systems
| * | Add platform files for BlueGene/P systemsTodd Gamblin2010-08-1315-0/+348
| | | | | | | | | | | | | | | | | | BlueGeneP-base: Internal base shared by static and dynamic files BlueGeneP-static: Platform file for all-static builds BlueGeneP-dynamic: Platform file for "default" dynamic builds
* | | Merge topic 'intel-response-files'Brad King2010-08-171-0/+4
|\ \ \ | |/ / |/| | | | | | | | 4b1e5f0 Pass objects to Intel linker using a response file
| * | Pass objects to Intel linker using a response fileArjen Verweij2010-08-101-0/+4
| | | | | | | | | | | | | | | | | | Use response files for C and CXX languages with the Intel compiler on Windows. We already used them for Fortran. This enables creation of libraries and executables with a very large number of object files.
* | | Merge topic 'module-header-spelling'Brad King2010-08-1013-13/+13
|\ \ \ | | | | | | | | | | | | | | | | 2cde67a Modules: Fix spelling 'To distributed' -> 'To distribute'
| * | | Modules: Fix spelling 'To distributed' -> 'To distribute'Todd Gamblin2010-08-0913-13/+13
| |/ /
* | | Merge topic 'mingw-response-files'Brad King2010-08-101-1/+8
|\ \ \ | |/ / |/| | | | | | | | b03f4ec No response files with GNU ld <= 2.16 (#10913)
| * | No response files with GNU ld <= 2.16 (#10913)Brad King2010-08-061-1/+8
| | | | | | | | | | | | | | | Older GNU ld does not support the @FILE syntax for response files. Check the ld version on MinGW and MSYS before enabling the syntax.
* | | GNU/Hurd platform support fixes (#9873)Pino Toscano2010-07-291-0/+3
| |/ |/| | | | | | | Define use of -rpath-link and --export-dynamic flags. The toolchain on Hurd is GNU-based so we can use the values from Linux.
* | Merge branch 'tru64-make-includes'Brad King2010-06-151-0/+1
|\ \
| * | Tru64: Use full-path include directives in Makefiles (#10569)Brad King2010-06-141-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | Tru64's make(1) resolves relative paths in "include" directives with respect to the includer. This is inconsistent with all other known make tools. Note that this make tool treats the path literally so we cannot use our standard FULL path code which escapes spaces. Instead qualify the paths with $(CMAKE_BINARY_DIR) to avoid the problem.
* | | Merge branch 'mingw-response-files'Brad King2010-06-152-0/+3
|\ \ \ | |/ / |/| / | |/
| * Use response file for objects on MinGW and MSYSBrad King2010-03-112-0/+3
| | | | | | | | | | | | | | Windows command lines are limited to about 32K so we need to use response files for linking very large lists of object files. See issue #10401.
* | Merge branch 'sunCC-5.11-rpath-link'Brad King2010-06-081-1/+8
|\ \
| * | Fix rpath-link flag for SunPro C++ 5.11 on LinuxBrad King2010-06-071-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | Commit 82c081ba (Fix rpath-link flag for SunPro C++ on Linux, 2009-07-13) taught CMake to pass '-rpath-link' because SunPro C++ 5.9 does not support '-Wl,'. Now SunPro C++ 5.11 does not recognize the option without using '-Wl,'. Detect whether to use '-Wl,' based on the output of "sunCC -flags".
* | | Merge branch 'per-config-link-flags'Brad King2010-06-071-3/+3
|\ \ \
| * | | Watcom: Use LINK_FLAGS and STATIC_LIBRARY_FLAGSBrad King2010-06-011-3/+3
| |/ / | | | | | | | | | Add the <LINK_FLAGS> rule variable in Watcom command lines.
* | | Merge branch 'cygwin-exe-export-all'Brad King2010-06-071-0/+1
|\ \ \
| * | | Cygwin: Export all symbols with ENABLE_EXPORTSYaakov Selkowitz2010-05-271-0/+1
| |/ / | | | | | | | | | | | | | | | The ENABLE_EXPORTS property exports all symbols from executables on UNIX-like platforms, typically for use by plugins. Honor this behavior on Cygwin. See issue #10122.
* | | Recognize Clang C and C++ compilers (see #10693)Brad King2010-05-172-0/+2
|/ / | | | | | | | | | | | | Map to the platform and compiler information for GNU because the compilers are command-line compatible for common operations. Later we can add Clang-specific features as necessary. We honor the preferred capitalization is "Clang", not the common mis-spelling "CLang".