12989 Commits

Author SHA1 Message Date
Peter Kuemmel
f1aa026fb9 Ninja: build with old vc versions 2012-06-14 18:02:43 +02:00
Peter Kuemmel
eda3075478 Ninja: sh needs something befor and after && 2012-06-14 17:26:01 +02:00
Peter Kuemmel
1d55ea557d Ninja: fix Linux build 2012-06-14 16:01:35 +02:00
Peter Kuemmel
6e6886d3bd Ninja: ninja now also could read parentheses in .d files 2012-06-14 14:37:08 +02:00
Peter Kuemmel
6546086004 Ninja: don't use shell when cmake is called directly
When linking with cmake and vs_link_* the command line
could be too long for cmd.exe, which needs not to be
called in this case. (was not cached by a test)

Introduce rules which don't use the shell and use this
rule when there are no pre or post step.

For free we get a small speedup, because cmd is then
not called.

Also be more accurate when estimating the
command line length.
2012-06-14 14:22:56 +02:00
Peter Kuemmel
220fdc16fc Ninja: cmcldeps
- don't depend on argument order
- update help
2012-06-14 10:48:32 +02:00
Peter Kuemmel
77cb7b502f Ninja: suppress startup logos
Having Ninja's smart printing we are more allergic on
unneeded tool output.
2012-06-14 10:48:31 +02:00
Kitware Robot
7717d964b8 CMake Nightly Date Stamp 2012-06-14 00:01:05 -04:00
David Cole
2077e98753 Ninja: Enable the ninja generator by default on Windows.
All tests are passing as of this morning on the CMake dashboard in
the Nightly Expected section.

Nice job to all the Ninja+CMake contributors. Congrats!
2012-06-13 17:25:24 -04:00
Alex Neundorf
414bf6732b Eclipse: parallel build also for "Build project" #13287
Use ${CMAKE_ECLIPSE_MAKE_ARGUMENTS} also for the overall build command,
not only for the per-target commands.

Alex
2012-06-13 22:49:45 +02:00
Peter Kuemmel
ab8a2a57f2 Ninja: onyl use pre processor for rc file parsing 2012-06-13 19:20:01 +02:00
Peter Kuemmel
4b43999ca3 Ninja: remove unused CommentStream 2012-06-13 17:23:31 +02:00
Peter Kuemmel
54a388beaa Ninja: extract dependencies for .rc files with msvc tools
rc.exe doesn't support /showIncludes.
Because .rc files also #include stuff we can
misuse cl.exe to get the included files.

Done one the fly by cmcldeps.
2012-06-13 17:14:16 +02:00
Brad King
a41557a2c8 install: Fix FILES_MATCHING on case-sensitive Mac filesystems (#13177)
Windows and Apple machines have predominantly used case-insensitive
filesystems so our file(INSTALL) command uses case-insensitive pattern
matching.  It is implemented by converting the pattern and file path to
lower case before matching.  The FILES_MATCHING option is implemented by
excluding a path that does not match any pattern unless it is a
directory that must be searched recursively.  However, the test that an
excluded path is a directory is executed on the lower-case path and
therefore fails on mixed-case input paths on case-sensitive filesystems.
Fix the file(INSTALL) implementation to use the lower-case path only for
pattern matching and preserve the original path for tests against the
real filesystem.
2012-06-13 08:50:44 -04:00
Kitware Robot
6e2ef9860e CMake Nightly Date Stamp 2012-06-13 00:01:05 -04:00
Peter Kuemmel
43200c145d Ninja: work with ninja/master, don't compile rc files with cl
Ninja generates for paths with spaces wrong results for $out.d,
using the new DEP_FILE variable instead.
2012-06-13 00:52:46 +02:00
David Cole
bc5177b99e Merge topic 'object-library-is-not-shared'
9a9b3e4 add_library: Allow OBJECT library without dynamic linking (#13289)
2012-06-12 16:01:21 -04:00
David Cole
c95d1baa19 Merge topic 'position-independent-targets'
bd34963 Refactor generation of shared library flags
55d7aa4 Add platform variable for flags specific to shared libraries
31d7a0f Add platform variables for position independent code flags
2012-06-12 16:01:04 -04:00
David Cole
9297ccff9b Merge topic 'no-std-stringstream'
94de982 Avoid direct use of std::(o|)stringstream (#13272)
2012-06-12 16:00:17 -04:00
David Cole
f848dbfe3c Merge topic 'VS-Fortran-Intel-2013'
8945489 VS: Set Intel Fortran 13 project version
2012-06-12 15:59:41 -04:00
David Cole
daf552e3ed Merge topic 'makefile-escape-equals'
ee6c1b8 Makefile: Support directory names containing '=' (#12934)
2012-06-12 15:59:28 -04:00
David Cole
2b3b45aec9 Merge topic 'archive-exclude-file-flags'
a34015d cmArchiveWrite: Clear fflags from archive entries
2012-06-12 15:59:01 -04:00
David Cole
4075e1ca6c Merge topic 'KWSys-hashtable-old-gcc'
4f170e2 KWSys: Fix hashtable prime list on g++ 2.9 (#13273)
2012-06-12 15:58:42 -04:00
Brad King
32313fd0d4 Merge branch 'ninja-rspfile' into no-std-stringstream
Conflicts:
	Source/cmGlobalNinjaGenerator.cxx
	Source/cmLocalNinjaGenerator.cxx
	Source/cmNinjaNormalTargetGenerator.cxx
2012-06-12 15:43:32 -04:00
Brad King
94de982902 Avoid direct use of std::(o|)stringstream (#13272)
Older C++ compilers do not provide a standard std::stringstream.
Use our compatibility interfaces instead.

Also avoid std::stringstream(openmode) signature.  Our approximate
stringstream implementation provided when the standard one is not
available does not support the openmode argument.
2012-06-12 15:40:24 -04:00
Stephen Kelly
bd34963002 Refactor generation of shared library flags
CMAKE_SHARED_LIBRARY_<lang>_FLAGS has flags on various platforms for a
variety of purposes that are correlated with shared libraries but not
exclusive to them.  Refactor generation of these flags to use new
purpose-specific platform variables

  CMAKE_<lang>_COMPILE_OPTIONS_DLL
  CMAKE_<lang>_COMPILE_OPTIONS_PIC
  CMAKE_<lang>_COMPILE_OPTIONS_PIE

Activate the DLL flags specifically for shared libraries.  Add a new
POSITION_INDEPENDENT_CODE target property to activate PIC/PIE flags, and
default to true for shared libraries to preserve default behavior.
Initialize the new property from CMAKE_POSITION_INDEPENDENT_CODE to
allow easy global configuration in projects.

Although the default behavior is unchanged by this refactoring, the new
approach ignores CMAKE_SHARED_LIBRARY_<lang>_FLAGS completely.  We must
leave it set in case projects reference the value.  Furthermore, if a
project modifies CMAKE_SHARED_LIBRARY_<lang>_FLAGS it expects the new
value to be used.  Add policy CMP0018 to handle compatibility with
projects that modify this platform variable.

Add a PositionIndependentCode test on platforms where we can get
meaningful results.
2012-06-12 15:38:48 -04:00
Peter Kuemmel
12cc6434bf Ninja: ninja can't read dep. pathes with parentheses 2012-06-12 14:36:39 +02:00
Peter Kuemmel
5590625fa3 Ninja: use slashes for include dirs, so also slahes are in the .d files 2012-06-12 13:52:32 +02:00
Kitware Robot
ebc702c86d CMake Nightly Date Stamp 2012-06-12 00:01:04 -04:00
Peter Kuemmel
38aa9e97f2 Ninja: complete MinGW support 2012-06-12 04:17:55 +02:00
Peter Kuemmel
c54ef23c16 Line Length: <79 2012-06-12 00:51:08 +02:00
Brad King
9a9b3e45e3 add_library: Allow OBJECT library without dynamic linking (#13289)
When global property TARGET_SUPPORTS_SHARED_LIBS is FALSE we should
still allow OBJECT libraries.  This was an oversight in commit b87d7a60
(Add OBJECT_LIBRARY target type, 2012-03-12).  While at it, fix the
warning message to report context.
2012-06-11 08:40:11 -04:00
Kitware Robot
931af7fd78 CMake Nightly Date Stamp 2012-06-11 00:01:04 -04:00
Peter Kuemmel
4db9dd89df Ninja: use slahes in .d files 2012-06-10 21:27:25 +02:00
Peter Kuemmel
ba8d0db217 Ninja: don't pollute the rules file with useless comments 2012-06-10 20:20:29 +02:00
Peter Kuemmel
343ff7a72e Ninja: fix line length 2012-06-10 15:31:06 +02:00
Peter Kuemmel
1a38a5d65f Ninja: allow spaces in cldeps's .d file 2012-06-10 15:22:01 +02:00
Kitware Robot
b39924cf22 CMake Nightly Date Stamp 2012-06-10 00:01:03 -04:00
Peter Kuemmel
db607dea8d Ninja: don't use cmcldeps for try_compile 2012-06-09 14:12:11 +02:00
Kitware Robot
45a9ce5543 CMake Nightly Date Stamp 2012-06-09 00:01:04 -04:00
Peter Kuemmel
941afa571c Ninja: allow spaces in source path
And make /showIncude prefix visible for all build rules
2012-06-08 22:59:18 +02:00
Peter Kuemmel
033a687acd Ninja: add wrapper for cl to extract dependencies
cmcldeps wraps cl and adds /showInclude before calling cl.
It parses the output of cl for used headers, drops system
headers and writes them to a GCC like dependency file.

cmcldeps uses ATM ninja code for process handling,
but could be ported later to SystemTools.

TODO: Why needs ninja multiple calls in the BuildDepends test?
2012-06-08 17:42:11 +02:00
Kitware Robot
03deea00bc CMake Nightly Date Stamp 2012-06-08 00:01:05 -04:00
Peter Kuemmel
1d40729eaa Ninja: add dependency tracking for msvc with cldeps 2012-06-07 23:34:48 +02:00
Kitware Robot
5ed6a36cc9 CMake Nightly Date Stamp 2012-06-07 00:01:05 -04:00
Zaheer Chothia
8945489c07 VS: Set Intel Fortran 13 project version
I have tested that it works with:

 Microsoft Visual Studio 10.0.40219.1
 Intel Visual Fortran 13.0.0.041 Beta Build 20120425
2012-06-06 12:23:25 -04:00
Brad King
ee6c1b8aca Makefile: Support directory names containing '=' (#12934)
Since commit c8ef6430 (Allow directory names containing '=' and warn if
necessary, 2012-02-06) we allow directories with '=' instead of
rejecting them as was previously done since commit 8704525f (Reject
directory names containing '=', 2011-01-14).  However, we did not warn
in all cases that '=' may cause failure, such as when it appears on the
right-hand side of a dependency line.

Both commits above were made assuming that '=' cannot be escaped in Make
syntax, but it can be achieved with a variable:

  EQUALS = =
  left$(EQUALS)side : right$(EQUALS)side

Use this approach to escape '=' in dependency lines, thus supporting
the character in paths.

All our tests now pass when CMake is built in source and build trees
both containing '=', except for the "OutOfSource" test.  It fails in
its coverage of the obscure "OutOfBinary" test case where part of the
build tree is located outside the main build tree of the test.  The
reason is that CMake must invoke a command like

  $(MAKE) -f /path/with=sign/build.make /path/with=sign/somefile

but the make tool interprets the last argument as a variable assignment.
This is an acceptable limitation, since the case is so obscure, in
exchange for supporting '=' cleanly otherwise.
2012-06-06 08:30:54 -04:00
Brad King
a34015d356 cmArchiveWrite: Clear fflags from archive entries
When reading archive entries from disk strip any "fflags" entry headers
that may have been loaded from the filesystem when libarchive is built
with HAVE_STRUCT_STAT_ST_FLAGS (struct stat has 'st_flags').  The local
filesystem flags are not useful for distribution.  Furthermore, GNU tar
does not understand the "SCHILY.fflags" extended header used to store
the flags in the archive.  Use the approach from commit e8558efa
(cmArchiveWrite: Clear xattr and acl from entries, 2011-04-07) to remove
the flags and avoid producing the non-portable extended header.
2012-06-06 07:29:19 -04:00
Peter Kuemmel
e3a1f727f7 Ninja: find mingw's resource compiler 2012-06-06 13:02:30 +02:00
Kitware Robot
eb53bc2773 CMake Nightly Date Stamp 2012-06-06 00:01:04 -04:00