Commit Graph

14509 Commits

Author SHA1 Message Date
Jonas Andersen 6c9712c47b VS: Add Resx configuration to the vcxproj file
In my project group we are using CMake to generate c++/cli winform
projects and I noticed the work done in commit 79ec7868 (VS: Add Windows
Forms Support, 2013-04-29) was in the right direction for solving some
of the problems we were facing.

The changes as submitted was breaking some functionality in our
projects, so I made some changes that fixes our problems and I believe
that it will also work for others.

* Resx files did not link correctly with the winform h-file so I added
  the Resx configuration to the vcxproj file.

* I removed the functionality for setting <CLRSupport> true for the
  project based on if an resx-file is pressent.  This is preventing
  us from using native cpp code.  Also this do not address that some
  projects will need to set other options like clr:pure, clr:safe.
  This could be implemented as a cmake option, so it is possible to
  specify exactly what is needed.  Existing VSWindowsFormsResx Test
  project is updated so it will be working with my changes.
2013-06-28 09:23:41 -04:00
Brad King daaf6283f5 Merge topic 'refactor-compile-options'
d221eac Refactor target COMPILE_OPTIONS and COMPILE_FLAGS handling
b6385ca Escape target flags taken from COMPILE_OPTIONS
0c9cc9a Embarcadero: Use response files only for includes, objects, and libs
2013-06-28 09:04:01 -04:00
Brad King 2ed149caef Merge topic 'update-kwsys'
063617c Merge branch 'upstream-kwsys' into update-kwsys
045fc84 KWSys 2013-06-24 (3d1d4e7c)
2013-06-28 09:03:55 -04:00
Brad King cff1bf48e7 Merge topic 'doc-ENV-syntax'
c293e05 Document ENV syntax as a "variable" (#14245)
2013-06-28 09:03:45 -04:00
Stephen Kelly 47a8db5bcd Add generator expressions for compiler versions.
New generator expressions allow retrieval of the version per language,
as well as equality comparison.
2013-06-28 14:32:58 +02:00
Kitware Robot 055a38bdaf CMake Nightly Date Stamp 2013-06-28 00:01:04 -04:00
Brad King d221eac812 Refactor target COMPILE_OPTIONS and COMPILE_FLAGS handling
Replace the cmLocalGenerator GetCompileOptions method with an
AddCompileOptions method since all call sites of the former simply
append the result to a flags string anyway.

Add a "lang" argument to AddCompileOptions and move the
CMAKE_<LANG>_FLAGS_REGEX filter into it.  Move the call sites in each
generator to a location that has both the language and configuration
available.  In the Makefile generator this also moves the flags from
build.make to flags.make where they belong.
2013-06-27 12:57:32 -04:00
Brad King b6385cabec Escape target flags taken from COMPILE_OPTIONS
Factor appending of individual flags out into an AppendFlagEscape method
in cmLocalGenerator and teach it to use EscapeForShell.  Update all
COMPILE_OPTIONS handling to use AppendFlagEscape.

Override the method in the Xcode generator to use its custom escape
implementation.

Teach the CompileOptions test to add an option that requires escaping
everywhere instead of just with the GNU tools.
2013-06-27 12:57:32 -04:00
Kitware Robot 297b42b0c4 CMake Nightly Date Stamp 2013-06-27 00:01:06 -04:00
Pavel Shramov 551d3343cd cmDependsC: Collapse relative include paths
While calculating dependencies collapse sequences such as

 ../../../a/b/c/../../d/e/../../e/f

to avoid total path lengths over the Windows path length limit as much
as possible.
2013-06-26 10:14:31 -04:00
Brad King 063617cd18 Merge branch 'upstream-kwsys' into update-kwsys 2013-06-26 09:52:46 -04:00
Brad King bef7c0251e Merge topic 'dag-LINKER_LANGUAGE'
ff015ee Genex: Report error if a target file is needed to evaluate link libraries.
b58aff9 Genex: Extend EvaluatingLinkLibraries to also check the top target name.
b1c19ce Genex: Make LINK_LANGUAGE report an error when evaluating link libraries.
0e1cb07 Add missing return after error report.
2013-06-26 09:03:05 -04:00
Brad King c1631efa0e Merge topic 'version-compare-genex'
e605528 Add generator expressions for version comparision.
48bb48e De-duplicate version comparison code.
2013-06-26 09:02:49 -04:00
Brad King 22fbeaa14b Merge topic 'export-COMPILE_OPTIONS-property'
77ff352 Generate INTERFACE_COMPILE_OPTIONS on export.
2013-06-26 09:02:10 -04:00
Brad King 1c51798940 Merge topic 'COMPILER_TARGET'
2d9ec1d Add compiler target compile options.
2013-06-26 09:01:57 -04:00
Brad King c293e05b8e Document ENV syntax as a "variable" (#14245)
Although "ENV" is not a special variable itself, use it to document
the $ENV{VAR} syntax.
2013-06-26 08:41:51 -04:00
Kitware Robot fdd558d6a6 CMake Nightly Date Stamp 2013-06-26 00:01:03 -04:00
Brad King aecacd093b Merge topic '13582_configured_file_regeneration'
ad50250 cmMakefile: Track configured files so we can regenerate them (#13582)
4a6397a Ninja: Track configured files so we can regenerate them.
2013-06-25 08:55:02 -04:00
Brad King 493489665e Merge topic 'makefile_AddCMakeOutputFile_signature'
6dbd4a5 cmMakefile: Refactor AddCMakeDependFile  and AddCMakeOutputFile.
2013-06-25 08:54:52 -04:00
Robert Maynard ad502502df cmMakefile: Track configured files so we can regenerate them (#13582)
Currently when a configured file is removed from the build directory,
running the build command will not regenerate the file. Now detect
this and will rerun cmake properly when a user issues the build
command.
2013-06-25 08:51:20 -04:00
Robert Maynard 4a6397a70c Ninja: Track configured files so we can regenerate them.
Unlike the Makefile generator the ninja generator did not tack any of
its output files, so if they are deleted the generator would not run.
2013-06-25 08:51:20 -04:00
Kitware Robot ade22ea7c6 CMake Nightly Date Stamp 2013-06-25 00:01:03 -04:00
Robert Maynard 6dbd4a5f17 cmMakefile: Refactor AddCMakeDependFile and AddCMakeOutputFile.
AddCMakeDependFile and AddCMakeOutputFile both store as std::string
and all calling sites use std::string. So instead of creating more
temporary objects, lets just use std::strings.
2013-06-24 10:43:20 -04:00
Stephen Kelly ff015ee11e Genex: Report error if a target file is needed to evaluate link libraries.
Constructs such as

 target_link_libraries(foo $<$<STREQUAL:$<TARGET_FILE:foo>,foo.so>:bar>)

segfault before this patch.
2013-06-24 16:22:15 +02:00
Stephen Kelly b58aff90c5 Genex: Extend EvaluatingLinkLibraries to also check the top target name.
This will allow testing whether we are evaluating the link libraries
of a particular target.
2013-06-24 16:22:15 +02:00
Stephen Kelly b1c19ce383 Genex: Make LINK_LANGUAGE report an error when evaluating link libraries. 2013-06-24 16:21:53 +02:00
Stephen Kelly 0e1cb07e84 Add missing return after error report. 2013-06-24 16:21:53 +02:00
Brad King 0bd82cb1a7 Merge topic 'config-dependent-CMAKE_AUTOMOC'
ea4d784 QtAutomoc: Use config-dependent compile definitions and includes.
67f6ceb QtAutomoc: Fix handling of list separator for compile definitions.
2013-06-24 08:47:03 -04:00
Brad King 0fd7d47138 Merge topic 'transitive-property-PP-FOR_EACH'
0d8db25 Use a preprocessor loop to manage the valid transitive properties.
2013-06-24 08:46:46 -04:00
Brad King 6d7b124f7b Merge topic 'find-targets-in-INTERFACE_COMPILE_OPTIONS'
8a3b5be Find targets in INTERFACE_COMPILE_OPTIONS when exporting for try_compile.
2013-06-24 08:46:34 -04:00
Brad King 37e34be0f5 Merge topic 'fix-COMPILE_OPTIONS-transitive-performance-regression'
477e413 Add missing 'seen' check for evaluating COMPILE_OPTIONS.
2013-06-24 08:46:22 -04:00
Brad King b2d70c1a20 Merge topic 'set-sysroot'
de4da66 Use --sysroot when cross compiling.
2013-06-24 08:46:12 -04:00
Brad King 059be4ba3b Merge topic 'add-whitespace'
2331b57 Add whitespace after colons in error messages.
2013-06-24 08:38:12 -04:00
Brad King 1576592d02 Merge topic 'openbsd-elf-parsing'
480e924 OpenBSD: Enable ELF parsing and editing (#14241)
2013-06-24 08:38:02 -04:00
Brad King c5c94269b6 Merge topic 'doc-E-tar-zip'
ae06f80 cmake: Document "-E tar" support for .zip (#14225)
2013-06-24 08:37:42 -04:00
Brad King bd2e3c7766 Merge topic 'add-cmake_host_system_information-command'
bb71a3a Add cmake_host_system_information command
2013-06-24 08:37:37 -04:00
Brad King 7bf42bf9cc Merge topic 'add-try_compile-options'
482f112 try_compile: Add signature to allow multiple SOURCES
2013-06-24 08:37:30 -04:00
Brad King 5b9b141ee6 Merge topic 'doc-search-install-prefix'
a0b37d7 Document CMAKE_INSTALL_PREFIX in CMAKE_SYSTEM_PREFIX_PATH
2013-06-24 08:37:22 -04:00
Brad King b1ef36a20a Merge topic 'split-command-sources'
b9f4383 Split cmBootstrapCommands.cxx into two sources
2013-06-24 08:37:18 -04:00
Brad King 64d14d3ddd Merge topic 'vs-TargetFrameworkVersion'
cfe6300 VS: Add support for .NET target framework version
2013-06-24 08:37:14 -04:00
Kitware Robot 299f50de00 CMake Nightly Date Stamp 2013-06-24 00:01:05 -04:00
Kitware Robot c12208fd79 CMake Nightly Date Stamp 2013-06-23 00:01:04 -04:00
Kitware Robot 8573748041 CMake Nightly Date Stamp 2013-06-22 00:01:04 -04:00
Stephen Kelly 2331b57bec Add whitespace after colons in error messages. 2013-06-21 16:21:44 +02:00
David Coppa 480e924dae OpenBSD: Enable ELF parsing and editing (#14241)
OpenBSD provides ELF ABI declarations in

 #include <stdint.h>
 #include <elf_abi.h>

Teach the platform check and cmELF implementation to use these.
2013-06-21 08:27:40 -04:00
Kitware Robot 9f160c5b0a CMake Nightly Date Stamp 2013-06-21 00:01:04 -04:00
Kitware Robot 7c61c73fbc CMake Nightly Date Stamp 2013-06-20 00:01:05 -04:00
Brad King ae06f80716 cmake: Document "-E tar" support for .zip (#14225)
Through use of libarchive internally we support .zip files as well as
.tar format.  The ExternalProject module makes use of this feature.
Document support officially.
2013-06-19 10:05:44 -04:00
Nils Gladitz bb71a3a0df Add cmake_host_system_information command
Expose the internal system information API to the CMake language.  For
example, it is useful to see how much memory the system has available to
estimate an upper limit of tests that can run in parallel.
2013-06-19 08:46:37 -04:00
Kitware Robot ee59089803 CMake Nightly Date Stamp 2013-06-19 00:01:05 -04:00
Kitware Robot 381c76da07 CMake Nightly Date Stamp 2013-06-18 00:01:04 -04:00
Brad King a0b37d7e3b Document CMAKE_INSTALL_PREFIX in CMAKE_SYSTEM_PREFIX_PATH
Add documentation to both variables to indicate that the install prefix
is also searched.
2013-06-17 08:40:44 -04:00
Kitware Robot dc43f7755d CMake Nightly Date Stamp 2013-06-17 00:01:04 -04:00
Kitware Robot 30d029ddd1 CMake Nightly Date Stamp 2013-06-16 00:01:03 -04:00
Kitware Robot 19df4595e2 CMake Nightly Date Stamp 2013-06-15 00:01:03 -04:00
Brad King dea8271840 Merge topic 'doc-enable_language-scope'
b3b57e7 enable_language: Clarify documentation
2013-06-14 09:01:39 -04:00
Brad King d556631079 Merge topic 'sha2-alignment'
75994d9 cmCryptoHash: Increase alignment of HashFile buffer
2013-06-14 09:01:22 -04:00
Brad King 1f8733a0c2 Merge topic 'FixEclipseCorruptProjects'
22f7934 Eclipse: fix #14204 and #14205: no file links to directories
2013-06-14 09:01:17 -04:00
Brad King bbaae3e421 Merge topic 'minor-cleanup'
e3b7eac Style: Don't put an else after a return.
ad304a2 cmSystemTools: Fix typo in comment.
08319e0 Genex: Fix indentation in docs.
2013-06-14 09:00:26 -04:00
Brad King f247474eb6 Merge topic 'remove_extra_matches'
dc03499 Do not set CMAKE_MATCH_ variables when not neeeded
2013-06-14 09:00:11 -04:00
Brad King bc3a7b61e2 Merge topic 'rpath-on-mac'
ff01f8b OS X: Improvements for getting install name of dylib.
2013-06-14 08:59:54 -04:00
Bill Hoffman dc03499595 Do not set CMAKE_MATCH_ variables when not neeeded
Each call to AddDefinition has overhead for variable watches and such.
Avoid extra calls when not needed.

This decreases the configure time for ParaView by 10 seconds on my
machine.  Without the change about 1,000,000 set-to-empty calls were
being made.  After the change it drops to about 100,000.
2013-06-14 08:46:14 -04:00
Brad King b9f4383f69 Split cmBootstrapCommands.cxx into two sources
The single translation unit has grown too large for some compilers.
Split it into cmBootstrapCommands1.cxx and cmBootstrapCommands2.cxx.
2013-06-14 08:35:52 -04:00
Christian Maaser cfe6300a41 VS: Add support for .NET target framework version
Teach CMake to generate the TargetFrameworkVersion XML node as
documented at

 http://msdn.microsoft.com/en-us/library/vstudio/ff770576.aspx

from target property VS_DOTNET_TARGET_FRAMEWORK_VERSION.
2013-06-14 08:09:00 -04:00
Kitware Robot 3aaf04365c CMake Nightly Date Stamp 2013-06-14 00:01:04 -04:00
Brad King 75994d953e cmCryptoHash: Increase alignment of HashFile buffer
The SHA512_Update implementation accesses input data via 64-bit
integers.  This requires alignment of the input buffer on some
architectures.  Align our stack-allocated buffer for file content to
satisfy this requirement.
2013-06-13 08:40:10 -04:00
Kitware Robot 82771f1862 CMake Nightly Date Stamp 2013-06-13 00:01:02 -04:00
Brad King b3b57e7a31 enable_language: Clarify documentation
Describe explicitly the scope in which enable_language must be
invoked to handle all direct and indirect uses of a language.

While at it, re-word documentation of the OPTIONAL keyword to
avoid confusion over its partial implementation.
2013-06-12 10:58:32 -04:00
Stephen Kelly e6055284b3 Add generator expressions for version comparision. 2013-06-12 14:09:36 +02:00
Stephen Kelly 48bb48e114 De-duplicate version comparison code.
Extend the VersionCompare in cmSystemTools to handle 8 components,
and port the if command to use that.
2013-06-12 14:09:36 +02:00
Stephen Kelly ea4d7848e5 QtAutomoc: Use config-dependent compile definitions and includes.
Instead of always using the includes and defines which are not
config-specific, ensure that the config specific ones can be used.

Task-number: #13589
2013-06-12 12:53:25 +02:00
Stephen Kelly 67f6cebb1e QtAutomoc: Fix handling of list separator for compile definitions. 2013-06-12 07:21:46 +02:00
Kitware Robot 9f460fe408 CMake Nightly Date Stamp 2013-06-12 00:01:03 -04:00
Alex Neundorf 22f7934a6e Eclipse: fix #14204 and #14205: no file links to directories
If a source file name is empty, or if it is a directory,
don't create a linked resource to it.

Alex
2013-06-11 22:50:38 +02:00
Stephen Kelly 2d9ec1dadf Add compiler target compile options.
For clang, this allows passing -target <triple> to the compiler, and
for qcc, -V<arch> using toolchain files containing something like

 set(triple arm-linux-gnueabihf)
 set(CMAKE_C_COMPILER "/usr/bin/clang")
 set(CMAKE_C_COMPILER_TARGET ${triple})
 set(CMAKE_CXX_COMPILER "/usr/bin/clang++")
 set(CMAKE_CXX_COMPILER_TARGET ${triple})

or

 set(arch gcc_ntoarmv7le)
 set(CMAKE_C_COMPILER /opt/qnx650/host/linux/x86/usr/bin/qcc)
 set(CMAKE_C_COMPILER_TARGET ${arch})
 set(CMAKE_CXX_COMPILER /opt/qnx650/host/linux/x86/usr/bin/QCC)
 set(CMAKE_CXX_COMPILER_TARGET ${arch})

Both clang and qcc are inherently cross compiler( driver)s.
2013-06-11 14:41:16 +02:00
Stephen Kelly e3b7eac593 Style: Don't put an else after a return. 2013-06-11 10:50:00 +02:00
Stephen Kelly ad304a2f7d cmSystemTools: Fix typo in comment. 2013-06-11 09:52:30 +02:00
Stephen Kelly 08319e071e Genex: Fix indentation in docs. 2013-06-11 09:52:08 +02:00
Kitware Robot a2021e578c CMake Nightly Date Stamp 2013-06-11 00:01:04 -04:00
Stephen Kelly 77ff352aa7 Generate INTERFACE_COMPILE_OPTIONS on export.
This was missing from commit 80ca9c4b (Add COMPILE_OPTIONS target
property., 2013-05-16).
2013-06-10 16:50:20 +02:00
Stephen Kelly 0d8db250ce Use a preprocessor loop to manage the valid transitive properties.
Hopefully this will prevent regressions when adding further transitive
properties in the future.
2013-06-10 16:13:21 +02:00
Stephen Kelly 8a3b5bede8 Find targets in INTERFACE_COMPILE_OPTIONS when exporting for try_compile.
This was missing from commit 80ca9c4b (Add COMPILE_OPTIONS target
property., 2013-05-16).
2013-06-10 16:12:22 +02:00
Stephen Kelly 477e4136ef Add missing 'seen' check for evaluating COMPILE_OPTIONS.
Commit 089fe1c1 (Optimize genex evaluation for includes and
defines., 2013-02-01) introduced an optimization on DAG processing
to not reprocess properties on targets which have already been seen.

This was refactored slightly in commit 8dfdf1c7 (Fix the tests for
evaluating includes and defines., 2013-02-18), but was not extended
to cover COMPILE_OPTIONS in commit 80ca9c4b (Add COMPILE_OPTIONS target
property., 2013-05-16).

This omission causes the same performance regression in running
cmake on LLVM which 089fe1c1 fixed before, but this time for the
transitive evaluation of the COMPILE_OPTIONS property.
2013-06-10 15:46:51 +02:00
Kitware Robot 9ac601618e CMake Nightly Date Stamp 2013-06-10 00:01:02 -04:00
Kitware Robot adfe9b3805 CMake Nightly Date Stamp 2013-06-09 00:01:03 -04:00
Kitware Robot 63e7137af5 CMake Nightly Date Stamp 2013-06-08 00:01:03 -04:00
Stephen Kelly de4da665d3 Use --sysroot when cross compiling.
As CMAKE_ROOT_FIND_PATH can be a list, a new CMAKE_SYSROOT is
introduced, which is never a list.

The contents of this variable is passed to supporting compilers
as --sysroot. It is also accounted for when processing implicit
link directories reported by the compiler, and when generating
RPATH information.
2013-06-07 13:32:52 +02:00
Kitware Robot e7fc1c600e CMake Nightly Date Stamp 2013-06-07 00:01:04 -04:00
Brad King 482f1122ad try_compile: Add signature to allow multiple SOURCES
Extend the signature

 try_compile(RESULT_VAR <bindir> <srcfile> ...)

to allow multiple sources as

 try_compile(RESULT_VAR <bindir> SOURCES <srcfile>... ...)

Process the sources to generate a CMakeLists.txt that enables all needed
languages.

Teach the TryCompile test to try cases with two sources of the same
language and of mixed languages.  Teach RunCMake.try_compile to cover
error cases for the signature.
2013-06-06 14:35:20 -04:00
Kitware Robot bb879bcf2d CMake Nightly Date Stamp 2013-06-06 00:01:04 -04:00
Clinton Stimpson ff01f8b600 OS X: Improvements for getting install name of dylib.
In the case of a multi-arch dylib where none of the architectures
is the host architecture, otool -D returned multiple install names.
2013-06-05 21:31:11 -06:00
Brad King d3c8688ecd Merge topic 'fix-genex-HEAD-target'
5b22235 Genex: Fix the HEAD target used for evaluated expressions
2013-06-05 09:54:20 -04:00
Brad King aa025cc60a Merge topic 'xcode-framework-paths'
21a0bea Xcode: Fix framework search paths in STATIC library targets (#14191)
2013-06-05 09:39:52 -04:00
Brad King 31a0220397 Merge topic 'update-kwsys'
c91e88d Merge branch 'upstream-kwsys' into update-kwsys
6dc3dd9 KWSys 2013-06-03 (d79a792e)
2013-06-05 09:39:41 -04:00
Brad King bf57982f7b Merge topic 'doc-CMAKE_PARENT_LIST_FILE'
b62d440 Docs: Clarify CMAKE_PARENT_LIST_FILE (#14194)
2013-06-05 09:39:27 -04:00
Brad King 21b1026541 Merge topic 'suppress-unused-cli-with-value-in-cache'
273ecab CLI: Suppress the unused warning if the key value pair is cached.
2013-06-05 09:39:18 -04:00
Brad King 2cd8a6a3c6 Merge topic 'cleanups'
9efe359 Add some spaces to the INCLUDE_DIRECTORIES documentation.
db15713 Remove unused cmAddDefinitionsCommand::ParseDefinition method.
2013-06-05 09:39:12 -04:00
Brad King 93317839b0 Merge topic 'add_compile_options-command'
a984f32 Introduce add_compile_options command.
2013-06-05 09:39:05 -04:00
Brad King ff8917fdd2 Merge topic 'VISIBILITY_PRESET-property'
cd1fa53 Add a COMPILE_OPTION for a VISIBILITY_INLINES_HIDDEN target property.
0e9f4bc Introduce target property <LANG>_VISIBILITY_PRESET
2013-06-05 09:38:59 -04:00
Stephen Kelly 5b222354de Genex: Fix the HEAD target used for evaluated expressions
If the expression $<TARGET_PROPERTY:prop> appears in the content
of a target property, the target that prop is read from is
the 'head target' of the expression. In contexts such as evaluating
the content of a target property during generation, such
as INCLUDE_DIRECTORIES, the 'head target' is the one on which the
initial request was made.

If evaluating a generator expression which is not a target property
content, the target must be explicitly specified. Such contexts
include add_custom_command and file(GENERATE). The content might
then look like

 $<TARGET_PROPERTY:tgt,prop>

However, as there is no HeadTarget set, any generator expressions
evaluated as part of reading prop from tgt which do not specify
the tgt directly report an error.

Modify the logic of the TARGET_PROPERTY generator expression so
that in such contexts, the 'head target' is set to the appropriate
target which was first encountered.
2013-06-05 09:05:00 -04:00