summaryrefslogtreecommitdiffstats
path: root/Modules/Platform
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'ConcurrentFortran-compiler-id'Brad King2015-06-191-0/+1
|\ | | | | | | | | | | | | | | | | 54676a0e Help: Add notes for topic 'ConcurrentFortran-compiler-id' 7cd539b1 Add support for Concurrent Fortran 77 Compiler 0d204c1c CMakeDetermineCompilerId: Try matching compiler output to detect id 5f0dad75 CMakeDetermineCompilerId: Refactor id build/check loop logic c65a060e CMakeDetermineCompilerId: Optionally try some flags before no flags
| * Add support for Concurrent Fortran 77 CompilerBrad King2015-06-181-0/+1
| | | | | | | | | | | | | | | | | | The Concurrent Fortran compiler (ccur.com) is available on Linux and can be used much like the GNU Fortran compiler. Currently it has no preprocessor symbols to identify it so we need to detect it by matching compiler output. Suggested-by: Anthony Ette <Anthony.R.Ette@controlsdata.com>
* | Embarcadero: Run at most one linker invocation at a time (#15620)James Johnston2015-06-181-0/+6
|/ | | | | | | | | | | | | | | | | | | At least some versions (e.g. C++ Builder 5) of the bcc32 linker are known to write temporary files with a constant name to the current directory (e.g. "turboc.$ln"). (This can be verified by using Process Monitor to watch the file writes that bcc32 / ilink32 / implib make). This causes problems with some generators that keep a constant current directory and run concurrent linkers. For example, the Ninja generator, by default, always has the current directory set to the top of the build tree - resulting in conflicts between the linkers that are simultaneously trying to write to "turboc.$ln". Symptoms include direct errors regarding the "turboc.$ln" file, or later build steps failing due to corrupted output from previous links that happened to link "successfully." This is not a problem for the Borland Makefiles generator which does not run jobs in parallel. For the Ninja generator, work around this problem by using a link job pool of size 1.
* GNU: Drop -rdynamic flag from FortranBrad King2015-06-161-0/+1
| | | | | The GNU Fortran compiler does not document support for this flag as the GNU C and C++ compilers do.
* Windows-GNU: Restore find_library treatment of '.dll' as linkable (#15409)Brad King2015-06-081-1/+1
| | | | | | | Revert commit v3.3.0-rc1~435^2 (Windows-GNU: Do not tell find_library to treat '.dll' as linkable, 2015-02-18). MinGW tools support linking to '.dll' files directly and many non-CMake build systems still do not provide a separate '.dll.a' file.
* Intel: Disable Fortran optimizations for Debug config on Windows (#15583)Brad King2015-05-261-1/+1
| | | | | | | The "/Od" flag is used for C and C++ languages in this configuration so we should use it for Fortran too. Suggested-by: Oleg V. Zhylin <ovz@yahoo.com>
* RC: Do not override MinGW Makefiles generator preferenceBrad King2015-05-111-1/+1
| | | | | | | | Update logic added in commit 957c2aac (RC: Simplify selection of resource compiler based on C/C++ toolchain, 2015-05-07) to avoid overriding CMAKE_GENERATOR_RC. The MinGW and MSYS Makefiles generators use it to select a windres next to the compiler even if it is not in the PATH.
* RC: Simplify selection of resource compiler based on C/C++ toolchainBrad King2015-05-073-0/+11
| | | | | | | | | | Revert the refactoring by commit v2.8.11~105^2~1 (Ninja: use MinGW generator code in EnableLanguage, 2013-03-09) and move the MinGW- specific logic back to the "MinGW Makefiles" generator. Instead teach the platform information modules for GNU and MSVC on Windows to set the preferred RC compiler just before enabling the RC language. This way we choose the RC compiler based on the C/C++ toolchain that is actually enabled.
* HP-UX: Add GNU compiler information for ASM languageBrad King2015-05-041-0/+2
| | | | Suggested-by: Gerhard Grimm <gerhard.grimm@detec.com>
* Add a 'Green Hills MULTI' generator on WindowsGeoff Viola2015-04-202-0/+56
| | | | | | | | | | | | Green Hills MULTI is an IDE for embedded real-time systems. The IDE's product page can be found here: http://www.ghs.com/products/MULTI_IDE.html It supports cross compiling on ARM, Intel x86, and other architectures with various operating systems. The IDE exists on Linux and Windows host systems, but CMake will currently only generate the project files on Windows host systems.
* Merge topic 'blugeneq-platform-files'Brad King2015-03-2415-0/+403
|\ | | | | | | | | 13807bcb BlueGene/Q Platform files
| * BlueGene/Q Platform filesTodd Gamblin2015-03-1915-0/+403
| | | | | | | | | | - based on the BlueGene/P platform files. - tested by Todd Gamblin (LLNL) and David DeMarle (Kitware)
* | OS X: Look for Xcode 5 platform-specific FrameworksGregor Jasny2015-03-241-6/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Xcode 5 platform specific framework locations differ from the Xcode 6 ones. Look first for the Xcode 6 ones, then for iOS Xcode 5 ones and last for the Xcode 5 OS X ones. For reference, the XCTest.framework is located as follows: Xcode511.app/Contents/Developer/Library/Frameworks/XCTest.framework Xcode511.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/Developer/Library/Frameworks/XCTest.framework Xcode511.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk/Developer/Library/Frameworks/XCTest.framework Xcode601.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks/XCTest.framework Xcode601.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Frameworks/XCTest.framework Xcode601.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Frameworks/XCTest.framework Signed-off-by: Gregor Jasny <gjasny@googlemail.com>
* | Merge topic 'lib64_paths_crosscompiling'Brad King2015-03-231-1/+1
|\ \ | | | | | | | | | | | | 81bfebfe Linux: Ignore Debian-specific case when cross-compiling
| * | Linux: Ignore Debian-specific case when cross-compilingZack Galbreath2015-03-231-1/+1
| |/ | | | | | | | | When constructing settings for the target environment during cross compiling we should not check for /etc/debian_version on the host.
* | PGI: Remove invalid -fPIE flag (#15460)Brad King2015-03-201-1/+1
|/ | | | | | | The PGI compilers on Linux do not have the -fPIE flag. Remove the table entry added by commit v2.8.9~125^2~2 (Add platform variables for position independent code flags, 2012-05-05), which likely included it only as part of a sweeping introduction of such flags.
* Merge topic 'windows-rc-enable-later'Brad King2015-02-264-9/+10
|\ | | | | | | | | | | | | 772eae44 RC: Add platform-specific preprocessor definitions (#15404) 4300de3e RC: Enable language after C, CXX, or Fortran is enabled (#15404) 1de4a0fb RC: Drop unused CMAKE_COMPILE_RESOURCE variable setting
| * RC: Add platform-specific preprocessor definitions (#15404)Brad King2015-02-251-0/+4
| | | | | | | | | | | | | | | | | | | | In Platform/Windows-MSVC the C and CXX flags are initialized to contain preprocessor definitions describing the platform. On WinCE platforms this may not be just -DWIN32. This information may be important to RC sources too, so add such preprocessor definitions to the default RC flags. Suggested-by: Gunnar Roth <gunnar.roth@gmx.de>
| * RC: Enable language after C, CXX, or Fortran is enabled (#15404)Brad King2015-02-253-6/+6
| | | | | | | | | | | | | | | | The RC language is special in that it is automatically enabled on Windows-based platforms when another primary language is enabled. Move enablement of RC from early in the enablement of the other language to late. This will allow it to use information detected as part of enabling C, CXX, or Fortran.
| * RC: Drop unused CMAKE_COMPILE_RESOURCE variable settingBrad King2015-02-252-3/+0
| | | | | | | | | | This variable has long been replaced by CMAKE_RC_COMPILE_OBJECT. Stop setting it in platform modules.
* | Merge topic 'refine-MSVC-ARM-WinCE'Brad King2015-02-251-11/+38
|\ \ | |/ |/| | | | | | | | | 3d612c73 MSVC: Compile with arch-specific flags on ARM platforms (#14552) 886dcaa7 MSVC: Distinguish among ARM architectures more precisely (#14552) ea986676 MSVC: Define /DWINCE when building for WinCE platforms (#14552)
| * MSVC: Compile with arch-specific flags on ARM platforms (#14552)Gunnar Roth2015-02-241-0/+11
| | | | | | | | | | Define the exact ARM architecture name as a preprocessor symbol. Compile with /QRarch4T or /QRarch5T on ARMV4I or ARMV5I.
| * MSVC: Distinguish among ARM architectures more precisely (#14552)Gunnar Roth2015-02-241-10/+26
| | | | | | | | | | Detect the exact ARM architecture instead of just "ARM". Treat "ARM" as an architecture family that includes THUMB (ARMV4I and ARMV5I).
| * MSVC: Define /DWINCE when building for WinCE platforms (#14552)Gunnar Roth2015-02-241-1/+1
| |
* | OS X: Add platform-specific Frameworks search pathGregor Jasny2015-02-231-0/+7
|/ | | | | | | | | | | | | | | Otherwise find_library is unable to lookup the XCTest framework which is not located in the SDK serach path: In the 10.10 SDK the SDK frameworks are located here: $DEVELOPER_DIR/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks whereas the Platform SDKs are located here: $DEVELOPER_DIR/Platforms/MacOSX.platform/Developer/Library/Frameworks Signed-off-by: Gregor Jasny <gjasny@googlemail.com>
* Windows-GNU: Do not tell find_library to treat '.dll' as linkableBrad King2015-02-181-1/+1
| | | | | Modern software distributions always use a separate ".dll.a" or ".lib" import library for linking.
* Merge topic 'fix-msvc-linker-flags-typo'Brad King2015-02-042-2/+2
|\ | | | | | | | | 467f5bcc MSVC: Fix initialization of RelWithDebInfo shared library link flags (#15385)
| * MSVC: Fix initialization of RelWithDebInfo shared library link flags (#15385)Brad King2015-02-032-2/+2
| | | | | | | | | | | | | | | | | | | | Initialize CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO_INIT from the value of CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT rather than the one for the DEBUG configuration. This typo has been present since the logic was first added in commit 36db45082e (ENH: fix up several problems with new stuff, 2002-11-11). Reported-by: Gunnar Roth <gunnar.roth@gmx.de>
| * XL: Fix link flags for executables on Linux with XL compilersBrad King2015-01-123-0/+3
| | | | | | | | | | Use "-Wl,-export-dynamic" with XL to match the "-rdynamic" flag used with GNU-like compilers.
| * Merge branch 'backport-fix-CMP0054-MSVC' into releaseBrad King2014-11-201-2/+2
| |\
| | * Avoid if() quoted auto-dereference when checking for "MSVC"Fraser Hutchison2014-11-191-2/+2
| | | | | | | | | | | | | | | When testing CMAKE_<LANG>_COMPILER_ID values against "MSVC", do not allow the definition of the "MSVC" variable to be expanded.
* | | Merge topic 'revert-feature_record_msvc'Brad King2015-01-152-11/+0
|\ \ \ | | | | | | | | | | | | | | | | | | | | 4ce110bb Tests: Revert workaround for COMPILE_FEATURES genex bug 0b7e7e27 Revert topic 'feature_record_msvc'
| * | | Revert topic 'feature_record_msvc'Brad King2015-01-142-11/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Revert commits: 2d738ce3 Help: Add notes for topic 'feature_record_msvc' f73718c9 Features: Enable writing of MSVC compiler feature header. 64c30bdc Features: Record for MSVC C++ 2015 and MSVC C 2010-2015. 225c0ef8 Features: Record for MSVC 2010-2013. This topic was merged to master prematurely, so remove it.
* | | | Merge topic 'linux-XL-fortran'Brad King2015-01-113-0/+3
|\ \ \ \ | |/ / / |/| | | | | | | | | | | 4729547a XL: Fix link flags for executables on Linux with XL compilers
| * | | XL: Fix link flags for executables on Linux with XL compilersBrad King2015-01-103-0/+3
| | | | | | | | | | | | | | | | | | | | Use "-Wl,-export-dynamic" with XL to match the "-rdynamic" flag used with GNU-like compilers.
* | | | Features: Record for MSVC C++ 2015 and MSVC C 2010-2015.Robert Maynard2015-01-112-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | Initializer lists are only properly supported in 2015 and above. Previous Visual Studio releases said they supported initializer lists but silently produced bad code.
* | | | Features: Record for MSVC 2010-2013.Stephen Kelly2015-01-111-0/+4
|/ / /
* | | Avoid if() quoted auto-dereference when checking for "MSVC"Fraser Hutchison2014-11-191-2/+2
| | | | | | | | | | | | | | | When testing CMAKE_<LANG>_COMPILER_ID values against "MSVC", do not allow the definition of the "MSVC" variable to be expanded.
* | | Makefile: Add assembly and preprocessed targets for FortranTim Gallagher2014-11-102-0/+11
| | | | | | | | | | | | Extend the FortranOnly test to cover "make <src>.i" targets.
* | | Merge topic 'watcom-drop-symfile-option'Brad King2014-11-041-2/+2
|\ \ \ | |/ / | | | | | | | | | 6b63942e Watcom: Drop symfile linker option
| * | Watcom: Drop symfile linker optionJ Decker2014-11-031-2/+2
| |/ | | | | | | | | | | | | | | | | | | | | Cleanup of Windows-wcl386.cmake in commit v3.1.0-rc1~693^2 (Watcom: Cleanup Windows-wcl386 configuration, 2014-04-01) also introduced use of the 'symfile' link option but did not mention it in the commit message. There is no way to set the symbol file name of a target, so it is better to revert that change. It is easy to run 'wstrip *' if the symbols need to be stripped, but it is very difficult to get the right names for the .sym files to install with debug/rel_with_deb_info configurations.
* | OS X: Detect deployment target flags from GNU Fortran compilersBrad King2014-10-271-0/+2
| | | | | | | | Reported-by: Bill Somerville <bill@classdesign.com>
* | Avoid if() quoted auto-dereferenceBen Boeckel2014-10-201-1/+1
|/ | | | | | | When testing CMAKE_<LANG>_COMPILER_ID values, do not explicitly dereference or quote the variable. We want if() to auto-dereference the variable and not its value. Also replace MATCHES with STREQUAL where equivalent.
* VS: Fix Tegra-Android platform linking of libraries by nameBrad King2014-09-301-0/+6
| | | | | | | Nsight Tegra Visual Studio Edition handles prefixing of library names with '-l' automatically, so teach the generator not to do so. Reported-by: Mourad Boufarguine <mourad@boufarguine.name>
* MSVC: Define 'WIN32' for Windows Store and Windows PhoneGilles Khouzam2014-09-021-0/+1
| | | | | This was accidentally left out of commit c72f0887 (MSVC: Add default WindowsPhone and WindowsStore compile flags, 2014-07-28).
* MSVC: Select default standard libraries for ARM platformBrad King2014-08-121-1/+5
| | | | For Windows ARM targets, only kernel32.lib and user32.lib are standard.
* MSVC: Add system libs for WindowsPhone and WindowsStoreBrad King2014-07-311-1/+5
| | | | | Use the libraries that are added by default by the VS 2013 IDE for Windows Phone and Windows Store projects.
* MSVC: Add default WindowsPhone and WindowsStore compile flagsPaul Annetts2014-07-311-0/+4
| | | | Also set the list of standard libraries to empty.
* MSVC: Disable incremental linking for WindowsPhone and WindowsStoreGilles Khouzam2014-07-311-4/+6
| | | | | Do not add a "/INCREMENTAL" flag when using the toolchains for these systems.
* Define 'WINDOWS_PHONE' and 'WINDOWS_STORE' variablesGilles Khouzam2014-07-311-0/+4
| | | | | Set one of these when CMAKE_SYSTEM_NAME is "WindowsPhone" or "WindowsStore", respectively.