Commit Graph

18990 Commits

Author SHA1 Message Date
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
Alex Neundorf 0b343cb71e ASM compiler detection: remove debug output (#13270)
This must have been left in accidentially.

Alex
2012-06-12 22:27:34 +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 c6f6929e31 Merge topic 'UseJava-13281'
5593d57 UseJava: fix find_jar() called with multiple files (#13281)
2012-06-12 16:00:49 -04:00
David Cole 6a52f3cb36 Merge topic 'update-KWIML'
0dfdde1 Merge branch 'upstream-kwiml' into update-KWIML
6240f85 KWIML: Report broken integer format macros on AIX 4.3
e1b0fc9 KWIML: Add interface to report broken integer format macros
2012-06-12 16:00:34 -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 909ddae2e4 Merge topic 'libarchive-sun'
54ffb5b libarchive: Avoid 'inline' on SunPro < 5.9 (#13277)
2012-06-12 15:59:53 -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
David Cole e21bcdc6c6 Merge topic 'FindBZip2-GnuWin32-registry'
7c912af FindBZip2: Search locations in GnuWin32 registry
2012-06-12 15:58:29 -04:00
David Cole d6483cb542 Merge topic 'FindPythonLibs-13216'
9d145b0 FindPythonLibs: honor EXACT version specification (#13216)
2012-06-12 15:58:18 -04:00
David Cole a8fa345ea2 Merge topic 'CPackRPM-emptyPerComponentREQUIRES'
7321c94 CPackRPM: avoid leakage of RPM directive from one component to another.
2012-06-12 15:58:03 -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
Stephen Kelly 55d7aa4c44 Add platform variable for flags specific to shared libraries
Store in CMAKE_${lang}_COMPILE_OPTIONS_DLL flags from
CMAKE_SHARED_LIBRARY_${lang}_FLAGS that are truly exclusive to shared
libraries.
2012-06-12 15:38:48 -04:00
Stephen Kelly 31d7a0f2e3 Add platform variables for position independent code flags
Store in new platform variables

  CMAKE_${lang}_COMPILE_OPTIONS_PIC
  CMAKE_${lang}_COMPILE_OPTIONS_PIE

flags for position independent code generation.

In almost all cases, this means duplication of the
CMAKE_SHARED_LIBRARY_${lang}_FLAGS for the _PIC case and using the
assumed pie equivalent for the _PIE case.  Note that the GNU compiler
has supported -fPIE since 3.4 and that there is no -fPIC on GNU for
Windows or Cygwin.

There is a possibility that the _PIE variables are not correct.
However, as there is no backwards compatibility to be concerned about
(as the POSITION_INDEPENDENT_CODE property is not used anywhere yet),
the current state suffices.
2012-06-12 15:37:53 -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 7b91c3dfac Millenium update: 79 * (16/9)/(4/3) = 105 2012-06-12 00:51:27 +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
Peter Kuemmel 7553a3799a Ninja: fix ModuleNoticies test 2012-06-09 12:38:12 +02:00
Peter Kuemmel 8b27a94f28 Ninja: don't set cmcldeps vars to empty string when they are not defined 2012-06-09 12:10:52 +02:00
Peter Kuemmel 64c5752d93 Ninja: add copyright and description 2012-06-09 10:43:23 +02:00
Peter Kuemmel 0412e5c933 Ninja: assume cmcldeps in the same dir as cmake 2012-06-09 09:06:01 +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
Rolf Eike Beer 5593d5718e UseJava: fix find_jar() called with multiple files (#13281) 2012-06-08 17:35:32 +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
Brad King 0dfdde1a3e Merge branch 'upstream-kwiml' into update-KWIML 2012-06-07 15:20:42 -04:00
Brad King 6240f853a3 KWIML: Report broken integer format macros on AIX 4.3
The <inttypes.h> on this platform defines the macros incorrectly, as in

 #define PRId32 %d

instead of

 #define PRId32 "d"
2012-06-07 15:19:20 -04:00