Commit Graph

16925 Commits

Author SHA1 Message Date
Brad King 9a4df52aa1 Add 'ANDROID_GUI' target property to mark Android applications
Also add a 'CMAKE_ANDROID_GUI' variable to set the property default
so a project can easily make all executables Android applications.
An Android application executable file has the same extension as a
shared library (.so).
2014-09-29 16:05:53 -04:00
Brad King 16569abfa8 cmTarget: Track internally whether platform is Android
Add an IsAndroid member to save whether CMAKE_SYSTEM_NAME is "Android".
2014-09-29 16:05:53 -04:00
Brad King ef0fd4f0ce VS: Teach vcxproj generation about the Tegra-Android platform
Complete the basic implementation of the VS Tegra-Android generators
by replacing parts of vcxproj files that are specific to MS tools
with settings defined for the NVIDIA Nsight Tegra tools.

Current limitations include:

* We have no "flag table" so flags will be passed in the additional
  options fields instead of mapped to the vcxproj elements defined
  by Nsight Tegra msbuild platform definition files.

* We have no interface to set the AndroidArch, AndroidStlType, or
  AndroidTargetAPI fields so defaults will be used.

* The Nsight Tegra msbuild platform definition files do not provide
  a working "Utility" target type so for add_custom_target we need
  to use a "StaticLibrary" target type and leave out ClCompile rules.

* There is also no target type for plain command-line executables
  so for add_executable we need to use a "DynamicLibrary" target.
  Full application bundles will likely require new CMake target
  properties (like WIN32_EXECUTABLE for Windows GUI executables).
2014-09-29 16:05:53 -04:00
Brad King c655f0c417 VS: Drop GenerateManifest from .vcxproj files for non-MS tools
The .vcxproj file content generated by OutputLinkIncremental is
specific to MS tools, so drop it when using other tools.
2014-09-29 16:05:52 -04:00
Brad King 2f071466eb VS: Teach VS >= 10 to recognize CMAKE_SYSTEM_NAME 'Android'
When CMAKE_SYSTEM_NAME is 'Android', check for an installation of
'NVIDIA Nsight Tegra Visual Studio Edition' and generate .vcxproj
files for the "Tegra-Android" platform.  Also make the installed
version available in a CMAKE_VS_NsightTegra_VERSION variable.
2014-09-29 16:05:52 -04:00
Brad King 227a336714 VS: Use case-insensitive check for hlsl,jpg,png,xml file extensions
These "extra" sources should map to the proper tool even when they
are not in lower case.
2014-09-29 16:05:52 -04:00
Brad King a22570ea19 Merge topic 'wix-directory-permissions'
d48c781f CPackWiX: Extend CPACK_WIX_ACL to support directories
2014-09-29 09:21:45 -04:00
Brad King c38d9687ca Merge topic 'update-kwsys'
20853009 Merge branch 'upstream-kwsys' into update-kwsys
a79ff0e4 KWSys 2014-09-25 (29ffaf43)
2014-09-29 09:21:43 -04:00
Kitware Robot 693c20df76 CMake Nightly Date Stamp 2014-09-29 00:01:08 -04:00
Kitware Robot 7a8be6ea41 CMake Nightly Date Stamp 2014-09-28 00:01:07 -04:00
Nils Gladitz d48c781fc2 CPackWiX: Extend CPACK_WIX_ACL to support directories 2014-09-27 17:34:39 +02:00
Kitware Robot 58dc05de9e CMake Nightly Date Stamp 2014-09-27 00:01:07 -04:00
Brad King 208530090d Merge branch 'upstream-kwsys' into update-kwsys 2014-09-26 09:34:26 -04:00
Kitware Robot 4551a53c11 CMake Nightly Date Stamp 2014-09-26 00:01:08 -04:00
Kitware Robot 93da76d4d8 CMake Nightly Date Stamp 2014-09-25 00:01:08 -04:00
Brad King 17a457dcb0 Merge topic 'fix_search_path_ios_trycompile'
55a885da Teach try_compile COPY_FILE to look for IOS app bundles.
2014-09-24 09:21:50 -04:00
Brad King efd16ba928 Merge topic 'vs-wince-exe-entry-point'
e7aeb79f VS, WINCE: Only set EntryPointSymbol for executables
2014-09-24 09:21:48 -04:00
Brad King e6a7abd2b6 Merge topic 'fix-LOCATION-slashes'
92b2c618 Remove extra slashes from LOCATION target property value
2014-09-24 09:21:46 -04:00
Brad King be5215c4ba Merge topic 'ninja-compiler-change'
6120fca8 Ninja: Prevent compilers to be silently modified
2014-09-24 09:21:44 -04:00
Kitware Robot 6bd776eba6 CMake Nightly Date Stamp 2014-09-24 00:01:08 -04:00
Bill Hoffman 55a885da00 Teach try_compile COPY_FILE to look for IOS app bundles.
The COPY_FILE option on try_compile never looked for IOS application
bundles. This caused it to fail if the CMAKE_MACOSX_BUNDLE was set.
2014-09-23 10:59:08 -04:00
Kitware Robot 069090e347 CMake Nightly Date Stamp 2014-09-23 00:01:11 -04:00
Pascal Bach e7aeb79f08 VS, WINCE: Only set EntryPointSymbol for executables 2014-09-22 10:23:16 -04:00
Brad King 92b2c6189d Remove extra slashes from LOCATION target property value
In commit v3.0.0-rc1~429^2~2 (Remove the Location member from cmTarget,
2012-10-07) a few extra slashes were added to the path construction
logic, perhaps due to a partially implemented attempt at handling the
case that GetDirectory returns an empty string.  This leads to LOCATION
paths with double slashes in some cases.  Remove them now.
2014-09-22 09:32:21 -04:00
Brad King 0ab2718448 Merge topic 'wix-remember-install-dir'
e785fab5 CPackWiX: Teach WiX installers to remember the install location for upgrades
2014-09-22 09:13:21 -04:00
Brad King 6771c0bbdb Merge topic 'vs-windows-store-certifictes'
d4ca8fb2 VS: Add Certificates to .vcxproj files
2014-09-22 09:13:19 -04:00
Brad King 2b1b1b1cfa Merge topic 'fix-enable_language-missing-module-errors'
1b549a5c enable_language: Fix error messages on missing modules (#15155)
2014-09-22 09:13:11 -04:00
Brad King e6f0bb7b15 Merge topic 'autogen-fixes'
e3c97a19 QtAutogen: Process all ui files in a source file (#14981).
b8877b1d QtAutogen: Add source files to target when only AUTORCC is used.
2014-09-22 09:13:01 -04:00
Brad King d8dde37d60 Merge topic 'minor-cleanups'
80bda168 Simplify use of binary_search.
1927e4ba Remove const char string comparison helper.
2014-09-22 09:12:58 -04:00
Sylvain Joubert 6120fca8e2 Ninja: Prevent compilers to be silently modified
Unlike with Unix Makefiles generator modifying compiler paths was not
protected with Ninja generator.  It was possible to modify them in the
cache without the expected effect on the generated solution.  Also
activate corresponding tests with Ninja.
2014-09-22 08:44:39 -04:00
Kitware Robot 82c8a3b01a CMake Nightly Date Stamp 2014-09-22 00:01:07 -04:00
Kitware Robot 894c1db10b CMake Nightly Date Stamp 2014-09-21 00:01:08 -04:00
Kitware Robot 151bf1aca3 CMake Nightly Date Stamp 2014-09-20 00:01:07 -04:00
Nils Gladitz e785fab54b CPackWiX: Teach WiX installers to remember the install location for upgrades 2014-09-19 22:42:36 +02:00
Gilles Khouzam d4ca8fb2bd VS: Add Certificates to .vcxproj files
After certificates were moved into their own category in
cmGeneratorTarget, that category was not added for output by the VS 10
generator.  Add it now.
2014-09-19 13:46:00 -04:00
Kitware Robot 3689c43a8c CMake Nightly Date Stamp 2014-09-19 00:01:09 -04:00
Brad King 1b549a5c64 enable_language: Fix error messages on missing modules (#15155)
In cmGlobalGenerator::EnableLanguage, fix error messages for missing
module files to actually name the missing module instead of using the
empty string returned by GetModulesFile.
2014-09-18 09:25:26 -04:00
Stephen Kelly e3c97a1914 QtAutogen: Process all ui files in a source file (#14981).
Use a vector to store a list of matched ui_ includes, instead of
overwriting the previous match.
2014-09-18 09:41:16 +02:00
Kitware Robot 201cc6fe09 CMake Nightly Date Stamp 2014-09-18 00:01:09 -04:00
Stephen Kelly 80bda1684d Simplify use of binary_search.
A local string was created when dir was a const char*. Now dir is a
std::string already so the dirString is vestigal.
2014-09-17 15:10:55 +02:00
Stephen Kelly 1927e4bacb Remove const char string comparison helper.
It is now unused.
2014-09-17 15:10:25 +02:00
Stephen Kelly b8877b1d62 QtAutogen: Add source files to target when only AUTORCC is used.
Add missing entry to if condition.
2014-09-17 14:39:42 +02:00
Kitware Robot 7b11f87100 CMake Nightly Date Stamp 2014-09-17 00:01:07 -04:00
Brad King 56af886603 Merge topic 'vs10-wince'
a3298f77 VS: Teach VS >= 10 generator about Windows CE
2014-09-16 09:16:40 -04:00
Kitware Robot b5ac023ba2 CMake Nightly Date Stamp 2014-09-16 00:01:07 -04:00
Pascal Bach a3298f7790 VS: Teach VS >= 10 generator about Windows CE
When CMAKE_SYSTEM_NAME is 'WindowsCE':

* Set the Subsystem and EntryPointSymbol accordingly.
* When CMAKE_SYSTEM_VERSION is 8.0 (Windows CE 2013),
  select the CE800 toolset by default.
2014-09-15 10:37:40 -04:00
Brad King b234836637 Merge topic 'vs-generator-platform'
be6a555d Tests: Test setting a generator platform in a toolchain file
d506fee8 Tests: Use -A option to pass generator platform selection
11c9ddd6 ExternalProject: Use -A option to pass generator platform
29bd843e CTest: Use -A option to pass generator platform selection
eb7d8156 cmake: Add -A option to specify a generator platform
2014-09-15 10:27:38 -04:00
Brad King 9edf6903e6 Merge topic 'if-sanity'
858d5a0b Fix if() checks of CMAKE_SYSTEM_NAME on Cygwin
e177e7af FPHSA: Avoid if() dereferencing of quoted variable
425acc52 cmcurl: Use if(DEFINED) to simplify conditions
cede5cbd libarchive: Avoid depending on if() to dereference a quoted variable
2d97178b FindGTK2: Avoid depending on if() to dereference a quoted variable
0b12815d Modules/Test*.cmake: Use if(DEFINED) to simplify conditions
188a1f23 If: Introduce policy CMP0054 - don't dereference quoted variables in if()
b900c1cc If: Extract cmConditionEvaluator from if() implementation
2014-09-15 10:27:36 -04:00
Brad King 29bd843e8b CTest: Use -A option to pass generator platform selection
This is less verbose than defining CMAKE_GENERATOR_PLATFORM.
2014-09-15 10:26:59 -04:00
Brad King eb7d815649 cmake: Add -A option to specify a generator platform
Define the 'cmake -A' option to set CMAKE_GENERATOR_PLATFORM
without having to spell out the whole variable name.  We choose
the name '-A' for "platform" because '-P' is already taken, and
in the common use case the "platform" is actually an architecture
(e.g. x64).

Teach the RunCMake test infrastructure to use -A to pass the generator
platform.  Extend the RunCMake.GeneratorPlatform test with a case to
verify that the -A option cannot be repeated.
2014-09-15 10:26:59 -04:00
Kitware Robot 78884b6eff CMake Nightly Date Stamp 2014-09-15 00:01:07 -04:00
Kitware Robot 5ed4ee4e5e CMake Nightly Date Stamp 2014-09-14 00:01:07 -04:00
Kitware Robot 2770b19f4c CMake Nightly Date Stamp 2014-09-13 00:01:13 -04:00
Kitware Robot 453f20d893 CMake Nightly Date Stamp 2014-09-12 00:01:14 -04:00
Brad King 858d5a0b3e Fix if() checks of CMAKE_SYSTEM_NAME on Cygwin
The CMAKE_SYSTEM_NAME is "CYGWIN", but we also define a variable
named "CYGWIN" to "1".  Avoid allowing if() to expand the "CYGWIN"
string as a variable.
2014-09-11 21:23:24 +02:00
Nils Gladitz 188a1f236e If: Introduce policy CMP0054 - don't dereference quoted variables in if() 2014-09-11 21:23:17 +02:00
Nils Gladitz b900c1ccaa If: Extract cmConditionEvaluator from if() implementation 2014-09-11 21:17:09 +02:00
Kitware Robot 28012f3eef CMake Nightly Date Stamp 2014-09-11 00:01:08 -04:00
Brad King 0a92b23c52 Merge topic 'vs-generator-platform'
09c8ad99 enable_language: Initialize system-specific generator info only once
09ab207c Tests: Add generator platform support
6944997b ExternalProject: Propagate the generator platform
8d332091 CTest: Add options to set generator platform
b97736a2 VS: Implement CMAKE_GENERATOR_PLATFORM for VS >= 8
0f1f1271 CMake: Add CMAKE_GENERATOR_PLATFORM option
4f7d0c42 Help: Document CMAKE_VS_PLATFORM_NAME variable
68d4280a VS: Refactor internal default platform name selection
ad2a4776 cmGlobalVisualStudio10Generator: Re-order some methods
03b7b6cd cmGlobalGenerator: Call SetGeneratorToolset even for empty toolset
2014-09-10 11:23:22 -04:00
Brad King 2bfe48d6af Merge topic 'update-kwsys'
daab3b3b Merge branch 'upstream-kwsys' into update-kwsys
92b582a6 KWSys 2014-09-08 (fb77be5a)
2014-09-10 11:23:20 -04:00
Brad King cd0ead3c94 Merge topic 'tolerate-lib-dir-symlink'
f99cc9c3 Tolerate symlinks during RPATH ordering (#13429)
2014-09-10 11:23:12 -04:00
Brad King 09c8ad9943 enable_language: Initialize system-specific generator info only once
Call SetSystemName, SetGeneratorPlatform, and SetGeneratorToolset
exactly once after reading CMakeSystem.cmake, and not again on another
call to enable_language() or project().
2014-09-10 11:21:51 -04:00
Kitware Robot e03b474fa8 CMake Nightly Date Stamp 2014-09-10 00:01:10 -04:00
Brad King f99cc9c389 Tolerate symlinks during RPATH ordering (#13429)
On Arch Linux, /lib and /lib64 are symlinks to /usr/lib.  When ordering
runtime library search paths, we must not consider these to be distinct
directories.  Before considering conflicts between two directories,
check that they do not have the same 'realpath'.

Inspired-by: Myles English <mylesenglish@gmail.com>
2014-09-09 09:01:59 -04:00
Brad King daab3b3bdf Merge branch 'upstream-kwsys' into update-kwsys 2014-09-09 08:46:41 -04:00
Kitware Robot a06e49cf10 CMake Nightly Date Stamp 2014-09-09 00:01:10 -04:00
Kitware Robot 1251c1c8c5 CMake Nightly Date Stamp 2014-09-08 00:01:07 -04:00
Kitware Robot c4f447aec9 CMake Nightly Date Stamp 2014-09-07 00:01:07 -04:00
Kitware Robot 1fa2f43c2b CMake Nightly Date Stamp 2014-09-06 00:01:08 -04:00
Brad King 8d33209170 CTest: Add options to set generator platform
The ctest_configure command already reads the CTEST_CMAKE_GENERATOR
variable to get the value for the cmake -G option.  Read new variable
CTEST_CMAKE_GENERATOR_PLATFORM to pass on as CMAKE_GENERATOR_PLATFORM.

The "ctest --build-and-test" mode already has "--build-generator" to
specify the -G option to CMake.  Add a "--build-generator-platform" option
to specify a value to pass on as CMAKE_GENERATOR_PLATFORM.
2014-09-05 15:18:21 -04:00
Brad King b97736a23d VS: Implement CMAKE_GENERATOR_PLATFORM for VS >= 8
For VS generator names that do not specify the platform name, read
CMAKE_GENERATOR_PLATFORM to get it.

Extend the RunCMake.GeneratorPlatform test with a case covering
use of the x64 platform when the test generator is a Visual Studio
generator whose name does not specify a platform.
2014-09-05 15:03:56 -04:00
Brad King 0f1f1271e6 CMake: Add CMAKE_GENERATOR_PLATFORM option
Reject the option by default.  It will be implemented on a per-generator
basis.  Pass the setting into try_compile project generation.  Add cache
entry CMAKE_GENERATOR_PLATFORM and associated variable documentation to
hold the value persistently.

Add a RunCMake.GeneratorPlatform test to cover basic use cases for the
option.  Verify that CMAKE_GENERATOR_PLATFORM is empty by default, and
that it is rejected when the generator does not support a user setting.
2014-09-05 14:38:05 -04:00
Brad King 68d4280ac4 VS: Refactor internal default platform name selection
Rename the 'PlatformName' member to 'DefaultPlatformName' and make
sure it is only read through a 'GetPlatformName()' call.  This will
allow non-default names to be chosen later.
2014-09-05 14:02:58 -04:00
Brad King ad2a4776aa cmGlobalVisualStudio10Generator: Re-order some methods
Order SetSystemName and SetGeneratorToolset method declarations
and definitions as they are called.
2014-09-05 13:43:52 -04:00
Brad King 03b7b6cda1 cmGlobalGenerator: Call SetGeneratorToolset even for empty toolset
Move handling of an empty toolset name into the implementation of the
method.  This simplifies the VS 10 implementation of default toolset
selection because it has one code path that is always called.
2014-09-05 13:41:54 -04:00
Kitware Robot ff1fddb0bf CMake Nightly Date Stamp 2014-09-05 00:01:13 -04:00
Brad King f7c44eac4c Merge topic 'xcode-duplicate-file-refs'
d73f8828 Merge branch 'backport-xcode-duplicate-file-refs' into xcode-duplicate-file-refs
cf92fe2d Xcode: Generate per-target file references (#15111)
e7114226 Xcode: Generate per-target file references (#15111)
2014-09-04 09:48:27 -04:00
Brad King 1dbb46483a Merge topic 'xcode-assetcatalog-folder-type'
8eacc339 Xcode: Reference '.xcassets' folders as assetcatalog (#15125)
02aa5965 Xcode: Refactor internal file type extension extraction
2014-09-04 09:48:22 -04:00
Kitware Robot 13e4e0a831 CMake Nightly Date Stamp 2014-09-04 00:01:07 -04:00
Brad King cf92fe2d84 Xcode: Generate per-target file references (#15111)
Xcode requires a separate PBXFileReference for each target source group
that references a source file.  Xcode 6 now diagnoses re-use of the same
PBXFileReference from multiple source groups.  Add the referencing
target name to our internal map key so we use a per-target reference.
2014-09-03 12:48:53 -04:00
Brad King 8eacc3390a Xcode: Reference '.xcassets' folders as assetcatalog (#15125) 2014-09-03 10:33:50 -04:00
Brad King 02aa5965e6 Xcode: Refactor internal file type extension extraction
Move it earlier so it can be used for directories too.
2014-09-03 10:33:12 -04:00
Kitware Robot fb8acb74e8 CMake Nightly Date Stamp 2014-09-03 00:01:08 -04:00
Brad King 3338b2c3c8 Merge topic 'ctest-help-fix'
6767660f CTest: Add missing space in command line help.
2014-09-02 10:43:21 -04:00
Brad King 3db5e31ec1 Merge topic 'string-uuid'
87e476e8 Help: Add notes for topic 'string-uuid'
328e8694 StringUuid: Implement new string(UUID) sub-command.
2014-09-02 10:43:16 -04:00
Brad King bfc81c5934 Merge topic 'vs-windows-apps'
39fefde2 VS: Add test case for Windows Phone and Windows Store
89da8465 MSVC: Define 'WIN32' for Windows Store and Windows Phone
ed7f085f Help: Add notes for topic 'vs-windows-apps'
dd11ae8f VS: Do not compile C sources as WinRT (#15100)
b8e40538 VS: Mark Windows Phone and Store targets as App Containers
0432f062 VS: Always ignore ole32 on Windows Phone 8.0
e6ff2f8b VS: Generate Windows Metadata for WinRT components
ee48f4c7 VS: Generate Windows Phone and Windows Store projects as Unicode
cb1aceed VS: Add VS_WINRT_COMPONENT property to enable CompileAsWinRT
401269e4 VS: Handle .pfx files explicitly in generator
23782171 VS: Handle AppxManifest sources explicitly in generator
bc373c6d VS: Set Window Phone/Store app type in CMake-generated targets
d89b2889 VS: Mark CMake-generated targets as Utility in .vcxproj files
03ad8f28 CMakeDetermineCompilerABI: Link with standard libraries on MSVC
2014-09-02 10:16:37 -04:00
Brad King dd11ae8f0f VS: Do not compile C sources as WinRT (#15100)
The MSVC /ZW flag is valid only for C++ sources.  Whenever we enable
CompileAsWinRT for the whole target, disable it for all C sources.
Update the documentation of VS_WINRT_COMPONENT to drop the statement
about undefined behavior for non-C++ sources, because it is now
defined as expected.
2014-09-02 10:17:02 -04:00
Gilles Khouzam b8e405387e VS: Mark Windows Phone and Store targets as App Containers
* Add AppContainerApplication to non-UTILITY targets
* Generate app manifest and related files if project does not provide them.
  Place them in a per-target directory to avoid clashes.
* Mark WinRT components with WinMDAssembly
* Import Windows Phone 8.0 targets in .vcxproj files when necessary,
  and reference platform.winmd.

Inspired-by: Paul Annetts <paul@lightunobscured.com>
2014-09-02 10:17:02 -04:00
Kitware Robot 7a4a05d076 CMake Nightly Date Stamp 2014-09-02 00:01:07 -04:00
Nils Gladitz 6767660f2c CTest: Add missing space in command line help. 2014-09-01 09:18:51 +02:00
Kitware Robot 75abb6da97 CMake Nightly Date Stamp 2014-09-01 00:01:07 -04:00
Kitware Robot 5d7ce7a488 CMake Nightly Date Stamp 2014-08-31 00:01:08 -04:00
Kitware Robot 3919fc66e1 CMake Nightly Date Stamp 2014-08-30 00:01:07 -04:00
Kitware Robot 85a6ff0254 CMake Nightly Date Stamp 2014-08-29 00:01:08 -04:00
Nils Gladitz 328e869433 StringUuid: Implement new string(UUID) sub-command. 2014-08-28 15:13:54 +02:00
Kitware Robot 8785d05115 CMake Nightly Date Stamp 2014-08-28 00:01:07 -04:00
Kitware Robot 7c694368dd CMake Nightly Date Stamp 2014-08-27 00:01:08 -04:00
Kitware Robot 0a64c48d38 CMake Nightly Date Stamp 2014-08-26 00:01:07 -04:00
Kitware Robot c2a47a9ac3 CMake Nightly Date Stamp 2014-08-25 00:01:07 -04:00
Kitware Robot 238d2619d6 CMake Nightly Date Stamp 2014-08-24 00:01:09 -04:00