summaryrefslogtreecommitdiffstats
path: root/Modules/Platform
Commit message (Collapse)AuthorAgeFilesLines
* 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".
* | Fix Windows-cl.cmake so that at most one MSVC** variable is defined.David Cole2010-05-051-23/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | The expectation of users of the MSVC60, MSVC70, MSVC71, MSVC80, MSVC90 and the new MSVC10 variables is that at most one of them will be set for any given build tree. This change enforces that expectation for build trees using Makefile generators. It also fixes the one mismatch in that expectation to be found in the Visual Studio generator world: previously, the VS 7.1 generator would set *both* MSVC70 and MSVC71; now, it only sets MSVC71. With these changes, user expectations are now met, and the recently introduced CheckCompilerRelatedVariables test should pass everywhere.
* | Fix missing set of MSVC10 and add CheckCompilerRelatedVariables test.David Cole2010-04-301-0/+1
| |
* | -add basic search directories for the "Generic" platformAlex Neundorf2010-04-141-0/+6
| | | | | | | | | | | | | | | | | | | | As reported on the mailing list, find_path/file/library/program() basically don't work at all if CMAKE_FIND_ROOT_PATH is set and searching in the host system directories is disabled. This patch adds /include, /lib and /bin to the search directories, so they will be appended to CMAKE_FIND_ROOT_PATH so this will work for the "Generic" platform (embedded systems without OS) Alex
* | OpenBSD: Work-around static/runtime linker inconsistencyChuck Atkins2010-03-261-0/+16
| | | | | | | | | | | | | | Detect the runtime linker's search path and add to the compile time linker's search path. This is needed because OpenBSD's static linker does not search for shared library dependencies in the same places as the runtime linker.
* | Teach CMake how to work with G95 on mingw.Bill Hoffman2010-03-231-0/+1
|/
* Suppress GNU flag -fPIC on WindowsBrad King2010-02-191-0/+2
| | | | | | | | Commit "Modernize GNU compiler info on Windows" (2009-12-02) reorganized GNU flags on Windows but let -fPIC slip through for compilation of objects in shared libraries. While this flag is valid on most GNU compiler platforms we need to suppress it in Windows-GNU.cmake just as we already do in CYGWIN-GNU.cmake.
* Fix issue #10155 - default value of CMAKE_OSX_DEPLOYMENT_TARGET should ↵David Cole2010-01-294-31/+38
| | | | always be the empty string. When the value of CMAKE_OSX_DEPLOYMENT_TARGET is the empty string, the -mmacosx-version-min flag should not show up on the compiler command line. The logic for selecting default value of CMAKE_OSX_SYSROOT is orthogonal to and independent of the value of the deployment target. The default value for CMAKE_OSX_SYSROOT is the SDK that corresponds to the current version of Mac OSX on which cmake is running.
* Do not export all symbols from DLLs on CygwinBrad King2010-01-211-2/+3
| | | | | | | | | | In commit "use export all symbols on cygwin" (2003-01-21) we started passing -Wl,--export-all-symbols when linking shared libraries. Now cygwin exports all symbols automatically if no symbols are explicitly exported. When symbols are explicitly exported we want to honor that narrow interface. Therefore this flag should not be passed. Change based on patch from issue #10122.
* Fix CMAKE_DL_LIBS on CygwinBrad King2010-01-211-1/+0
| | | | | | | | The variable should contain the name of a library needed to link the symbol equivalent to dlopen. On Cygwin no special library is needed, and certainly not "gdi32". Change based on patch from issue #10122.
* Add PathScale shared library flags on LinuxBrad King2010-01-214-0/+31
| | | | | | | | We add platform-specific compiler information files Platform/Linux-PathScale-<lang>.cmake to enable -fPIC and -shared flags for shared libraries.
* Do not find cyg*.dll on CygwinBrad King2010-01-131-2/+2
| | | | | | | | | | | | | | While Cygwin supports linking directly to .dll files, the behavior is now discouraged. All Cygwin packages now provide import libraries of the form lib*.dll.a and CMake has built the import libraries for years. We believe it is now safe to stop explicitly searching for .dll files because their import libraries will always be available when the corresponding header files are available. Users can always set find_library cache entries to point at a .dll file by hand if they really must use one. Change based on patch from issue #10122.
* Search prefix /usr before root prefix /Brad King2010-01-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit "Find locally installed software first" made /usr/local the first prefix searched to be consistent with the Filesystem Hierarchy Standard: http://www.pathname.com/fhs/ The standard also implies that the root prefix "/" should not have any package or development files. The "/bin" and "/lib" directories should have only minimal contents to boot the system. No "/include" ever exists. This commit re-orders the search path prefix list from /usr/local / /usr to /usr/local /usr / to prefer package and development files over low-level system files. See issue #10136. On Cygwin /usr/lib == /lib and /usr/bin == /bin. This change also makes search results report locations as "/usr/..." instead of "/lib/...". See issue #10122.
* Restore -rdynamic in Linux build rulesBrad King2010-01-132-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | The commit "Drop -rdynamic from Linux build rules" removed default use of the flag on Linux. It was expected to be compatible because any project using plugins should set ENABLE_EXPORTS on its executables to export their symbols for use by the plugins in a cross-platform way. However, it is possible to build without ENABLE_EXPORTS and load plugins that do not link to any symbols from the executable explicitly. These plugins may need to see RTTI and other executable symbols needed by the language implementation. Executables using such plugins were broken by the change. If we want to remove the -rdynamic flag in the future we should do so in a compatible way. At that time we should also remove equivalent flags on other platforms (like -bexpall on AIX). We will either need a policy or an explicit API to disable symbol exports on executables. The primary purpose of the above-mentioned commit was to avoid passing the -rdynamic flag to compilers on Linux that do not support it. In this commit we restore the flag but only on GNU and Intel compilers which are known to support it. See issue #9985.
* Create Linux GNU compiler flag consolidation macroBrad King2010-01-134-0/+28
| | | | | This macro will be used for GNU compiler flags that are specific to Linux but not to any language.
* Fix issue with SDK not matching initial deployment target chosen by setting ↵David Cole2009-12-231-31/+37
| | | | the MACOSX_DEPLOYMENT_TARGET environment variable. The problem was that we were setting the initial SDK value based on our own internal default value for deplyment target rather than the user's environment variable choice. The solution is to base the default value for the SDK on the deployment target variable after initially caching the deployment target... Every time I'm in this code I think I leave it cleaner, only to be proven otherwise. Let's give this one a whirl. Bleh.
* Fix issues #9959 and #9898 - do not set CMAKE_OSX_DEPLOYMENT_TARGET if ↵David Cole2009-12-151-14/+29
| | | | | | CMAKE_OSX_SYSROOT is set. Default to "" for CMAKE_OSX_DEPLOYMENT_TARGET if CMAKE_OSX_SYSROOT is set. Also, add new error message to detect the case where there is a deployment target, but no SDK has been set. Fix args to STRING REGEX call so that it works even if _sdk_path variable is empty inside sanity check function.
* Remove GNU-specific flags from Linux.cmakeBrad King2009-12-044-7/+0
| | | | | | | | We remove the shared library compile/link flags "-fPIC" and "-shared" because they are not provided by all compilers on Linux. This allows us to drop code from the Linux-XL-*.cmake files that erases the bad flags. All other supported compilers already provide their correct flags for Linux in their own platform information files.
* Generalize support for Portland Group CompilerBrad King2009-12-044-12/+31
| | | | | | | | | | | | | | | We factor flags from Platform/Linux-PGI-Fortran.cmake into language independent helper modules Compiler/PGI.cmake Platform/Linux-PGI.cmake and invoke the macros from Compiler/PGI-<lang>.cmake Platform/Linux-PGI-<lang>.cmake This enables general support for the PGI compilers.
* Remove duplicate info from Linux SunPro info filesBrad King2009-12-043-6/+0
| | | | | The CMAKE_DL_LIBS variable is set platform-wide by Linux.cmake so we do not need to duplicate it in Linux-SunPro-<lang>.cmake files.
* Consolidate Linux Intel compiler informationBrad King2009-12-044-28/+38
| | | | | We consolidate duplicate code from Platform/Linux-Intel-<lang>.cmake files into a macro defined in Platform/Linux-Intel.cmake.
* Fix GNU C and Fortran flags on SunOSBrad King2009-12-042-1/+3
| | | | | | | | | | | The commit "Split GNU compiler information files" intended to move GNU flags from the platform-wide Platform/SunOS.cmake module into Platform/SunOS-GNU-<lang>.cmake using a helper module Platform/SunOS-GNU.cmake to consolidate flags. However, it accidentally put Fortran flags in the C language module and left out the Fortran module altogether. This fixes those mistakes.