summaryrefslogtreecommitdiffstats
path: root/Modules/Platform
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'ar-option-order'Brad King2015-09-101-1/+1
|\ | | | | | | | | 08659ff4 Re-order 'ar' options 'cq' => 'qc'
| * Re-order 'ar' options 'cq' => 'qc'Brad King2015-09-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | The documetnation of binutils: https://sourceware.org/binutils/docs/binutils/ar-cmdline.html suggests to use the parameters "q" and "c" in this order ("q" is operation, and "c" is the modifier). Suggested-by: Дилян Палаузов <dilyan.palauzov@aegee.org>
* | GHS: Find latest 'int' directoryGeoff Viola2015-09-091-7/+29
|/
* Darwin: Add support for tbd library stub filesGregor Jasny2015-08-241-1/+1
| | | | | | | | Starting with Xcode 7 the OSX and iOS SDKs contain only stub files for dynamic system libraries. These stub files contain some meta data and a list of exported sysbols in plain text. They are handled by the toolchain like regular dylibs.
* Merge topic 'hp-ux-itanium-shared-libs'Brad King2015-08-211-3/+5
|\ | | | | | | | | 625225bb HP-UX: Do not use ".sl" extension for shared libs on Itanium
| * HP-UX: Do not use ".sl" extension for shared libs on ItaniumBrad King2015-08-181-3/+5
| | | | | | | | | | | | Instead use the standard ".so" extension. Suggested-by: Gerhard Grimm <gerhard.grimm@detec.com>
* | Add support for ARTOS platform using GNU C with ac compiler driverKars de Jong2015-08-172-0/+26
| | | | | | | | | | | | Add platform and compiler descriptions for ARTOS RTOS (locamation.com). Signed-off-by: Kars de Jong <kars.dejong@locamation.nl>
* | HP-UX: Fix linker search type flags for C shared libs on HP-UXChuck Atkins2015-08-121-12/+5
|/ | | | | | | Since commit v2.8.7~31^2 (HP: Drive shared library linking with compiler front end, 2011-12-12) the C compiler is used to link shared libraries instead of calling the linker directly, so linker options need to be wrapped as -Wl,-foo instead of -foo.
* SunOS: Drop special case for linking C++ shared libraries with gcc (#15673)Brad King2015-07-301-8/+0
| | | | | | | | Since commit v2.4.0~4325 (...use gcc -shared, even for C++ libraries, 2003-03-13) we use the C compiler "gcc" to link C++ shared libraries compiled with "g++". At the time "g++" did not know how to link shared libraries correctly. This has long since been fixed so simply drop the special case.
* Merge topic 'osx-iframework'Brad King2015-07-232-0/+10
|\ | | | | | | | | e68f0cb3 OS X: Use -iframework with AppleClang only on version >= 4.2
| * OS X: Use -iframework with AppleClang only on version >= 4.2Brad King2015-07-222-0/+10
| | | | | | | | | | | | | | Since commit v3.1.0-rc1~564^2 (OS X: Use -iframework for system framework directories, 2014-05-05) we test the version of Clang to see if it supports -iframework. Fix the version test used for AppleClang since it uses a different version scheme than upstream Clang.
* | Add EUROS RTOS platform description fileStanimir Kabaivanov2015-07-141-0/+19
| | | | | | | | | | | | Add a basic platform module for EUROS RTOS (euros-embedded.com). Co-Author: Gerhard Gappmeier <gerhard.gappmeier@ascolab.com>
* | Factor an <INCLUDES> placeholder out of <FLAGS> in rule variablesBrad King2015-07-1312-26/+26
| | | | | | | | | | | | | | | | | | | | | | Teach the Makefile and Ninja generators to substitute for an <INCLUDES> placeholder instead of putting -I in <FLAGS>. Update our values for CMAKE_<LANG>_COMPILE_OBJECT, CMAKE_<LANG>_CREATE_ASSEMBLY_SOURCE, and CMAKE_<LANG>_CREATE_PREPROCESSED_SOURCE to place <INCLUDES> just before <FLAGS>.
* | Place <DEFINES> before <FLAGS> consistently across compilersBrad King2015-07-135-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | Update our values for CMAKE_<LANG>_COMPILE_OBJECT, CMAKE_<LANG>_CREATE_ASSEMBLY_SOURCE, and CMAKE_<LANG>_CREATE_PREPROCESSED_SOURCE to place <DEFINES> before <FLAGS> consistently across supported compilers. We already do this for most compilers, so update the rest for consistency.
* | Merge topic 'auto_export_dll_symbols'Brad King2015-07-081-0/+2
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8f86407c Windows: Optionally generate DLL module definition files automatically 069aa93b bindexplib: Add support for "/bigobj" format objects 61bbbdcf bindexplib: Fix treatment of some symbols de70c922 bindexplib: Teach DumpFile to return errors 8ea69dfe bindexplib: Build source as part of CMakeLib 2963cb2a bindexplib: Wrap long lines 4ff09893 bindexplib: Drop code that CMake does not need 7de8276c bindexplib: Add copyright/license notice block 65086ad7 bindexplib: Import original implementation from CERN
| * | Windows: Optionally generate DLL module definition files automaticallyBill Hoffman2015-07-061-0/+2
| | | | | | | | | | | | | | | | | | | | | Create target property WINDOWS_EXPORT_ALL_SYMBOLS to automatically generate a module definition file from MS-compatible .obj files and give it to the linker in order to export all symbols from the .dll part of a SHARED library.
* | | VS: Add /machine: flag to Librarian tool (#11240)Brad King2015-06-261-0/+1
|/ / | | | | | | | | | | | | | | If a Windows resource (.rc) source file is included in a STATIC library, the VS "link" tool will process the compiled ".res" file and needs to know the target architecture. Without it, we may get a LNK4068 warning and possibly a LNK1112 error. Add /machine: to the default static library flags to give the link tool the information it needs.
* | 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.