Commit Graph

21645 Commits

Author SHA1 Message Date
Nicolas Despres 2268c41a05 Optimize custom command full-path dependency lookup
In the common case of custom command dependencies specified via full
path optimize the implementation of GetSourceFileWithOutput using a
(hash) map.  This is significantly faster than the existing linear
search.  In the non-full-path case fall back to the existing linear
suffix search.
2013-08-06 16:17:13 -04:00
Brad King eccb39d7f4 VS 6,7: Refactor local generators to avoid GetSourceFileWithOutput
Use the cmSourceFile returned by AddCustomCommandToOutput instead of
throwing out the return value and looking it up with
GetSourceFileWithOutput.
2013-08-06 10:20:03 -04:00
Brad King 87e0e6e497 Merge topic 'ALIAS-targets'
370bf55 Add the ALIAS target concept for libraries and executables.
2013-08-06 09:07:21 -04:00
Brad King 03ab170fe0 OS X: Enable command-line build without tools in PATH
Teach modules CMakeDetermineCompiler and CMakeUnixFindMake to ask Xcode
where to find the compiler or make tools, using 'xcrun --find', if none
is found in the PATH.  Teach module Platform/Darwin to add the path to
the SDK to CMAKE_SYSTEM_PREFIX_PATH so that find_* command look there.
Also add the SDK /usr/include directory to the implicit include list in
CMAKE_${lang}_IMPLICIT_INCLUDE_DIRECTORIES to suppress explicit -I
options for it.
2013-08-06 09:00:18 -04:00
Kitware Robot 0174133dfd CMake Nightly Date Stamp 2013-08-06 00:01:05 -04:00
Patrick Gansterer 34969cf15e Fix setting of the entry point symbol for Windows CE (#14088)
Set the EntryPointSymbol only when it has not been set before
and use the correct symbol depending on the usage of Unicode.
2013-08-05 21:24:00 +02:00
Patrick Gansterer 5e0252ce68 Improve const-correctness in cmVisualStudioGeneratorOptions
Add const qualifier to IsDebug(), UsingSBCS() and UsingUnicode().
2013-08-05 21:23:50 +02:00
Patrick Gansterer bd827f98ef WIN: Use COFF file header header for architecture detection (#14083)
Read the machine field from the COFF file header to get the exact
target architecture for ARM and SHx on the Windows platform.
2013-08-05 20:04:44 +02:00
Patrick Gansterer 28e770cf6e VS10: Add support for assembler code (#11536)
Use the masm BuildCustomizations, which are part of the Visual
Studio installation to allow compilation of asm files.
2013-08-05 16:34:10 +02:00
Brad King 1768014dfc Merge topic 'osx-find-sdk-for-deployment-target'
bf5a5bc bootstrap: Do not suppress CMAKE_OSX_SYSROOT if CFLAGS have -isysroot (#14324)
95f78e0 OS X: Search for SDK based on deployment target (#14324)
2013-08-05 09:54:04 -04:00
Patrick Gansterer c90151bd82 VS: Unify how the name of the generator is specified
Use the value of the provided argument instead of using a fixed
character buffer. This aligns VS10+VS11+VS12 with VS8+VS9.
2013-08-05 13:38:32 +02:00
Patrick Gansterer 3873d29d9e Fix detection of WinCE SDKs with 64bit verion of CMake
Use cmSystemTools::KeyWOW64_32 instead of KeyWOW64_Default to
make sure that the correct part of the registry is read.
2013-08-05 13:38:30 +02:00
Patrick Gansterer 40a4302414 VS12: Remove duplicated overload of UseFolderProperty()
cmGlobalVisualStudio11Generator generator already defines the same
function body, which makes the additional overload useless.
2013-08-05 13:38:28 +02:00
Patrick Gansterer b02f09d434 VS: Replace ArchitectureId with PlatformName
Since we do not need the information about the target architecture
we can use the PlatformName only to specify the this information.
This also removes setting of the MSVC_*_ARCHITECTURE_ID variable
which is not required, because this variable gets set by the
compiler detection code in CMAKE_DETERMINE_COMPILER_ID_CHECK().
2013-08-05 13:38:26 +02:00
Patrick Gansterer 4b15dc855d VS: Set CMAKE_VS_PLATFORM_NAME for VS7 and VS71 too
Move the code which sets CMAKE_VS_PLATFORM_NAME from
cmGlobalVisualStudio8Generator to cmGlobalVisualStudio7Generator.
2013-08-05 13:38:23 +02:00
Patrick Gansterer 60e568cf79 VS10: Do not set the TargetMachine when detecting the compiler
The Microsoft linker is intelligent enough to detect the target
machine type depending on the input files. This allows us to
get the target architecture from the compiler instead of
maintaining the mapping to the platform name.
2013-08-05 13:38:21 +02:00
Patrick Gansterer dfbfe6f166 VS6: Hardcode id_machine_6 for compiler detection
id_machine6 is never set to an other value than x86. So it is
safe to remove the replacements with "x86" directly.
2013-08-05 13:38:19 +02:00
Kitware Robot c359264948 CMake Nightly Date Stamp 2013-08-05 00:01:05 -04:00
Kitware Robot 7d680ca101 CMake Nightly Date Stamp 2013-08-04 00:01:05 -04:00
Kitware Robot c034b6e925 CMake Nightly Date Stamp 2013-08-03 00:01:09 -04:00
Brad King bf5a5bc8b4 bootstrap: Do not suppress CMAKE_OSX_SYSROOT if CFLAGS have -isysroot (#14324)
Revert commit a1c032b9 (bootstrap: Suppress CMAKE_OSX_SYSROOT if CFLAGS
have -isysroot, 2012-09-21).  If MACOSX_DEPLOYMENT_TARGET is set then
CMAKE_OSX_DEPLOYMENT_TARGET will be set and Darwin.cmake will complain
if no CMAKE_OSX_SYSROOT is set.  Just allow both -isysroot flags to
appear.  The one generated by CMAKE_OSX_SYSROOT appears after and
overrides the one from CFLAGS/CXXFLAGS.
2013-08-02 16:01:01 -04:00
Brad King 95f78e08fe OS X: Search for SDK based on deployment target (#14324)
When available, use CMAKE_OSX_DEPLOYMENT_TARGET instead of the host OS X
version to select the default SDK.  This makes sense because one should
use the SDK matching the deployment target.

Suggested-by: John Ralls <jralls@ceridwen.us>
2013-08-02 14:05:00 -04:00
Stephen Kelly 370bf55415 Add the ALIAS target concept for libraries and executables.
* The ALIAS name must match a validity regex.
* Executables and libraries may be aliased.
* An ALIAS acts immutable. It can not be used as the lhs
  of target_link_libraries or other commands.
* An ALIAS can be used with add_custom_command, add_custom_target,
  and add_test in the same way regular targets can.
* The target of an ALIAS can be retrieved with the ALIASED_TARGET
  target property.
* An ALIAS does not appear in the generated buildsystem. It
  is kept separate from cmMakefile::Targets for that reason.
* A target may have multiple aliases.
* An ALIAS target may not itself have an alias.
* An IMPORTED target may not have an alias.
* An ALIAS may not be exported or imported.
2013-08-02 15:21:00 +02:00
Brad King 1e0539cd2c Merge topic 'vs10-include-dir-ampersand'
e7bcdf8 VS10: Escape include paths in XML project files (#14331)
2013-08-02 08:18:38 -04:00
Brad King 3ec8136bae Merge topic 'FindGTK2-pango-libs'
73ba4e5 FindGTK2: Detect pangoft2 and pangoxft libraries
2013-08-02 08:18:28 -04:00
Kitware Robot 70fccc91dd CMake Nightly Date Stamp 2013-08-02 00:01:12 -04:00
Brad King e7bcdf856e VS10: Escape include paths in XML project files (#14331)
Fix generation of the AdditionalIncludeDirectories element content to
escape for XML syntax.  We already escape content of other elements,
this one was simply missing by accident.
2013-08-01 15:00:28 -04:00
Daniele E. Domenichelli 73ba4e5030 FindGTK2: Detect pangoft2 and pangoxft libraries 2013-08-01 16:54:32 +02:00
Brad King b341bf2178 Merge topic 'INCLUDES-DESTINATION-no-config'
80e652f Export: Process generator expressions from INCLUDES DESTINATION.
4355815 cmTarget: Add NAME property
2013-08-01 08:54:15 -04:00
Brad King 1a88bbf3f0 Merge topic 'FindGTK2-gmodule'
7ca5958 FindGTK2: Detect gmodule library
76c72b9 FindGTK2: gthread-2.0 folder does not exist
2013-08-01 08:53:58 -04:00
Brad King 0920587b1d Merge topic 'minor-cleanups'
7429941 Docs: Fix typo in CMAKE_DEBUG_TARGET_PROPERTIES
2013-08-01 08:53:45 -04:00
Brad King 75af0cbfe7 Merge topic 'vs-subsystem-order'
b64e8f2 VS10: Honor user-specified /SUBSYSTEM: flag (#14326)
2013-08-01 08:53:21 -04:00
Brad King a26e7d0782 Merge topic 'target-command-allow-no-items'
c0b8682 Allow target commands to be invoked with no items (#14325).
2013-08-01 08:52:35 -04:00
Kitware Robot f0f7ee0adf CMake Nightly Date Stamp 2013-08-01 00:01:09 -04:00
Stephen Kelly 80e652f5cc Export: Process generator expressions from INCLUDES DESTINATION.
Configuration sensitive expressions are not permitted.
2013-08-01 00:37:25 +02:00
Stephen Kelly 43558156d4 cmTarget: Add NAME property
In generator expression contexts, this can be used to determine the
name of the head target in the evaluation.
2013-08-01 00:36:11 +02:00
Daniele E. Domenichelli 7ca5958820 FindGTK2: Detect gmodule library 2013-07-31 17:40:07 +02:00
Daniele E. Domenichelli 76c72b9f14 FindGTK2: gthread-2.0 folder does not exist
Partially revert commit 508e8ca024
2013-07-31 17:39:38 +02:00
Stephen Kelly 7429941254 Docs: Fix typo in CMAKE_DEBUG_TARGET_PROPERTIES
Introduced in commit f10e6480 (Docs: Document existing target
property debugging options., 2013-07-26)
2013-07-31 17:13:46 +02:00
Brad King b64e8f22a4 VS10: Honor user-specified /SUBSYSTEM: flag (#14326)
Use the WIN32_EXECUTABLE target property only to set the SubSystem build
attribute default.  When user-specified flags are later parsed they may
then override it.
2013-07-31 10:17:17 -04:00
Stephen Kelly c0b8682200 Allow target commands to be invoked with no items (#14325).
Code such as

 target_include_directories(foo PRIVATE ${items})

should not work or break based on whether items is defined or not.
2013-07-31 16:06:34 +02:00
Brad King 0cecc7b485 Merge topic 'update-libarchive'
26fe7e3 libarchive: Backport to CMake 2.8.2
b81a4e1 libarchive: Remove build options not used by CMake
3218f52 libarchive: Avoid struct init with variable
bae3a73 libarchive: Silence API deprecation warnings
6773840 libarchive: Include cm_zlib.h to get zlib used by CMake
8dc0a9f libarchive: Update README-CMake.txt for new snapshot
102071f Merge branch 'libarchive-upstream' into update-libarchive
35df7c8 libarchive 3.1.2 (reduced)
2013-07-31 08:49:09 -04:00
Brad King e3b6ab92db Merge topic 'static_library_flags'
33e6e0b VS6: Add handling of CMAKE_*_LINKER_FLAGS_<CONFIG> variables
152dfda Add additonal tests for the linker flags
20ed496 Add documentation for the missing CMAKE_*_LINKER_FLAGS_* variables
54f7019 Add CMAKE_STATIC_LINKER_FLAGS to CMakeCommonLanguageInclude
2a43c30 Add support for CMAKE_STATIC_LINKER_FLAGS
14bbf83 Unify the way the flags of a static library are read
2013-07-31 08:49:01 -04:00
Brad King 58c5dc37d3 Merge topic '13582_configured_file_regeneration'
8fbf39a cmMakefile: Do not track configured files known to be temporary
2013-07-31 08:48:57 -04:00
Brad King 4e3675ae91 Merge topic 'ninja_bad_cmcldeps_paths'
d12459f VS 6: Tell BuildDepends test to tolerate ninjadep failure
2013-07-31 08:48:52 -04:00
Brad King f2db78c120 Merge topic 'bash-completion-updates'
f85f6a5 bash-completion: Fix/improve generator names extraction
351fd63 bash-completion: Add -S,-SP options arguments completion
2013-07-31 08:48:40 -04:00
Brad King b728ec3c31 Merge topic 'install-interface-includes'
72d13ff install: Remove error condition using INCLUDES DESTINATION without EXPORT.
2013-07-31 08:48:36 -04:00
Brad King cdfeda60f6 Merge topic 'add-cmake_reset_check_state'
9349d69 Add cmake_reset_check_state() macro
2013-07-31 08:48:29 -04:00
Brad King 6e2da4a4d3 Merge topic 'passthru'
2b473d2 Add option to use stdout/stderr of original terminal in cmake --build
2013-07-31 08:48:19 -04:00
Vadim Zhukov 9349d69abf Add cmake_reset_check_state() macro
It's acknowledged that check state should not generally nest,
so it should be cleared when used, for example, in Find* module.

Also, add optional RESET argument to cmake_push_check_state().
2013-07-31 08:43:22 -04:00