summaryrefslogtreecommitdiffstats
path: root/Modules/Platform
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* Add WindowsPhone and WindowsStore platform information modulesBrad King2014-07-316-0/+6
| | | | | | | Simply include the "Windows" platform equivalents. This will allow -DCMAKE_SYSTEM_NAME=WindowsPhone or -DCMAKE_SYSTEM_NAME=WindowsStore to select variants of the Windows platform while re-using most of the platform information from "Windows".
* Merge topic 'pdb-genex'Brad King2014-07-311-0/+1
|\ | | | | | | | | | | f86850ef Genex: Implement generator expressions for target PDB files. 028ad318 Genex: Simplify filesytem artifact code
| * Genex: Implement generator expressions for target PDB files.Nils Gladitz2014-07-311-0/+1
| |
* | Merge topic 'remove-link-remnants'Brad King2014-07-301-1/+0
|\ \ | | | | | | | | | | | | 250ad08a Ninja: Remove _COMPILER_LINKER_OPTION_FLAG_ remnants
| * | Ninja: Remove _COMPILER_LINKER_OPTION_FLAG_ remnantsNils Gladitz2014-07-291-1/+0
| |/
* | Merge topic 'windows-ce-cleanup'Brad King2014-07-293-5/+5
|\ \ | | | | | | | | | | | | | | | | | | 7079f33d WindowsCE: Drop unused Platform/WindowsCE-MSVC module 05373f7e WindowsCE: Refactor setting of "WINCE" 1acde6b0 MSVC: Use STREQUAL to check for WindowsCE
| * | WindowsCE: Drop unused Platform/WindowsCE-MSVC moduleBrad King2014-07-281-1/+0
| | | | | | | | | | | | | | | | | | | | | This module was created to mirror Platform/Windows-MSVC.cmake, but this is not necessary because nothing includes "Platform/<os>-<id>.cmake" directly. The Platform/Windows-MSVC module is only a helper for the Platform/Windows-MSVC-<lang> modules.
| * | WindowsCE: Refactor setting of "WINCE"Brad King2014-07-282-3/+4
| | | | | | | | | | | | | | | | | | Move it to the Platform/Windows module since it is independent of the compiler used. While at it, remove redundant "WIN32" setting from Platform/Windows-MSVC since Plaform/Windows already sets its.
| * | MSVC: Use STREQUAL to check for WindowsCEBrad King2014-07-281-1/+1
| |/ | | | | | | | | In the Platform/Windows-MSVC module it is not necessary to use MATCHES because we are comparing against an exact string.
* | OS X: Allow deployment target with "/" sysroot (#15040)Jeremy Huddleston2014-07-281-0/+2
|/ | | | | | | | Allow the combination -DCMAKE_OSX_DEPLOYMENT_TARGET="10.8" -DCMAKE_OSX_SYSROOT="/" to work. Treat the "/" sysroot as targeting the current OS X version.
* Merge topic 'fix-QCC-compile-flags'Brad King2014-07-213-27/+3
|\ | | | | | | | | 3151024d QNX: Add missing flags for configurations and artifact creation.
| * QNX: Add missing flags for configurations and artifact creation.Stephen Kelly2014-07-173-27/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit v3.0.0-rc1~111^2 (QNX: Introduce QCC compiler id for that QNX platform compiler., 2014-01-20) split handling of the QNX QCC compiler into a separate compiler-id. That refactoring results in the QCC compiler not using the CMake-compiler-id "GNU", which means that the __compiler_gnu macro is no longer executed for it. Add Compiler/QCC*.cmake modules to define and call the __compiler_qcc macro and teach it to call __compiler_gnu internally. Remove the corresponding pieces from the Platform/QNX*.cmake modules. It is also necessary to change the language conditional to dereference the lang macro parameter, which is another bug introduced by the same commit. The extra -lang-c++ flag is only necessary when the CXX compiler is specified as 'qcc' instead of 'QCC' in the toolchain file, which is why this bug was not noticed before. The flag is also necessary in that case when linking in order to find the appropriate standard libraries. The flag was not previously added when linking executables, so linking failed even with CMake 2.8.12 with the lower-case compiler-id. Co-Author: Brad King <brad.king@kitware.com>
* | Merge topic 'wince-fix-dll-linking'Brad King2014-07-141-4/+6
|\ \ | | | | | | | | | | | | 7e1283e4 MSVC: Fix linking of DLLs on WinCE (#15013)
| * | MSVC: Fix linking of DLLs on WinCE (#15013)Brad King2014-07-101-4/+6
| |/ | | | | | | | | | | | | | | On WinCE we must link both shared libraries and executables with the /subsystem:windowsce flag. Teach Platform/Windows-MSVC to pass it to the linker in both cases. Suggested-by: Gunnar Roth <gunnar.roth@gmx.de>
* | VS14: Add Visual Studio 14 generator (#14982)Brad King2014-06-251-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Call the generator "Visual Studio 14" without any year because this version of VS does not provide a year in the product name. Copy cmGlobalVisualStudio12Generator to cmGlobalVisualStudio14Generator and update version numbers accordingly. Add the VS14 enumeration value. Teach the platform module Windows-MSVC to set MSVC14 and document the variable. Teach module InstallRequiredSystemLibraries to look for the VS 14 runtime libraries. Teach tests CheckCompilerRelatedVariables, VSExternalInclude, and RunCMake.GeneratorToolset to treat VS 14 as they do VS 10, 11, and 12. Co-Author: Pawel Stopinski <diokhan@go2.pl>
* | Add basic Android platform moduleBrad King2014-06-061-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Create a Platform/Android module that includes Platform/Linux since Android is based on Linux. Provide only the minimal settings needed to get builds with Android NDK toolchains to work. Disable use of RPATH since the Android loader ignores it and we cannot predict the install destination anyway. Android supports soname but shared library names must end in ".so" and we cannot represent the versioned names with associated symlinks on all host operating systems anyway. However, we do want the SONAME of library files to be set so that linking to them by path to the library file produces NEEDED entries with the soname and not the path. Add a new CMAKE_PLATFORM_NO_VERSIONED_SONAME setting to tell the cmTarget::GetLibraryNames method that not to use the VERSION or SOVERSION target properties in the soname.
* | Merge topic 'GNUtoMS-vs-12'Brad King2014-05-281-1/+3
|\ \ | |/ | | | | | | 668e571d GNUtoMS: Add support for VS 2013 (#14936)
| * GNUtoMS: Add support for VS 2013 (#14936)Brad King2014-05-271-1/+3
| | | | | | | | | | | | Add to the Platform/Windows-GNU module list of VS registry entries those for VS 2013. Also add the name "vcvars64.bat" used by VS 10 and above for 64-bit tools.
* | OpenBSD: honor the LOCALBASE and X11BASE environment variablesRolf Eike Beer2014-05-211-0/+13
| |
* | OpenBSD: disable FIND_LIBRARY_USE_LIB64_PATHSRolf Eike Beer2014-05-201-0/+3
| | | | | | | | OpenBSD has no multilib paths.
* | Windows: Avoid () in environment variable referencesBen Boeckel2014-05-081-2/+3
| | | | | | | | Use nested variable evaluation instead.
* | Merge topic 'osx-iframework'Brad King2014-05-072-0/+7
|\ \ | | | | | | | | | | | | 1bed75a5 OS X: Use -iframework for system framework directories
| * | OS X: Use -iframework for system framework directoriesMikołaj Siedlarek2014-05-072-0/+7
| | | | | | | | | | | | | | | | | | | | | Just like -I flag has its -isystem counterpart which marks an include directory as a system directory and prevents unwanted warnings, on Apple systems there is -iframework -- a system directory replacement for -F. Use this flag to implement include_directories(SYSTEM) for frameworks.
* | | Merge topic 'xcode-sdkroot'Brad King2014-05-071-14/+29
|\ \ \ | |/ / |/| | | | | | | | 5dfe9b7d Xcode: Find fallback SDK if one matching the OS version doesn't exist.
| * | Xcode: Find fallback SDK if one matching the OS version doesn't exist.Clinton Stimpson2014-05-061-14/+29
| | | | | | | | | | | | | | | | | | | | | | | | For example if one installs Xcode 4.6 on OS X 10.9, it doesn't contain a 10.9 SDK, so fallback to the next newest version which, in this case, happens to be a 10.8 SDK. This fixes bug #14572.
* | | Merge branch 'master' into osx-init-earlyBrad King2014-04-298-61/+79
|\ \ \ | |/ / |/| | | | | | | | Resolve conflict in Source/cmGlobalGenerator.cxx by integrating changes from both sides.
| * | Merge topic 'implicit-libNN-dirs'Brad King2014-04-171-1/+1
| |\ \ | | |/ | | | | | | | | | cc57ff5c Drop /lib32 and /lib64 from link directories and RPATH (#14875)
| * | Merge topic 'mingw-archive-no-replace'Brad King2014-04-151-2/+2
| |\ \ | | | | | | | | | | | | | | | | 39d0ade0 Windows-GNU: Support duplicate object names in large archives (#14874)
| | * | Windows-GNU: Support duplicate object names in large archives (#14874)Brad King2014-04-141-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit v2.6.0~388 (Added build rule variables CMAKE_<LANG>_ARCHIVE_..., 2008-01-29) we use separate "ar cr ..." and "ar r ..." steps to incrementally add a large list of object files to an archive. Since the "r" command replaces existing objects of the same name in an archive, if multiple objects have the same file name and appear in separate append steps then one overwrites the other. Instead, use "ar cq ..." and "ar q ..." to always append to the archive. We already remove the archive before creating it so this will not cause objects to be appended to existing archives on incremental rebuilds.
| * | | Merge topic 'matches-cleanup'Brad King2014-04-154-5/+5
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | f21ac16e Replace MATCHES test on numbers with EQUAL test 7eacbaed Replace MATCHES ".+" tests with NOT STREQUAL "" 3a71d34c Use CMAKE_SYSTEM_NAME instead of CMAKE_SYSTEM where sufficient b0b4b460 Remove .* expressions from beginning and end of MATCHES regexs 5bd48ac5 Replace string(REGEX REPLACE) with string(REPLACE) where possible 2622bc3f Clean up usage of if(... MATCHES regex) followed string(REGEX REPLACE regex)
| | * | | Remove .* expressions from beginning and end of MATCHES regexsRolf Eike Beer2014-04-143-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All these expressions work the same: "foo" ".*foo.*" "^.*foo.*$" This assumes that the "Intel*" expressions were meant to be "Intel.*".
| | * | | Replace string(REGEX REPLACE) with string(REPLACE) where possibleRolf Eike Beer2014-04-141-1/+1
| | | | | | | | | | | | | | | | | | | | The simple replacement is much faster.
| * | | | MinGW: link like on Unix and use compile flags when linkingPeter Kümmel2014-04-151-2/+2
| |/ / /
| * | | Merge topic 'revert-Android-platform'Brad King2014-04-111-5/+0
| |\ \ \ | | | | | | | | | | | | | | | | | | | | 4b31f064 Revert "Modules: Add an Andriod platform file"
| | * | | Revert "Modules: Add an Andriod platform file"Stephen Kelly2014-04-101-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 77f06b145d57c4665ff5d71b89a70c54a009ad14. It may be re-added in the future when the requirements for that platform are better known and supported by CMake.
| * | | | Watcom: Use single quote for all file/path items in wlink commandJiri Malak2014-04-081-2/+2
| |/ / / | | | | | | | | | | | | | | | | | | | | Watcom Linker use single quote if necessary for quoting target name, libraries names and libraries search path. Object names were already fixed.
| * | | Watcom: Cleanup Windows-wcl386 configurationJiri Malak2014-04-021-23/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Remove Watcom linker caseexact options already defined in system definition. * Use win_dll system for SHARED_LIBRARY and SHARED_MODULE. * Use explicit target definition -bt=.. option for proper initialization of compiler Windows environment (predefined macros) * Reorganize compiler options to global options and configuration specific options * Use option to optimize out stack checking code for release version
| * | | Merge topic 'link-line-quoting'Brad King2014-04-011-0/+5
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | 423009c1 Makefile: Generate single-quoted object lists for Watcom a863a8fe cmLocalUnixMakefileGenerator3: Re-organize ConvertToQuotedOutputPath
| | * | | Makefile: Generate single-quoted object lists for WatcomJiri Malak2014-03-271-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Drop the CMAKE_NO_QUOTED_OBJECTS internal variable from the Makefile generators. The underlying problem is with the Watcom linker, not with WMake. The Watcom linker wants object files to be single-quoted. Add <LINK-RULE>_USE_WATCOM_QUOTE platform information variables to tell the generators to use Watcom-style single quotes for object files on link lines. On Windows, Watcom uses the GetCommandLine API to get the original command-line string and do custom parsing that expects single quotes. On POSIX systems, Watcom approximates the original command line by joining all argv[] entries separated by a single space. Therefore we need to double-quote the single-quoted arguments so that the shell does not consume them and they are available for the parser to see.
| * | | | Haiku: Fix compiler detection when using distccAdrien Destugues2014-03-211-11/+16
| |/ / / | | | | | | | | | | | | Also remove outdated include directories.
| * | | Merge topic 'watcom-updates'Brad King2014-03-201-11/+13
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 64c2342a Watcom: Enable 'WMake Makefiles' generator on Linux 5d9aa66c Watcom: Introduce OpenWatcom compiler id and fix compiler version 9292d3b8 Watcom: Detect compiler target architecture and platform fbc883c9 Watcom: Add one blank line to Makefile for better readability
| | * | | Watcom: Introduce OpenWatcom compiler id and fix compiler versionJiri Malak2014-03-171-11/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Distinguish "Open Watcom" from old "Watcom" by introducing a new "OpenWatcom" compiler id. The __WATCOMC__ format is "VVRP" for Watcom and "VVRP + 1100" for Open Watcom.
| * | | | Modules: Add an Andriod platform fileStephen Kelly2014-03-201-0/+5
| |/ / / | | | | | | | | | | | | It is much like Linux but has no SONAME or RPATH.
| * | | Windows: Use response files to specify link libraries for GNU toolsBrad King2014-03-051-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Work around the command-line-length limit by using an @linklibs.rsp response file to pass the flags for link libraries. This allows very long lists of libraries to be used in addition to the existing support for passing object files via response file. Suggested-by: Peter Keuschnigg <peter.keuschnigg@pmu.ac.at>
| * | | Merge topic 'watcom-wlib-quoting'Brad King2014-03-031-2/+2
| |\ \ \ | | | | | | | | | | | | | | | | | | | | 5c5be193 Watcom: Fix static library name quoting for wlib
| | * | | Watcom: Fix static library name quoting for wlibJiri Malak2014-02-281-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | Use double-quotes instead of single-quotes around the static library target name in 'wlib' invocations.
| * | | | Watcom: Fix creation of DLLs without any exported symbolsBrad King2014-02-271-4/+3
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Create each DLL import library by passing "option implib=..." to the linker for its SHARED library. This works even when there are no symbols to be exported. Leave the option out for MODULE libraries because we do not need an import library for them. For executables, retain the separate invocation of wlib because we want an import library only when the ENABLE_EXPORTS property is set, and in that case the project should provide symbols. Suggested-by: J Decker <d3ck0r@gmail.com>
| * | | MSVC: Add properties to configure compiler PDB files (#14762)Brad King2014-02-261-1/+1
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit v2.8.12~437^2~2 (VS: Separate compiler and linker PDB files 2013-04-05) we no longer set /Fd with the PDB_NAME or PDB_OUTPUT_DIRECTORY properties. Those properties now exclusively handle linker PDB files. Since STATIC libraries do not link their compiler PDB file becomes more important. Add new target properties "COMPILE_PDB_NAME[_<CONFIG>]" and "COMPILE_PDB_OUTPUT_DIRECTORY[_<CONFIG>]" to specify the compiler PDB file location and pass the value to the MSVC /Fd option.