Commit Graph

12987 Commits

Author SHA1 Message Date
David Cole 8519085803 Merge topic 'CPack-preserveTimestampInSourcePackage'
3d10f65 CPack - preserve timestamp for CPACK_INSTALLED_DIRECTORIES. fixes: #0013193
2012-05-17 14:58:20 -04:00
Kitware Robot 3e0580ba65 CMake Nightly Date Stamp 2012-05-17 00:01:03 -04:00
Peter Collingbourne b94514f020 Ninja: mark rules/build file streams failed if error occurred (#13067, #13105)
This causes cmGeneratedFileStream to delete the temporary files,
rather than overwriting the (working) existing files.
2012-05-17 00:00:16 +01:00
Peter Collingbourne d807aab28f Ninja: apply CMAKE_<LANG>_FLAGS_<TYPE> to executable targets (#13069)
Based on a patch by Zaheer Chothia!
2012-05-16 22:56:42 +01:00
Brian Helba b3b095a933 Print any evaluated 'elseif'/'else' commands in trace mode (#13220)
In trace mode ('--trace'), any 'elseif' or 'else' commands that are
evaluated as part of a conditional block will be printed.  Previously,
only the opening 'if' command of a conditional block was printed.
2012-05-16 09:07:55 -04:00
Kitware Robot e78483c08e CMake Nightly Date Stamp 2012-05-16 00:01:03 -04:00
Eric NOULARD f90223cafc Fix KWStyle warning 2012-05-15 07:54:42 +02:00
Kitware Robot 0977250ba0 CMake Nightly Date Stamp 2012-05-15 00:01:04 -04:00
Eric NOULARD 47f0dbd70b CPack add necessary check to detect/warns/error on ABSOLUTE DESTINATION
The [usually] wrong usage of absolute DESTINATION in INSTALL rules
keeps popping-up on the ML. We shall have some way to:
  1) easily detect it.
  2) forbids this for some CPack generator like NSIS
In fact it should certainly be forbidden for *any* generators
when used on Windows but we may implements that on top of the current
patch.
The patch ask the task to the generated cmake_install.cmake scripts.
Those scripts are a little bit more complicated with that but
iff there are absolute DESTINATION. This cost nothing if relative
DESTINATION are used.
Two new vars are introduced (and documented to handle that):
CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION
and
CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION
2012-05-14 23:29:42 +02:00
Alex Neundorf b71e731b9b -add docs for ${CMAKE_INSTALL_DEFAULT_COMPONENT_NAME}
Alex
2012-05-14 22:19:30 +02:00
Alex Neundorf 7ced0732e8 make default install component name configurable
Until now an unnamed component was always named "Unspecified".
Now this name is taken from the new cmake variable CMAKE_INSTALL_DEFAULT_COMPONENT_NAME,
which is initialized to "Unspecified". But it can now be set to something
project-specific, per directory

Alex
2012-05-14 22:19:12 +02:00
Jan Schaffmeister d59ba0c591 Xcode: Recognize storyboard source files (#13214) 2012-05-14 14:56:20 -04:00
Eric NOULARD 6ba055bacd CPack add easy possibility to warn about CPACK_SET_DESTDIR
CPackNSIS will only warn but sooner or later it should error out
2012-05-14 20:26:15 +02:00
Kitware Robot 75c0304a9e CMake Nightly Date Stamp 2012-05-14 00:01:03 -04:00
Alex Neundorf b6fba35411 -strip trailing whitespace
Alex
2012-05-13 17:38:31 +02:00
Kitware Robot c7dab4b936 CMake Nightly Date Stamp 2012-05-13 00:01:02 -04:00
Kitware Robot b149d1ed05 CMake Nightly Date Stamp 2012-05-12 00:01:03 -04:00
Bill Hoffman c806b23cfe CDash now supports lots of files in coverage. So, show all files.
Prior to this commit the mumps coverage only showed files that
had at least one line of coverage. Now 0% covered files are shown
as well.
2012-05-11 15:22:25 -04:00
Kitware Robot a2f5d14c73 CMake Nightly Date Stamp 2012-05-11 00:01:03 -04:00
Kitware Robot 9d9fc18ffa CMake Nightly Date Stamp 2012-05-10 00:01:03 -04:00
Nicolas Despres 92cee7626c Ninja: Add a convenient 'help' target. 2012-05-09 19:08:12 +02:00
Nicolas Despres 3bd41f2eb5 Ninja: Add a convenient 'clean' target.
It has been asked on the mailing list:
http://public.kitware.com/pipermail/cmake-developers/2012-April/003805.html
2012-05-09 19:08:12 +02:00
Eric NOULARD 3d10f65e39 CPack - preserve timestamp for CPACK_INSTALLED_DIRECTORIES. fixes: #0013193 2012-05-09 18:02:13 +02:00
Minmin Gong 0fa3d09369 VS11: Add ARM architecture generator (#13077) 2012-05-09 09:12:13 -04:00
Kitware Robot ad5c9d06c4 CMake Nightly Date Stamp 2012-05-09 00:01:04 -04:00
Bill Hoffman 761d93129f Do not try to run bullseye coverage if COVFILE env is empty. 2012-05-08 14:47:13 -04:00
David Cole e7e9f242db Merge topic 'vs-osx-framework-headers'
470f39c VS: Restore header files marked as OS X Framework content (#13196)
2012-05-08 14:33:39 -04:00
David Cole 6f07948486 Merge topic 'doc-html-index'
707afd1 Documentation: Improve HTML section index format
2012-05-08 14:33:25 -04:00
David Cole 41d3dfc1ef Merge topic 'FixMultipleResultsInFeatureSummary'
1f8f58a fix #13195: avoid multiple mentions of found packages
2012-05-08 14:33:13 -04:00
David Cole 3f781264d2 Merge topic 'fix-13121-handle-gcov47-output'
56f499d CTest: Modify reg ex so it also works with gcov 4.7 output (#13121)
2012-05-08 14:33:02 -04:00
David Cole fb337c66b8 Merge topic 'doc-NO_SONAME-typo'
1aa5216 Fix a few typos in NO_SONAME property description.
2012-05-08 14:32:43 -04:00
David Cole da0dc9edd7 Merge topic 'kwsys-no-depend-FundamentalType'
221b5b6 KWSys: Remove dependencies on FundamentalType
2012-05-08 14:32:31 -04:00
Kitware Robot 21aea010c4 CMake Nightly Date Stamp 2012-05-08 00:01:05 -04:00
Joseph Snyder 1b418f1fbf Change GT.M Coverage Parser global
The coverage global should be in the local namespace.  This means the global
will be ^ZZCOVERAGE instead of ^COVERAGE.  Change the parser to look for ^ZZCOVERAGE
instead of the old ^COVERAGE
2012-05-07 15:29:52 -04:00
Brad King 470f39cf4e VS: Restore header files marked as OS X Framework content (#13196)
Header files listed in a target's PUBLIC_HEADER or similar properties
are marked as OS X Framework content.  Refactoring performed by

 commit 11d9b211 (Add cmGeneratorTarget to represent a target during generation, 2012-03-07)
 commit 45c2f932 (Simplify cmMakefileTargetGenerator using cmGeneratorTarget, 2012-03-07)
 commit 328c0f65 (Simplify cmVisualStudio10TargetGenerator source classification, 2012-03-19)

and related commits accidentally removed such files from treatment as
normal header files by the VS generator (generators other than Makefiles
and Xcode).  Move handling of such files out of cmGeneratorTarget and
back to cmMakefileTargetGenerator.  The central cmGeneratorTarget
classification will always treat them as header or extra sources.
2012-05-07 15:28:19 -04:00
Brad King 707afd1ed0 Documentation: Improve HTML section index format
Add a newline after section index list items.  This makes the generated
HTML source more readable.
2012-05-07 08:51:57 -04:00
Kitware Robot c5a67a7fec CMake Nightly Date Stamp 2012-05-07 00:01:03 -04:00
Alex Neundorf 1f8f58a0b9 fix #13195: avoid multiple mentions of found packages
Now before adding a package to the list of found or not-found
packages, the package is remvoed from both lists before.

Alex
2012-05-06 16:32:10 +02:00
Kitware Robot b4a189fd14 CMake Nightly Date Stamp 2012-05-06 00:01:04 -04:00
Kitware Robot 98ff9dfc5a CMake Nightly Date Stamp 2012-05-05 00:01:04 -04:00
Kitware Robot c196e9ea35 CMake Nightly Date Stamp 2012-05-04 00:01:03 -04:00
David Cole 56f499dcef CTest: Modify reg ex so it also works with gcov 4.7 output (#13121) 2012-05-03 17:08:19 -04:00
Kitware Robot 9a6d7881fd CMake Nightly Date Stamp 2012-05-03 00:01:05 -04:00
Bill Hoffman 0a169e628b Remove uncovered files from cache coverage data.
Cache coverage data currently contains files with 0 coverage
on each line. This change will remove those files from the coverage
sent to CDash.
2012-05-02 17:23:01 -04:00
Bill Hoffman a7abf5e090 Add ability to specify more than one package directory or coverage directory. 2012-05-02 16:47:24 -04:00
Modestas Vainius 1aa52163ef Fix a few typos in NO_SONAME property description. 2012-05-02 15:14:05 -04:00
Brad King 221b5b6977 KWSys: Remove dependencies on FundamentalType
The hash_fun.hxx header is configured whether FundamentalType is enabled
or not and so cannot depend on it.  Run the relevant platform tests
whether or not FundamentalType is on and configure the result directly
into hash_fun.  While at it, remove the dependence of SystemInformation
on FundamentalType too since it needs only information that we now
always compute.
2012-05-02 08:46:10 -04:00
Kitware Robot 3817314e2a CMake Nightly Date Stamp 2012-05-02 00:01:04 -04:00
Bill Hoffman f5c5db0753 Fix some warnings and a bug where it went past the length of a vector.
Fix a kwstyle warning and an unused variable warning. Also fix a case
where it could crash because a vector was referenced passed its
end.
2012-05-01 17:32:23 -04:00
Bill Hoffman 7955e995ec Add support for Cache coverage.
This adds support for Cache coverage parsing. A test is added
that does a basic run of the coverage on a small bit of data.
2012-05-01 17:00:43 -04:00
Bill Hoffman a86cd33cdd Add virutal destructor to silence warning. 2012-05-01 14:36:18 -04:00
David Cole 17c65d1c44 Merge topic 'cmake-gui-thread-wait'
2c050a2 cmake-gui: Wait for configure/generate thread to complete before exiting.
2012-05-01 14:10:26 -04:00
David Cole 8df7aa54f0 Merge topic 'module-no-soname'
fdb3f87 Test NO_SONAME property (#13155)
e1409ac Support building shared libraries or modules without soname (#13155)
2012-05-01 14:09:59 -04:00
David Cole 28de11291a Merge topic 'vs10-source-paths'
d931ce9 VS10: Generate relative source paths when possible (#12570)
b2e7c7a VS11: Do not use source path conversion workaround specific to VS 10
4248132 VS10: Convert paths normally unless forced to relative
c2ba6ba VS10: Simplify vcxproj.filter file generation
4f2d9d2 VS10: Refactor custom commands to use WriteSource
2012-05-01 14:09:22 -04:00
David Cole c75f404065 Merge topic 'kwsys-environ-cleanup'
e48796b KWSys: Fix SystemTools environment memory handling (#13156)
b10c5cb CTest: Simplify environment save/restore
2012-05-01 14:09:12 -04:00
David Cole 4db78c7c01 Merge topic 'doc-html-anchors'
dfccdd6 Documentation: Fix HTML anchor ranges
2012-05-01 14:08:34 -04:00
David Cole 2d8e2daffe Merge topic 'ctest_memcheck-xml-encoding'
3da577d CTest: Escape MemCheck test output for XML (#13124)
2012-05-01 14:08:25 -04:00
David Cole d9427c9667 Merge topic 'try-compile-cleanup-dirs'
953257c try_compile: Cleanup temporary directories (#13160)
2012-05-01 14:08:03 -04:00
David Cole 58cc3d1fc4 Merge topic 'kwsys-remove-DateStamp'
5f807a6 KWSys: Remove DateStamp
2012-05-01 14:07:52 -04:00
Bill Hoffman 319eeb0247 Add test for mumps coverage. Also refactor code to prepare for cache coverage.
Add a simple test to make sure the GTM mumps coverage is working.
Also refactor the code so that cache coverage can be added.
2012-05-01 13:35:07 -04:00
Kitware Robot 94f17c696c CMake Nightly Date Stamp 2012-05-01 00:01:03 -04:00
Clinton Stimpson 2c050a2e11 cmake-gui: Wait for configure/generate thread to complete before exiting.
A prevous fix to interrupt granularity makes it so we don't have to wait very long.
2012-04-30 13:12:16 -06:00
Modestas Vainius e1409ac59b Support building shared libraries or modules without soname (#13155)
Add a boolean target property NO_SONAME which may be used to disable
soname for the specified shared library or module even if the platform
supports it.  This property should be useful for private shared
libraries or various plugins which live in private directories and have
not been designed to be found or loaded globally.

Replace references to <CMAKE_SHARED_LIBRARY_SONAME_${LANG}_FLAG> and
hard-coded -install_name flags with a conditional <SONAME_FLAG> which is
expanded to the value of the CMAKE_SHARED_LIBRARY_SONAME_${LANG}_FLAG
definition as long as soname supports is enabled for the target in
question.  Keep expanding CMAKE_SHARED_LIBRARY_SONAME_${LANG}_FLAG in
rules in case third party projects still use it.  Such projects would
not yet use NO_SONAME so the adjacent <TARGET_SONAME> will always be
expanded.  Make <TARGET_INSTALLNAME_DIR> NO_SONAME aware as well.  Since
-install_name is soname on OS X, this should not be a problem if this
variable is expanded only if soname is enabled.

The Ninja generator performs rule variable substitution only once
globally per rule to put its own placeholders.  Final substitution is
performed by ninja at build time.  Therefore we cannot conditionally
replace the soname placeholders on a per-target basis.  Rather than
omitting $SONAME from rules.ninja, simply do not write its contents for
targets which have NO_SONAME.  Since 3 variables are affected by
NO_SONAME ($SONAME, $SONAME_FLAG, $INSTALLNAME_DIR), set them only if
soname is enabled.
2012-04-30 11:50:27 -04:00
Kitware Robot 711f3ccb04 CMake Nightly Date Stamp 2012-04-30 00:01:02 -04:00
Kitware Robot cfb909afb8 CMake Nightly Date Stamp 2012-04-29 00:01:03 -04:00
Kitware Robot 262a259e77 CMake Nightly Date Stamp 2012-04-28 00:01:03 -04:00
Brad King d931ce9fe0 VS10: Generate relative source paths when possible (#12570)
Since commit ed0075bd (Use relative paths for custom command inputs,
2011-06-22) CMake generates full paths to source files in VS 10 project
files to avoid trouble with deep source/build tree paths.  However, the VS
10 IDE will not populate the source file property dialog for a file
referenced by full path.  Instead use a relative path when possible.  When
not possible produce a detailed warning explaining the problem and
suggesting use of shorter directory paths.
2012-04-27 14:14:36 -04:00
Brad King b2e7c7aef0 VS11: Do not use source path conversion workaround specific to VS 10
CMake <= 2.8.4 generated VS 10 project files with a relative path to
source files.  Then commit ed0075bd (Use relative paths for custom command
inputs, 2011-06-22) switched to using relative paths only for source files
holding custom commands and full paths for other sources.  This behavior
was inhereted by the VS 11 generator but is not needed so use the
workaround only for exactly VS 10.  Explain the behavior in comments.
2012-04-27 13:17:16 -04:00
Brad King 4248132e59 VS10: Convert paths normally unless forced to relative
Most CMake generators produce relative paths within the build tree and
full paths to files outside the build tree.  Make VS 10 and VS 11
project files consistent with this approach except for paths forced to
be relative to work around a VS 10 bug.
2012-04-27 11:53:40 -04:00
Brad King c2ba6ba4fc VS10: Simplify vcxproj.filter file generation
Remove the duplicate source file classification logic used to generate
the filter files.  Instead record during the main vcxproj file
generation the source files generated for each tool.  Also record
whether or not each source file is converted to a relative path.  Use
the recorded result during filter generation to ensure consistency
between the project file and filter file.
2012-04-27 10:00:00 -04:00
Brad King 4f2d9d2da5 VS10: Refactor custom commands to use WriteSource
All other source file elements are already written through WriteSource.
Refactor custom command source element generation into WriteSource too.
2012-04-27 09:15:03 -04:00
Brad King e48796b26b KWSys: Fix SystemTools environment memory handling (#13156)
The SystemTools::PutEnv function tries to provide the "putenv" API
without leaking memory.  However, the kwsysDeletingCharVector singleton
frees memory that may still be referenced by the environment table,
having been placed there by putenv.  If any static destruction or
processing by an external tool happens after the singleton is destroyed
and accesses the environment it will read invalid memory.

Replace use of putenv with setenv/unsetenv when available.  The latter
manage internal copies of the values passed instead of referencing the
original memory.  When setenv/unsetenv are not available use putenv with
a singleton that removes its values from the environment before freeing
their memory.  This requires an "unputenv" implementation.  On at least
some platforms it must be written in terms of "putenv" because other
APIs are not available and direct modification of the "environ" global
is not safe (e.g. on Windows there is interaction with "wenviron").
Fortunately either putenv("A=") or putenv("A") will remove "A" from the
environment on these platforms.  On other platforms fall back to direct
manipulation of "environ".

Also add UnPutEnv to the API and add a test for the behavior of both.
2012-04-27 08:13:52 -04:00
Kitware Robot e6d28c7e6f CMake Nightly Date Stamp 2012-04-27 00:01:05 -04:00
Brad King dfccdd65fb Documentation: Fix HTML anchor ranges
Generate anchors of the form

  <a name="..."></a>

instead of

  <a name="..."/>

to ensure browsers know that the anchor contains no text and do not try
to guess an end of the range.  Also make the "section_Index" and item
label anchors empty instead of containing the section header or label
text.  This ensures that the text associated with target anchors is not
rendered as if it were a hyperlink.
2012-04-26 16:29:56 -04:00
Brad King 3da577dec0 CTest: Escape MemCheck test output for XML (#13124)
Any output that goes through CleanTestOutput must be printed through
cmXMLSafe.
2012-04-26 15:49:29 -04:00
Bill Hoffman 72210c2662 Fix line length. 2012-04-26 08:33:27 -04:00
Bill Hoffman dd07161c51 Fix warning about char* instead of const char*. 2012-04-26 08:30:13 -04:00
Brad King 953257ca61 try_compile: Cleanup temporary directories (#13160)
Since commit 4fbdce2b (try_compile: Use random executable file name,
2012-02-13) a different <target>.dir is used for each try-compile.
Cleanup the directories as well as their content to avoid accumulating
leftover temporary directories.
2012-04-26 08:20:58 -04:00
Kitware Robot a7d0fb1470 CMake Nightly Date Stamp 2012-04-26 07:35:13 -04:00
Bill Hoffman e6412e084e Add support to ctest for GTM mumps coverage. 2012-04-25 17:04:28 -04:00
David Cole 7e4c11e0fc Merge topic 'compile-XL-v6'
b3c7788 Workaround IBM XL v6 streams seekg bug (#13149)
09a91c6 libarchive: Avoid 'inline' keyword on XL C v6 (#13148)
a8995eb libarchive: Avoid trailing , in enum for XL v6 (#13148)
2012-04-25 14:04:52 -04:00
David Cole 91f83347d3 Merge topic 'enhance-include_external_msproject'
b803410 VS: Fix line-too-long style errors
8787f94 Merge branch 'list-empty-error' into enhance-include_external_msproject
4a30258 include_external_msproject: Test TYPE, GUID, PLATFORM options (#13120)
f3191f5 Merge branch 'test-RunCMake-check' into enhance-include_external_msproject
5913903 include_external_msproject: Add TYPE, GUID, PLATFORM options (#13120)
2012-04-25 14:04:27 -04:00
David Cole c4aa5386fb Merge topic 'list-empty-error'
05604eb list: Handle errors on empty lists more gracefully (#13138)
2012-04-25 14:03:53 -04:00
David Cole f1ecabd98a Merge topic 'doc-find_package-variables'
5ed93db find_package: Fix components signature documentation (#13142)
6c12e82 find_package: Document <package>_FIND_* variables (#13142)
2012-04-25 14:03:23 -04:00
David Cole 728cbd19e3 Merge topic 'vs10-rule-files'
72333a4 VS10: Avoid creating .rule files next to outputs (#13141)
369e346 Factor out custom command .rule file path generation
f9b758e Cleanup custom command .rule file internal handling
2012-04-25 14:03:01 -04:00
David Cole 21be162f9b Merge topic 'CPackDeb-fixFakerootOnControl'
abc9b32 Use fakeroot for control.tar.gz as well
2012-04-25 14:02:46 -04:00
David Cole ee35d8a0ea Merge topic 'ctest_coverage-locale'
3247d63 ctest_coverage: Save/restore LC_ALL around gcov (#13136)
2012-04-25 14:02:09 -04:00
David Cole 81e696c99d Merge topic 'OBJECTLibrariesInCodeBlocks'
38d4c1e CodeBlocks: improve support for OBJECT libraries
d2ed3c7 -fix #13081: support OBJECT libraries in CodeBlocks/QtCreator projects
2012-04-25 14:01:34 -04:00
David Cole 745067bd7e Merge topic 'doc-target_link_libraries-repeat'
ebf39cd Document behavior of multiple target_link_libraries calls (#13113)
2012-04-25 14:01:17 -04:00
David Cole 04f5dd8ad4 Merge topic 'ninja-patches'
c9747f3 Ninja: CMAKE_USE_NINJA is the name of the macro
2a081a2 Ninja: no additional variable needed to enable ninja
b8c3e8c Ninja: enable Ninja for CodeBlocks
11bd9b5 Ninja: remove GCC -Wshadow warning
f93e818 Ninja: add option to enable ninja where it is not enabled by default
73426ac Ninja: no 16:9 screens for the cmake team ;)
8217c26 Ninja: ensure output directories exist
2012-04-25 14:00:59 -04:00
David Cole fd1788294d Merge topic 'mac_environ'
a90d478 [OSX] Fixed undefined symbol when linking CMakeLib into shared library
2012-04-25 14:00:22 -04:00
Brad King 5f807a62a5 KWSys: Remove DateStamp
KWSys is no longer shared in projects via a server-side directory
symlink in CVS.  An automated nightly date stamp commit can no longer be
shared by multiple projects directly.  It needs a per-project replay
robot so the nightly commits end up needing N+1 robots instead of N.
Remove the DateStamp feature because it is no longer useful or
maintained by nightly commits.
2012-04-25 11:40:24 -04:00
Kitware Robot 5d15430fb9 CMake Nightly Date Stamp 2012-04-25 00:01:03 -04:00
Brad King b10c5cbb87 CTest: Simplify environment save/restore
Replace use of AppendEnv/RestoreEnv pairs with instances of
SaveRestoreEnvironment.  Simplify the signature of AppendEnv and use it
in place of similar loops elsewhere.  Move the RestoreEnv implementation
inside the SaveRestoreEnvironment destructor which is the only place
left that calls it.
2012-04-24 16:56:14 -04:00
Kitware Robot 3d28c5dc47 CMake Nightly Date Stamp 2012-04-24 00:01:03 -04:00
Kitware Robot 93e6069553 CMake Nightly Date Stamp 2012-04-23 00:01:02 -04:00
Kitware Robot 3a50392601 CMake Nightly Date Stamp 2012-04-22 00:01:04 -04:00
Kitware Robot 2809379f15 CMake Nightly Date Stamp 2012-04-21 09:43:50 -04:00
Brad King 0c7029c642 Refactor CMake version handling
Move the CMake version number components out of "CMakeLists.txt" into
dedicated file "Source/CMakeVersion.cmake".  Set the TWEAK level to the
date explicitly.  Add a "Source/CMakeVersion.bash" script to update the
date, thus replacing KWSys DateStamp for CMake.  Teach the bootstrap
script to extract the version components from their new location.
2012-04-20 11:25:55 -04:00
KWSys Robot 20ba4fe1bf KWSys Nightly Date Stamp 2012-04-20 09:37:16 -04:00
Jim Hague b3c77889e4 Workaround IBM XL v6 streams seekg bug (#13149)
It seems that file.seekg(0) will, in some circumstances, cause the next
file.getline() to omit the first character it reads.  Workaround the
bug by seeking from ios::beg explicitly.
2012-04-19 14:27:43 -04:00
Brad King b8034104c1 VS: Fix line-too-long style errors
Commit 59139031 (include_external_msproject: Add TYPE, GUID, PLATFORM
options, 2012-04-16) introduced some long lines.  Wrap them.
2012-04-19 10:07:49 -04:00
Brad King 5ed93db4cf find_package: Fix components signature documentation (#13142)
Update the signature notation to show that "REQUIRED COMPONENTS ..." is
allowed and that REQUIRED is an option on its own.
2012-04-19 09:41:17 -04:00
Brad King 8787f946b7 Merge branch 'list-empty-error' into enhance-include_external_msproject
Resolve conflict in Tests/RunCMake/CMakeLists.txt by adding both tests.
2012-04-19 09:33:29 -04:00
KWSys Robot 168f38ee5f KWSys Nightly Date Stamp 2012-04-19 00:05:04 -04:00
Brad King 72333a4648 VS10: Avoid creating .rule files next to outputs (#13141)
Hide custom command .rule files inside the CMakeFiles directory.  Ensure
a short, deterministic, and unique name by using a hash of the directory
path containing the output file.  Preserve the file name so the entry in
the IDE is human-readable.  Clarify the comment that explains why the
rule file must be created on disk.
2012-04-18 15:54:35 -04:00
Brad King 369e3464be Factor out custom command .rule file path generation
Add cmGlobalGenerator::GenerateRuleFile to compute a generator-specific
rule file location.  This will allow specific generators to override the
location of .rule files without changing the behavior of other
generators.
2012-04-18 15:49:38 -04:00
Brad King f9b758e91a Cleanup custom command .rule file internal handling
Teach cmMakefile::AddCustomCommandToOutput to return the cmSourceFile
instance to which the custom command is attached.  Use the return value
instead of separately adding a .rule extension and searching for the
source.  Mark CMake-generated .rule files explicitly with a property
instead of trusting the file extension.
2012-04-18 15:48:50 -04:00
Brad King 6c12e820b8 find_package: Document <package>_FIND_* variables (#13142)
When loading a find module or package config file the find_package
command defines several variables to provide information about the
caller's request.  Previously this was documented only in the
Modules/readme.txt file which is not distributed.  Document the
behavior explicitly in the main find_package documentation.
2012-04-18 09:17:35 -04:00
KWSys Robot 32e0b1975d KWSys Nightly Date Stamp 2012-04-18 00:05:05 -04:00
Brad King 05604eb9cb list: Handle errors on empty lists more gracefully (#13138)
Since commit ed1ea24c (Fix INSERT to allow inserting to empty list,
2006-05-15) the list command allows insertion into an empty list at
index 0.  Fix rejection of insertion at non-zero (negative) indices to
present an error message instead of crashing.

While at it, fix the error message of the GET and REMOVE_AT operations
when the list is empty to not present a bogus allowed range.

Add a "RunCMake.list" test to cover failure cases on empty lists.
2012-04-17 11:07:07 -04:00
Eric NOULARD abc9b32375 Use fakeroot for control.tar.gz as well 2012-04-17 09:22:07 +02:00
KWSys Robot 233b5cbaf7 KWSys Nightly Date Stamp 2012-04-17 00:05:04 -04:00
Leonid Yurchenko 59139031a1 include_external_msproject: Add TYPE, GUID, PLATFORM options (#13120)
These allow one to reference more external VS project file variations.
2012-04-16 10:17:03 -04:00
Brad King 3247d63abb ctest_coverage: Save/restore LC_ALL around gcov (#13136)
Commit ffbe61bb (make sure english is used for output of gcov, 2008-05-10)
taught ctest_coverage to set LC_ALL=POSIX to get English output from gcov.
Use the more portable value LC_ALL=C and restore the original value when
finished.
2012-04-16 08:48:16 -04:00
KWSys Robot 31e7fadbb3 KWSys Nightly Date Stamp 2012-04-16 00:05:05 -04:00
KWSys Robot 38ebdf0c33 KWSys Nightly Date Stamp 2012-04-15 00:05:05 -04:00
KWSys Robot b4cb977f76 KWSys Nightly Date Stamp 2012-04-14 00:05:12 -04:00
KWSys Robot ad3d2b450f KWSys Nightly Date Stamp 2012-04-13 00:05:03 -04:00
KWSys Robot 89a67804bf KWSys Nightly Date Stamp 2012-04-12 00:05:05 -04:00
KWSys Robot 621c0893b8 KWSys Nightly Date Stamp 2012-04-11 00:05:04 -04:00
KWSys Robot 797653b8a7 KWSys Nightly Date Stamp 2012-04-10 00:05:05 -04:00
Alex Neundorf 38d4c1ed05 CodeBlocks: improve support for OBJECT libraries
This commit creates a dummy text file for each OBJECT library for
the CodeBlocks generator, so the generated project file can reference
a unique file for each target. Most probably these files are unused.

Alex
2012-04-09 14:53:47 +02:00
Brad King ebf39cd306 Document behavior of multiple target_link_libraries calls (#13113)
State explicitly that multiple calls append (rather than replace).
2012-04-09 08:53:32 -04:00
KWSys Robot dcecea3953 KWSys Nightly Date Stamp 2012-04-09 00:05:08 -04:00
Peter Kuemmel c9747f34ce Ninja: CMAKE_USE_NINJA is the name of the macro 2012-04-08 14:45:05 +02:00
Peter Kuemmel 2a081a2b3a Ninja: no additional variable needed to enable ninja 2012-04-08 11:15:17 +02:00
KWSys Robot a00aa8ec8c KWSys Nightly Date Stamp 2012-04-08 00:05:09 -04:00
Peter Kuemmel b8c3e8c1f1 Ninja: enable Ninja for CodeBlocks 2012-04-07 21:54:57 +02:00
Peter Kuemmel 11bd9b5588 Ninja: remove GCC -Wshadow warning 2012-04-07 21:41:41 +02:00
KWSys Robot bad16ab075 KWSys Nightly Date Stamp 2012-04-07 00:05:06 -04:00
Peter Kuemmel f93e81858b Ninja: add option to enable ninja where it is not enabled by default 2012-04-06 23:35:50 +02:00
Peter Kuemmel 73426ac774 Ninja: no 16:9 screens for the cmake team ;) 2012-04-06 21:07:32 +02:00
Peter Kuemmel 8217c26813 Ninja: ensure output directories exist 2012-04-06 19:31:18 +02:00
KWSys Robot 15f238fd6e KWSys Nightly Date Stamp 2012-04-06 00:05:06 -04:00
KWSys Robot 3f29f755c7 KWSys Nightly Date Stamp 2012-04-05 00:05:07 -04:00
KWSys Robot d19008cd54 KWSys Nightly Date Stamp 2012-04-04 00:05:06 -04:00
David Cole 5e9c7731e1 Merge topic 'fix-13082-use-config-0'
0579fa0 Xcode: Pay attention to custom configuration types (#13082)
2012-04-03 15:59:56 -04:00
David Cole 046f0f869e Merge topic 'ninja-generated-def'
3fd0dde Merge branch 'test-generated-def' into ninja-generated-def
d2c764a Ninja: Fix module .def file path conversion
2012-04-03 15:59:48 -04:00
David Cole 3febff7958 Merge topic 'clarify-suffix-docs'
fa08375 CMake: Clarify SUFFIX target property documentation.
2012-04-03 15:59:28 -04:00
David Cole f1b48c14fb Merge topic 'OBJECTLibrariesInEclipse'
f93d03d fix #13054: support OBJECT libraries in Eclipse
2012-04-03 15:59:19 -04:00
David Cole 57e9f97b70 Merge topic 'doc-improvements'
32c3be6 FIND_LIBRARY: document FIND_LIBRARY_USE_LIB64_PATHS
edd8996 FILE: mention that TO_CMAKE_PATH also handles list delimiters
2012-04-03 15:59:10 -04:00
David Cole b450b6dcc7 Merge topic 'include-unistd-on-mac'
8a70495 automoc: include <unistd.h> on Apple to get pathconf
2012-04-03 15:58:53 -04:00
David Cole 7ecf76a19b Merge topic 'fix-source-classification'
01e979a VS: Add CMakeLists.txt re-run rules at start of generation
9a2c60e Classify known header file extensions as headers
1c48992 Always compile sources with known language
2012-04-03 15:58:42 -04:00
KWSys Robot 9ad3fa7e85 KWSys Nightly Date Stamp 2012-04-03 00:05:07 -04:00
David Cole 0579fa045c Xcode: Pay attention to custom configuration types (#13082)
Previously, we were setting the default configuration for a generated
Xcode project to the hard-coded string "Debug" even in cases where users
customized their configuration types such that the list did not contain
"Debug". Now, we use the first string listed in CMAKE_CONFIGURATION_TYPES
as the default config for generated Xcode projects.
2012-04-02 15:50:37 -04:00
Brad King d2c764ad8d Ninja: Fix module .def file path conversion
Refactoring in commit a2514f15 (Simplify cmNinjaTargetGenerator using
cmGeneratorTarget, 2012-03-13) accidentally removed mapping of .def file
paths through ConvertToNinjaPath (via GetSourceFilePath).  Take the
ModuleDefinitionFile value from cmGeneratorTarget and map it correctly
through ConvertToNinjaPath.

In addition to generating cleaner paths in the ninja build files this
correctly links up references to a generated .def file with the custom
command output that produces it.
2012-04-02 10:58:56 -04:00
David Cole fa083753f1 CMake: Clarify SUFFIX target property documentation.
Make it clear that the property applies to libs, modules
and exes, not just libs.
2012-04-02 10:00:27 -04:00
KWSys Robot 0454057f8a KWSys Nightly Date Stamp 2012-04-02 00:05:06 -04:00
KWSys Robot 32daddf950 KWSys Nightly Date Stamp 2012-04-01 00:05:07 -04:00
Alex Neundorf d2ed3c7dee -fix #13081: support OBJECT libraries in CodeBlocks/QtCreator projects
Alex
2012-03-31 16:01:37 +02:00
KWSys Robot 41d1a73e5b KWSys Nightly Date Stamp 2012-03-31 00:05:07 -04:00
Alex Neundorf f93d03df43 fix #13054: support OBJECT libraries in Eclipse
Alex
2012-03-30 21:59:14 +02:00
KWSys Robot 7d99247454 KWSys Nightly Date Stamp 2012-03-30 00:05:06 -04:00
Rolf Eike Beer 32c3be611c FIND_LIBRARY: document FIND_LIBRARY_USE_LIB64_PATHS 2012-03-30 00:41:52 +02:00
Rolf Eike Beer edd8996fb4 FILE: mention that TO_CMAKE_PATH also handles list delimiters 2012-03-30 00:41:48 +02:00
KWSys Robot 43fa86b60f KWSys Nightly Date Stamp 2012-03-29 00:05:09 -04:00
Sean McBride 8a704955e1 automoc: include <unistd.h> on Apple to get pathconf 2012-03-28 15:07:00 -04:00
Brad King 01e979acef VS: Add CMakeLists.txt re-run rules at start of generation
Since commit 328c0f65 (Simplify cmVisualStudio10TargetGenerator source
classification, 2012-03-19) the VS 10 generator uses the
cmGeneratorTarget source classification instead of directly getting the
list of source files from the target.  This accidentally dropped the
CMakeLists.txt files from generated projects because they are added too
late for cmGeneratorTarget.

All generator-specific source files must be added to targets prior to
cmGeneratorTarget construction.  Refactor addition of the CMakeLists.txt
files with CMake re-run custom commands to take place before normal
generation begins, and therefore early enough to be included in the
cmGeneratorTarget classification.
2012-03-28 14:07:51 -04:00
Brad King 9a2c60eb83 Classify known header file extensions as headers
Commit 328c0f65 (Simplify cmVisualStudio10TargetGenerator source
classification, 2012-03-19) introduced the first use of source
classification from cmGeneratorTarget (which originated as Makefile
generator logic) in a Visual Studio generator for handling of header
files.  Fix classification of header files to match known header
extensions instead of only the HEADER_FILE_ONLY property.  Make it
consistent with the "Header Files" source group.
2012-03-28 08:59:14 -04:00
Brad King 1c489923d5 Always compile sources with known language
Refactoring by commit 11d9b211 (Add cmGeneratorTarget to represent a
target during generation, 2012-03-07) and commit 45c2f932 (Simplify
cmMakefileTargetGenerator using cmGeneratorTarget, 2012-03-07) preserved
behavior introduced by commit 7740ccd1 (some cleanup of the makefile
generator, 2006-02-14) that favored the IgnoreFile extension test over
the availability of a known compilation language associated with a
source file.  If a source is not marked as HEADER_FILE_ONLY and has a
known language extension or an explicit LANGUAGE property it should be
treated as that language.  The LANGUAGE source file property
documentation says so.
2012-03-28 08:58:38 -04:00
KWSys Robot 3eb3d5f306 KWSys Nightly Date Stamp 2012-03-28 00:05:06 -04:00
David Cole a3b7caaf5f Merge topic 'AutomocProperCMakeEscaping_13018'
9b32475 automoc: add define to test which caused bug #13018
2066511 automoc: fix #13018, proper cmake escaping to avoid false rebuilds
c652812 make cmLocalGenerator::EscapeForCMake() static
2012-03-27 15:56:31 -04:00
David Cole ef309e94cb Merge topic 'ninja-generator'
6b5614f Ninja: Substitute <OBJECT> and <CMAKE_C_COMPILER> in depfile flags
2012-03-27 15:56:13 -04:00
KWSys Robot 77ec098b44 KWSys Nightly Date Stamp 2012-03-27 00:05:07 -04:00
Alex Neundorf 2066511ca9 automoc: fix #13018, proper cmake escaping to avoid false rebuilds
The variables stored in the AutomocInfo.cmake file were not properly
escaped, so when reading them back they could turn into lists, if they
contained double quotes initially.
This patch fixes this by using cmLocalGenerator::EscapeForCMake() to
escape the variables properly.

Alex
2012-03-26 21:45:27 +02:00
Alex Neundorf c652812af7 make cmLocalGenerator::EscapeForCMake() static
This way it can be used also if there is no cmLocalGenerator instance around

Alex
2012-03-26 21:45:07 +02:00
KWSys Robot 58db6ac299 KWSys Nightly Date Stamp 2012-03-26 00:05:06 -04:00
Peter Collingbourne 6b5614f164 Ninja: Substitute <OBJECT> and <CMAKE_C_COMPILER> in depfile flags
Patch by Amine Khaldi!

Also, start using the -MT flag to set a target name for depfiles.
This works around a bug observed in distcc, as explained in the
comment.  Based on a patch by Alexander Usov.
2012-03-26 04:46:12 +01:00
KWSys Robot 94c1dcffd6 KWSys Nightly Date Stamp 2012-03-25 00:05:13 -04:00
KWSys Robot c160f63490 KWSys Nightly Date Stamp 2012-03-24 00:05:08 -04:00
KWSys Robot e38e6bdbd3 KWSys Nightly Date Stamp 2012-03-23 00:05:05 -04:00
KWSys Robot 1df40fa188 KWSys Nightly Date Stamp 2012-03-22 00:05:05 -04:00
David Cole a72893da36 Merge topic 'vs10-object-items'
b291d9e VS10: Fix external objects generated outside target (#13047)
328c0f6 Simplify cmVisualStudio10TargetGenerator source classification
2012-03-21 13:26:57 -04:00
David Cole 349ea3f6e6 Merge topic 'ImprovedCOMPONENTSSupportInFindPackage2'
6d100f9 find_package: Test rejection of required+optional components
d81d83c add macro check_required_components() to configure_package_config_file()
b15c0b4 FPHSA(): add HANDLE_COMPONENTS option
34108cd find_package: add documentation for OPTIONAL_COMPONENTS
cdabde8 FPHSA(): add missing "]" to documentation
f2e0a18 find_package: add OPTIONAL_COMPONENTS keyword
2012-03-21 13:26:46 -04:00
KWSys Robot 45b27021e5 KWSys Nightly Date Stamp 2012-03-21 00:05:05 -04:00
David Cole d69c2c5825 Merge topic 'ninja-generator'
c337c7e Ninja: Fix <OBJECT_DIR> substitution
2012-03-20 09:34:56 -04:00
David Cole 31c0bc0219 Merge topic 'object-library'
93d5509 Merge branch 'ninja-object-library' into object-library
821037c Merge branch 'xcode-object-library' into object-library
eb24c99 Merge branch 'object-library' into xcode-object-library
63d1be8 Xcode: Honor $<TARGET_OBJECTS:...> source expressions
020ba38 Merge branch 'object-library' into xcode-object-library
e8ea615 Build object library targets in Xcode
8045e17 Pre-compute object file names before Xcode generation
247a132 Allow txt files as ExtraSources in object library targets
b063599 Add a default source group for object files.
be01f3b Xcode: Re-factor some existing methods into "FromPath" variants
2693dbe Merge branch 'object-library' into ninja-object-library
51997cb Ninja: Honor $<TARGET_OBJECTS:...> source expressions
23ec258 Merge branch 'object-library' into ninja-object-library
61124de Build object library targets in Ninja
f5b06cd Pre-compute object file names before Ninja generation
a2514f1 Simplify cmNinjaTargetGenerator using cmGeneratorTarget
...
2012-03-20 09:34:35 -04:00
David Cole b06f7c077b Merge topic 'fix-docs-typos'
5b8983e Fix some typos in the docs comments.
2012-03-20 09:34:25 -04:00
Brad King b291d9e756 VS10: Fix external objects generated outside target (#13047)
Commit 9a6ff950 (Fix for bug where VS2010 did not use .obj files,
2011-04-01) assumed that if an external object is GENERATED that it is
the output of a custom command in the current target.  If it is
generated by another target then VS will not automatically include the
external object in the current target.  This bug was preserved by the
refactoring in the parent commit.

Instead use <None> for external objects generated by a custom command in
the current target and <Object> for all other external objects.  Update
the ExternalOBJ test to cover this case.
2012-03-20 09:01:02 -04:00
KWSys Robot f7533740e9 KWSys Nightly Date Stamp 2012-03-20 00:05:07 -04:00
Stephen Kelly 5b8983ee01 Fix some typos in the docs comments. 2012-03-19 23:05:21 +01:00
Brad King 328c0f65c2 Simplify cmVisualStudio10TargetGenerator source classification
Combine WriteCLSources and WriteObjSources into a single method.  Use
the cmGeneratorTarget source classification to simplify tool selection
for each source file.  Extend the classification to handle .idl files.
2012-03-19 17:13:41 -04:00
Brad King f2b44c64fc Merge topic 'find_package_set_FOUND_VariableInConfigFile'
0cf8447 find_package: additional test for checking the error message
56ae3f9 find_package: add test for setting Foo_FOUND to FALSE in a Config file
16c0c73 find_package: allow <pkg>Config.cmake to set <pkg>_FOUND to FALSE
2012-03-19 14:42:03 -04:00
Brad King 0e339f7054 Merge topic 'CPack-fixCPACK_MONOLITHIC_INSTALL-handling'
805c1b2 Handle CPACK_MONOLITHIC_INSTALL in some rare use cases.
2012-03-19 14:42:00 -04:00
Brad King 1df15c68d5 Merge topic 'CPack-fixSTGZpermission-bug13046'
4576f40 CPack STGZ put execute permission on all packages files (component case)
2012-03-19 14:41:56 -04:00
Brad King 36a85b4cd5 Merge topic 'write-cache-atomically'
9eb8e4b Write CMakeCache.txt atomically (#13040)
2012-03-19 14:41:51 -04:00
Brad King bfc8d137c5 Merge topic 'fix-12621-xcode43'
0f4dfa6 CPack: Use real path to PackageMaker to find its version file (#12621)
4693cf8 Xcode: Detect new default locations of Xcode 4.3 bits and pieces (#12621)
2012-03-19 14:41:43 -04:00
Brad King 93d5509b5b Merge branch 'ninja-object-library' into object-library
* ninja-object-library: (37 commits)
  Ninja: Honor $<TARGET_OBJECTS:...> source expressions
  Build object library targets in Ninja
  Pre-compute object file names before Ninja generation
  Simplify cmNinjaTargetGenerator using cmGeneratorTarget
  Ninja: Avoid using 'this' in member initializers
  Ninja: Fix for PDB files with spaces in the path.
  Ninja: Constify use of cmCustomCommand
  Ninja: add /DEF: flag to linker call
  Ninja: Add a cache option CMAKE_ENABLE_NINJA to enable the ninja generator.
  Ninja: Add friend struct so it can access the private ConvertToNinjaPath.
  Ninja: add .def file support
  Ninja: ensure the output dir exists at compile time
  Ninja: Remove an unnecessary variable
  Ninja: Use cmSystemTools::ExpandListArgument to split compile/link commands
  Ninja: Add a missed license header
  Ninja: CMake: Adapt Ninja generator for per-target include dirs
  Ninja: windows msvc: create for each target a .pdb file
  Ninja: Import library support for Windows
  Ninja: mark the Windows specific hacks with a comment only
  Ninja: disable unfinished Windows ninja support
  ...
2012-03-19 13:11:27 -04:00
Brad King eb24c99c4d Merge branch 'object-library' into xcode-object-library 2012-03-19 11:53:41 -04:00
David Cole 63d1be8b00 Xcode: Honor $<TARGET_OBJECTS:...> source expressions
Add objects from object libraries referenced using this syntax to the
set of objects linked in a target.
2012-03-19 11:53:29 -04:00
Brad King 020ba38775 Merge branch 'object-library' into xcode-object-library 2012-03-19 11:53:24 -04:00
David Cole e8ea615874 Build object library targets in Xcode
Treat OBJECT libraries as STATIC libraries. The Xcode project file
format provides no way to avoid running the libtool so hide the
resulting .a away next to the object files as it should never be
referenced.  The object files will be left behind for reference by other
targets later.
2012-03-19 11:53:04 -04:00
David Cole 8045e17119 Pre-compute object file names before Xcode generation 2012-03-19 11:52:40 -04:00
Alex Neundorf 34108cd3b3 find_package: add documentation for OPTIONAL_COMPONENTS
This patch adds documentation for OPTIONAL_COMPONENTS to cmFindPackage.cxx,
and also extends Modules/readme.txt significantly with regard to how
components should be handled.

Alex
2012-03-19 10:53:36 -04:00
Alex Neundorf f2e0a18761 find_package: add OPTIONAL_COMPONENTS keyword
Add an OPTIONAL_COMPONENTS keyword to find_package() so we can have a
clear distinction between required and optional components.  Don't allow
a component to be both required and optional.

Alex
2012-03-19 10:53:36 -04:00
Peter Kuemmel c337c7e205 Ninja: Fix <OBJECT_DIR> substitution
Don't forget the subdirectories.
2012-03-19 10:09:40 -04:00
Brad King 572994bd9f Merge topic 'ninja-generator'
8485208 Ninja: shell escape $(CMAKE_SOURCE_DIR) and $(CMAKE_BINARY_DIR)
df84767 Ninja: add support for OBJECT_OUTPUTS, fix PrecompiledHeader test case
48eb7fc Ninja: Avoid using 'this' in member initializers
bba37dd Ninja: Fix for PDB files with spaces in the path.
ac800f4 Ninja: Constify use of cmCustomCommand
9a0d5a8 Ninja: add /DEF: flag to linker call
d40eebd Ninja: Add a cache option CMAKE_ENABLE_NINJA to enable the ninja generator.
8c63433 Ninja: Add friend struct so it can access the private ConvertToNinjaPath.
dbe3dce Ninja: add .def file support
f1bb08f Ninja: ensure the output dir exists at compile time
7a6b5f4 Ninja: Remove an unnecessary variable
80ff210 Ninja: Use cmSystemTools::ExpandListArgument to split compile/link commands
d2731a3 Ninja: Add a missed license header
eabc9b0 Ninja: CMake: Adapt Ninja generator for per-target include dirs
bada88e Merge branch 'target-include-directories' into ninja-generator
54bd175 Ninja: windows msvc: create for each target a .pdb file
...
2012-03-19 09:29:06 -04:00
KWSys Robot 9987d9522b KWSys Nightly Date Stamp 2012-03-19 00:05:07 -04:00
Eric NOULARD 805c1b21d6 Handle CPACK_MONOLITHIC_INSTALL in some rare use cases.
For example, when CPACK_<GEN>_COMPONENT_INSTALL and
CPACK_MONOLITHIC_INSTALL are both set. Previously, this
combination of variable settings produced an error without
any explanation. Now, in this case CPACK_MONOLITHIC_INSTALL wins
without trouble.
This is useful for when e.g. CPACK_ARCHIVE_COMPONENT_INSTALL is
globally on and one wants MONOLITHIC install for STGZ (but not
other generators). The same behavior may be obtained by re-setting
CPACK_ARCHIVE_COMPONENT_INSTALL to 0 but in any case the
'both set' case should have been handled without error.
2012-03-18 20:21:35 +01:00
Eric NOULARD 4576f40ee0 CPack STGZ put execute permission on all packages files (component case) 2012-03-18 17:52:56 +01:00
KWSys Robot 1bfe81e01e KWSys Nightly Date Stamp 2012-03-18 00:05:05 -04:00
Peter Collingbourne 848520859a Ninja: shell escape $(CMAKE_SOURCE_DIR) and $(CMAKE_BINARY_DIR) 2012-03-17 23:16:40 +00:00
Peter Collingbourne df847671b4 Ninja: add support for OBJECT_OUTPUTS, fix PrecompiledHeader test case 2012-03-17 23:16:40 +00:00
KWSys Robot 6330f67a25 KWSys Nightly Date Stamp 2012-03-17 00:05:07 -04:00
David Cole 247a132422 Allow txt files as ExtraSources in object library targets
Necessary for the Xcode generator, in which the CMakeLists.txt
files are added as sources merely for convenient access, without
any associated custom command.
2012-03-16 14:25:22 -04:00
David Cole b063599603 Add a default source group for object files. 2012-03-16 14:25:21 -04:00
David Cole be01f3b098 Xcode: Re-factor some existing methods into "FromPath" variants
...to avoid depending on cmSourceFile instances. Prep work for supporting
OBJECT_LIBRARY in the Xcode generator.
2012-03-16 14:23:13 -04:00
Brad King 2693dbe085 Merge branch 'object-library' into ninja-object-library 2012-03-16 10:20:20 -04:00
Brad King 51997cb6dc Ninja: Honor $<TARGET_OBJECTS:...> source expressions
Add objects from object libraries referenced using this syntax to the
set of objects linked in a target.
2012-03-16 10:19:44 -04:00
Brad King 23ec258fce Merge branch 'object-library' into ninja-object-library 2012-03-16 10:19:10 -04:00
Brad King 61124de4c0 Build object library targets in Ninja
Treat OBJECT libraries as STATIC libraries but leave out the archive
step.  The object files will be left behind for reference by other
targets later.
2012-03-16 10:18:36 -04:00
Brad King a2514f15fa Simplify cmNinjaTargetGenerator using cmGeneratorTarget
Replace the classification of source files in this generator using that
computed by cmGeneratorTarget.
2012-03-16 10:18:35 -04:00
Brad King f5b06cda0f Pre-compute object file names before Ninja generation
Implement cmGlobalGenerator::ComputeTargetObjects in the Ninja generator
to pre-compute all the object file names.  Use the results during
generation instead of re-computing it later.
2012-03-16 10:18:35 -04:00
Brad King c68cc06612 Merge branch 'object-library' into ninja-object-library 2012-03-16 10:18:01 -04:00
Brad King 48eb7fc7d7 Ninja: Avoid using 'this' in member initializers
VS complains

 warning C4355: 'this' : used in base member initializer list

so initialize the member in the constructor body instead.
2012-03-16 10:16:55 -04:00
Bill Hoffman bba37dd517 Ninja: Fix for PDB files with spaces in the path.
This calls ConvertToOutputFormat on the PDB paths for pdb file paths
used in both library creation and the building of object files.
2012-03-16 10:16:45 -04:00
Brad King cd146c650e Document OBJECT library type in add_library command
Describe the OBJECT library signature of add_library and the
$<TARGET_OBJECTS:...> expressions needed to use object libraries.
Also document the what is not allowed for object library targets.
2012-03-16 10:12:31 -04:00
Brad King c403f27a2d Add $<TARGET_OBJECTS:...> expression to use an object library
For now do not allow an OBJECT library to reference other object
libraries.  Teach cmTarget::ComputeLinkImplementation to include the
languages of object libraries used by a target.
2012-03-16 10:12:15 -04:00
David Cole 34e4985eed Xcode: Re-factor code into GetObjectsNormalDirectory method
...in preparation for calling it from more than one location.
Required to support OBJECT_LIBRARY targets in Xcode.
2012-03-16 10:05:46 -04:00
KWSys Robot b4f949a3dd KWSys Nightly Date Stamp 2012-03-16 00:05:07 -04:00
KWSys Robot acc3862d0a KWSys Nightly Date Stamp 2012-03-15 00:05:05 -04:00
Brad King 9eb8e4b22b Write CMakeCache.txt atomically (#13040)
The write code introduced by commit 0b0d1b1d (add CMakeCache.txt
support, 2001-02-22) uses a temporary file but does not replace the
original atomically.  Use cmGeneratedFileStream to do both
copy-if-different and atomic replacement.
2012-03-14 08:18:15 -04:00
KWSys Robot 50fe2c6460 KWSys Nightly Date Stamp 2012-03-14 00:05:08 -04:00
Alex Neundorf 16c0c7376c find_package: allow <pkg>Config.cmake to set <pkg>_FOUND to FALSE
Before, find_package in Config mode always set Foo_FOUND to true if the
Config file has been found and could be executed.
If the Config file itself detected some problem, like a missing dependency,
it did not have a way to signal to the outside that the package is not working.
With this patch, if a Config file sets Foo_FOUND to FALSE, this is taken into
account and not overridden.

Alex
2012-03-13 16:56:23 -04:00
Brad King 3a53005f7d Build object library targets in VS
Treat OBJECT libraries as STATIC libraries.  The VS project file format
provides no way to avoid running the librarian so hide the resulting
.lib away next to the object files as it should never be referenced.
The object files will be left behind for reference by other targets
later.
2012-03-13 14:38:02 -04:00
Brad King 3aa741acb6 Build object library targets in Makefiles
Treat OBJECT libraries as STATIC libraries but leave out the archive
step.  The object files will be left behind for reference by other
targets later.
2012-03-13 14:38:02 -04:00
Brad King b87d7a60a0 Add OBJECT_LIBRARY target type
This library type can compile sources to object files but does not link
or archive them.  It will be useful to reference from executable and
normal library targets for direct inclusion of object files in them.

Diagnose and reject the following as errors:

* An OBJECT library may not be referenced in target_link_libraries.

* An OBJECT library may contain only compiling sources and supporting
  headers and custom commands.  Other source types that are not normally
  ignored are not allowed.

* An OBJECT library may not have PRE_BUILD, PRE_LINK, or POST_BUILD
  commands.

* An OBJECT library may not be installed, exported, or imported.

Some of these cases may be supported in the future but are not for now.

Teach the VS generator that OBJECT_LIBRARY targets are "linkable" just
like STATIC_LIBRARY targets for the LinkLibraryDependencies behavior.
2012-03-13 14:37:32 -04:00
David Cole 0f4dfa6960 CPack: Use real path to PackageMaker to find its version file (#12621)
On machines where a usr/bin/packagemaker symlink is found, we were
unable to find the version.plist file relative to the symlink.
Resolve the symlink first, so we can find it relative to the
real PackageMaker.
2012-03-13 14:01:19 -04:00
Brad King e8f1d7f031 Merge topic 'doc-Fortran-mod-dir-issue-13034'
54604ee Document Fortran_MODULE_DIRECTORY as OUTPUT only (#13034)
2012-03-13 11:54:58 -04:00
Brad King 88720153a9 Merge topic 'fix-cpack-hdiutil-retry-loops'
05a76d5 CPack: Fix retry logic when calls to hdiutil fail
2012-03-13 11:54:03 -04:00
Brad King b96424012d Merge topic 'ctest-match-valgrind'
ea4416c CTest: Match valgrind errors with "points to" (#12922)
2012-03-13 11:53:38 -04:00
Brad King 3cd124cf28 Merge topic 'ctest-clang-in-xcode'
c7da50d CTest: Detect Xcode error "Command ... failed with exit code"
2012-03-13 11:53:35 -04:00
Brad King 1ee4b65a7f Merge topic 'cleanup-object-file-names'
0996f2a Hide Makefile local object info inside local generator
67734be VS: Simplify object name computation
4ae7f36 Remove unused partial OBJECT_FILES property implementation
2012-03-13 11:53:28 -04:00
Brad King ac800f49d0 Ninja: Constify use of cmCustomCommand
The generator never needs to modify custom command instances.
2012-03-13 11:23:14 -04:00
Peter Kuemmel 9a0d5a828a Ninja: add /DEF: flag to linker call 2012-03-13 11:20:29 -04:00
KWSys Robot 738d94f57e KWSys Nightly Date Stamp 2012-03-13 00:05:06 -04:00
Brad King f737bd416a Pre-compute and store target object directory in cmGeneratorTarget
Add cmGeneratorTarget::ObjectDirectory member to hold the value.  In
ComputeTargetObjects set the value to the full path to the target object
directory including any necessary placeholder for the configuration
name.
2012-03-12 16:44:03 -04:00
Brad King 54604ee7e9 Document Fortran_MODULE_DIRECTORY as OUTPUT only (#13034)
CMake does not automatically pass the Fortran module output directory
location to the module search path.  Add a note to the documentation
that the location must also be specified by INCLUDE_DIRECTORIES.
2012-03-12 11:54:54 -04:00
KWSys Robot 3551844a81 KWSys Nightly Date Stamp 2012-03-12 00:05:05 -04:00
KWSys Robot 335b6592dd KWSys Nightly Date Stamp 2012-03-11 00:05:10 -05:00
KWSys Robot 71c16e457c KWSys Nightly Date Stamp 2012-03-10 00:05:06 -05:00
Brad King 9c0a00d6dd Rename/constify build-time config placeholder lookup
Rename cmGlobalGenerator::GetCMakeCFG{InitDirectory => IntDir} to
have a shorter name without a typo.  Add a 'const' qualifier since
the method is only for lookup and never needs to modify anything.
2012-03-09 15:16:03 -05:00
Brad King 46f4940675 Remove unused cmSourceGroup method
The non-const GetSourceFiles method is not needed.
2012-03-09 15:16:03 -05:00
Brad King d57047de33 Pre-compute object file names before VS project generation
Implement cmGlobalGenerator::ComputeTargetObjects in the VS generator
to pre-compute all the object file names.  Use the results during
generation instead of re-computing it later.
2012-03-09 15:16:02 -05:00
Brad King 3baaf6ccec Pre-compute object file names before Makefile generation
Add a virtual cmGlobalGenerator::ComputeTargetObjects method invoked
during cmGeneratorTarget construction.  Implement it in the Makefile
generator to pre-compute all object file names for each target.  Use
the results during generation instead of re-computing it later.
2012-03-09 15:16:02 -05:00
Brad King 62a841b80b Simplify cmVisualStudio10TargetGenerator using cmGeneratorTarget
Use CustomCommands and ModuleDefinitionFile computed in the latter
instead of recomputing them from the original target source files.
2012-03-09 15:16:02 -05:00
Brad King 45c2f93240 Simplify cmMakefileTargetGenerator using cmGeneratorTarget
Replace the classification of source files in this generator
using that computed by cmGeneratorTarget.
2012-03-09 15:16:02 -05:00
Brad King 4b24558091 Create a cmGeneratorTarget for each cmTarget during generation
Construct the instances after the final set of targets is known but
before computing inter-target dependencies.  This order will allow
initialization of cmGeneratorTarget instances to adjust and finalize
declared inter-target dependencies.
2012-03-09 15:16:02 -05:00
Brad King 11d9b21126 Add cmGeneratorTarget to represent a target during generation
Some per-target information and logic is common to all generators.
Some of that information is currently stored in cmTarget but that
should be reserved for the configure step.  Create a class to hold
per-target information for generators.  On construction classify
sources from the target and store them in separate members.  This
classification is already implemented separately in each generator.
2012-03-09 15:16:02 -05:00