Commit Graph

22306 Commits

Author SHA1 Message Date
Sebastian Holtermann
db431ecfe3 Autogen: Merge FindInIncludeDirectories into FindIncludeFile 2017-03-01 15:30:28 +01:00
Brad King
86563cf7c8 Merge topic 'export-executable-symbols'
85e08370 bindexplib: Always export executable symbols, even they are also readable
2017-03-01 09:00:43 -05:00
Brad King
4fc64ce76d Merge topic 'find-libarch-not-symlink'
6f5aede7 find_library: Skip 'lib => lib<arch>' searches if one symlinks the other
e67963ed cmFindLibraryCommand: Refactor AddArchitecturePath logic
2017-03-01 09:00:40 -05:00
Kitware Robot
e9cfe63dfc CMake Nightly Date Stamp 2017-03-01 00:01:04 -05:00
Brad King
6f5aede716 find_library: Skip 'lib => lib<arch>' searches if one symlinks the other
The `FIND_LIBRARY_USE_LIB<arch>_PATHS` global properties ask
`find_library` to look in `lib<arch>` directories automatically before
corresponding `lib` directories.  However, if `lib<arch>` is just a
symlink to `lib` (or vice-versa) then we should skip adding the
`lib<arch>` path.  Such symlinks typically only exist to satisfy
software that expects the `lib<arch>` path to be available.

Fixes: #16687
2017-02-28 14:56:54 -05:00
Brad King
e67963ed73 cmFindLibraryCommand: Refactor AddArchitecturePath logic
Use boolean variables to save results and rename variables to more
closely represent their roles.
2017-02-28 14:56:13 -05:00
Zsolt Parragi
85e08370d0 bindexplib: Always export executable symbols, even they are also readable
Previously bindexplib discarded read-only non-function symbols even in
executable/code sections, but in some specific cases they could still mark
functions.

An example is provided by nop.asm in the AuoExportDll test, which exports
a function only marked by a label. This symbol can be used from C/C++
code, but without this change it would result in an unresolved external
symbol when built as a DLL on Windows.
2017-02-28 09:49:12 -05:00
Brad King
30243e7faf Merge topic '16607-error-out-on-non-seekable-input-files'
ded616bd cmListFileLexer: bail out on seek-errors
2017-02-28 09:39:21 -05:00
Brad King
322472e571 Merge topic 'cache-xaml-resx-headers'
73a6d456 VS: Cache the list of xaml and resx headers
2017-02-28 09:39:16 -05:00
Brad King
0aec4d3864 Merge topic 'cmake-xcode-schemes'
7238a052 Xcode: Add documentation for schema generator
ffb8817b Xcode: Write shared schemes based on the default files generated by Xcode
2017-02-28 09:39:12 -05:00
Gusts Kaksis
ffb8817b37 Xcode: Write shared schemes based on the default files generated by Xcode
Issue: #15441
2017-02-28 09:21:54 -05:00
Brad King
fd6b260c40 Merge topic 'cmake-host-system-name'
c1aaf8a6 Fix CMAKE_HOST_SYSTEM_NAME on SunOS
2017-02-28 09:11:40 -05:00
Kitware Robot
8bfa6a00ea CMake Nightly Date Stamp 2017-02-28 00:01:08 -05:00
Brad King
c1aaf8a61d Fix CMAKE_HOST_SYSTEM_NAME on SunOS
In commit 0bbd993f (Make CMAKE_HOST_SYSTEM_NAME available in scripting
context, 2016-12-26) we added a call to `uname` that checks for a zero
return value.  However, on Solaris the `uname(2)` manual [1] says that
on success a non-negative value is returned.  Fix our return code check
so that we detect the `SunOS` name correctly.

[1] https://docs.oracle.com/cd/E53394_01/html/E54765/uname-2.html
2017-02-27 10:30:45 -05:00
Dmitry Kochkin
73a6d4566a VS: Cache the list of xaml and resx headers
Speed up VS project generation with many such headers.
2017-02-27 09:22:08 -05:00
Gregor Jasny
ded616bdad cmListFileLexer: bail out on seek-errors
If we are given a FIFO, for example, we cannot seek back after trying to
read a Byte-Order-Mark.

Closes: #16607
2017-02-27 09:14:28 -05:00
Brad King
e348d8db55 Merge topic 'object-library-compile-pdb'
feff52d4 Fix COMPILE_PDB_NAME when used on an OBJECT library
2017-02-27 09:11:22 -05:00
Brad King
73909e2421 Merge topic 'ninja-no-full-path'
666ad1df Revert "Ninja: Use full path for all source files"
2017-02-27 09:11:17 -05:00
Kitware Robot
adcade6088 CMake Nightly Date Stamp 2017-02-27 00:01:03 -05:00
Kitware Robot
da915157b0 CMake Nightly Date Stamp 2017-02-26 00:01:02 -05:00
Kitware Robot
160ebe58b5 CMake Nightly Date Stamp 2017-02-25 00:01:03 -05:00
Brad King
feff52d42c Fix COMPILE_PDB_NAME when used on an OBJECT library
When `COMPILE_PDB_NAME` is used without `COMPILE_PDB_OUTPUT_DIRECTORY`
we cannot fall back on the link `PDB_OUTPUT_DIRECTORY` for an object
library because it has no link step.

Fixes: #16674
2017-02-24 11:26:52 -05:00
Brad King
666ad1df2d Revert "Ninja: Use full path for all source files"
This reverts commit v3.7.0-rc1~275^2 (Ninja: Use full path for all
source files, 2016-08-05).  Unfortunately using absolute paths can
cause incorrect rebuilds due to ninja limitations.  The ninja
manual [1] explains:

> ... using absolute paths, your depfile may result in a mixture of
> relative and absolute paths. Paths used by other build rules need
> to match exactly.

Passing an absolute path to a source file to the compiler while using a
relative path in the ninja build manifest can cause such mixture and
lead to incorrect rebuilds.  Simply revert the change for now.

Note that there was a follow-up to the original change in commit
v3.7.0-rc2~10^2 (Ninja: Fix RC language depfile generation with
cmcldeps, 2016-10-13).  We don't need to revert that because that
change made the relevant code cleverly adapt to whatever variable
we use to reference the source file.

[1] https://ninja-build.org/manual.html#_deps

Fixes: #16675
Issue: #13894
2017-02-24 10:15:50 -05:00
Brad King
32f13fbe09 Merge topic '16615-xcode-object-libraries-depends'
624021a0 Add test for object library dependencies
5da9266a Xcode: Always track object library dependencies via hacky Makefile
e80ac953 Xcode: Record dependency information also for object libraries
9293e57d Xcode: Collect dummy rules during iteration and emit afterwards
33a1d727 Makefile: Allow adding post-build rules to object libraries
2017-02-24 09:31:39 -05:00
Brad King
58ec4932e3 Merge topic 'dragndrop-format'
356068cd cmCPackDragNDropGenerator: Improving handling of temporary dmg images
2017-02-24 09:31:36 -05:00
Brad King
17c151965d Merge topic 'vcxproj-indentation'
2cb165e8 VS: Fix .vcxproj indentation
2017-02-24 09:31:33 -05:00
Brad King
31282e7854 Merge topic 'autogen_depends'
62a1e292 Autogen: Add hint to SKIP_AUTOMOC in error message
e98465cf Autogen: Add Quote function and use it for logging
96f6f392 Autogen: Add AUTOMOC_DEPEND_FILTERS documentation
94e3f82c Autogen: Add AUTOMOC_DEPEND_FILTERS test
70ebf35c Autogen: Add AUTOMOC_DEPEND_FILTERS support
2a6fd432 Autogen: Single point of return in Run() method
e9a8a207 Autogen: Log simplifications
2017-02-24 09:31:27 -05:00
Brad King
f104fe45fc Merge topic 'cmake-server-aix'
0c14db25 cmServerConnection.h: Include cmConfigure.h first
2017-02-24 09:31:25 -05:00
Kitware Robot
32cb4172bd CMake Nightly Date Stamp 2017-02-24 00:01:05 -05:00
Clinton Stimpson
356068cd2e cmCPackDragNDropGenerator: Improving handling of temporary dmg images
Adjust the image format to create the initial `dmg`, and convert only
when necessary.  This eliminates spurious

    hdiutil create -format UDRW

failures I'm seeing which may be related to an anti-virus scanner.
Running

    hdiutil create -format UDRW -verbose

indicates a "resource is busy" issue when unmounting an image.
2017-02-23 14:12:52 -05:00
Brad King
2cb165e8c0 VS: Fix .vcxproj indentation
In commit v3.8.0-rc1~87^2~1 (VS: added support for C#, 2017-01-09) we
removed what looked like a no-op streaming operation but in fact it
is responsible for applying indentation.  Restore the line.
2017-02-23 13:38:47 -05:00
Sebastian Holtermann
62a1e292f2 Autogen: Add hint to SKIP_AUTOMOC in error message
Closes #15751
2017-02-23 14:14:29 +01:00
Sebastian Holtermann
e98465cfed Autogen: Add Quote function and use it for logging 2017-02-23 14:14:29 +01:00
Brad King
d23f4414c4 Merge topic 'clang-format-attrs'
d5f39a56 clang-format.bash: Use Git attributes to mark files for formatting
f6986ee4 Define a custom Git attribute to mark sources using our C style
2256c3a7 Define a custom Git attribute to mark source files as generated
2017-02-23 07:35:32 -05:00
Brad King
0c14db2558 cmServerConnection.h: Include cmConfigure.h first
We need this to make Large File Support definitions consistent with
other translation units.
2017-02-23 07:32:24 -05:00
Kitware Robot
77cbcb76bb CMake Nightly Date Stamp 2017-02-23 00:01:03 -05:00
Brad King
d5f39a56a4 clang-format.bash: Use Git attributes to mark files for formatting 2017-02-22 16:59:26 -05:00
Brad King
2256c3a7db Define a custom Git attribute to mark source files as generated 2017-02-22 16:53:26 -05:00
Gregor Jasny
5da9266af5 Xcode: Always track object library dependencies via hacky Makefile
Always use the dependency tracker Makefile to ensure targets that
depend on object libraries are up-to-date.  For all other target
types we use the hack only for Xcode < 5.

Fixes: #16615
2017-02-22 15:20:11 -05:00
Sebastian Holtermann
70ebf35cda Autogen: Add AUTOMOC_DEPEND_FILTERS support 2017-02-22 21:13:48 +01:00
Sebastian Holtermann
2a6fd4328a Autogen: Single point of return in Run() method 2017-02-22 17:52:16 +01:00
Sebastian Holtermann
e9a8a207ad Autogen: Log simplifications 2017-02-22 17:44:35 +01:00
Gregor Jasny
e80ac95303 Xcode: Record dependency information also for object libraries
Xcode seems to have troubles to track target dependecies to
object files. This may lead to stale targets as reported in
issue #16615.

As a work-around the pre-Xcode 5 dependecy tracker hack with
post-build make files is extended to also take object libraries
into account.
2017-02-22 17:05:18 +01:00
Gregor Jasny
9293e57d9c Xcode: Collect dummy rules during iteration and emit afterwards 2017-02-22 17:05:17 +01:00
Gregor Jasny
33a1d727d5 Makefile: Allow adding post-build rules to object libraries 2017-02-22 17:05:17 +01:00
Brad King
dfebdd6218 Merge topic 'autogen_json'
29d96633 Autogen: Don't use .moc include in Q_PLUGIN_METADATA test
d60f1ddc Autogen: Documentation update
cdb72127 Autogen: Add release notes for Q_PLUGIN_METADATA support
8b13a52c Autogen: Tests: Set different compression levels in rcc test
9d1db7d7 Autogen: Overhaul and simplify AutogenInfo.cmake file generation
0ab817fa Autogen: Optimize GetCompileDefinitionsAndDirectories function
754d4318 Autogen: Sort AutogenInfo.cmake.in
cd74daf0 Autogen: Tests: Add Q_PLUGIN_METADATA test
39c4819e Autogen: Tests: Add moc include tests
50805693 Autogen: Tests: Clean comments
c23206b6 Autogen: Log simplifications
347572cf Autogen: Only touch an unchanged moc_compilation.cpp
03df033b Autogen: Rebuild moc when Q_PLUGIN_METADATA json file changes
3ec230de Autogen: Use GetRealPath in central places only
41fb64e7 Autogen: Search moc includes in include directories
175c8900 Autogen: Sort includes before composing include options
...
2017-02-22 10:15:48 -05:00
Brad King
dc32ad1988 Merge topic 'vs2017-fallback-sdk'
2da0838c VS2017: If Win 8.1 SDK is not available, use Win 10 SDK
2017-02-22 10:15:35 -05:00
Kitware Robot
28df39ca8e CMake Nightly Date Stamp 2017-02-22 00:01:03 -05:00
Brad King
2da0838c64 VS2017: If Win 8.1 SDK is not available, use Win 10 SDK
We try to choose the Windows SDK version based on the version of Windows
targeted by the build.  However, if using VS 2017 without the Windows
8.1 SDK installed then we must fall back to the Windows 10 SDK even when
targeting an older version of Windows.

Inspired-by: gnaggnoyil <gnaggnoyil@gmail.com>
2017-02-21 13:47:54 -05:00
Brad King
3ccad39000 Merge topic 'cmake-host-system-name'
717e1f30 Use looked up uname path for command execution
0bbd993f Make CMAKE_HOST_SYSTEM_NAME available in scripting context
2017-02-21 11:14:03 -05:00