Commit Graph

12267 Commits

Author SHA1 Message Date
Alex Neundorf bc278ceb0f automoc: fix line length
Alex
2011-12-06 18:54:30 +01:00
KWSys Robot 759323ad0b KWSys Nightly Date Stamp 2011-12-06 00:05:06 -05:00
Brad King afb00fef19 Add CMAKE_GNUtoMS option to convert GNU .dll.a to MS .lib
Teach the Windows-GNU.cmake platform file to look for Visual Studio
tools matching the target ABI.  Add an extra step to the link command
for shared libraries and executables that export symbols and on which a
new GNUtoMS property is set (initialized by the CMAKE_GNUtoMS option).
Tell the GNU linker to output a module definition (.def) file listing
exported symbols in addition to the GNU-format import library (.dll.a).
Pass the .def file to the MS "lib" tool to construct a MS-format DLL
import library (.lib).

Teach the install(TARGETS) command to install the MS import library next
to the GNU one.  Teach the install(EXPORT) and export() command to set
the IMPORTED_IMPLIB property pointing at the import library to use the
import library matching the tools in the importing project.
2011-12-05 18:13:49 -05:00
Brad King 61e862986a Factor makefile generator link rule lookup into helper function
This provides a place in the makefile generators to adjust the link
rules for both libraries and executables.
2011-12-05 16:37:43 -05:00
Brad King a603250a13 Load platform files that need to know the ABI when possible
Load platform files named in CMAKE_<lang>_ABI_FILES for each language
once the ABI sizeof(void*) is known.  During the first configuration
this is after the test for working compiler and ABI detection checks.
During later configurations the ABI information is immediately available
because it has been saved in CMake<lang>Compiler.cmake.
2011-12-05 16:35:42 -05:00
KWSys Robot e0bc42aa4f KWSys Nightly Date Stamp 2011-12-05 00:05:05 -05:00
KWSys Robot e21e5cf289 KWSys Nightly Date Stamp 2011-12-04 00:05:11 -05:00
KWSys Robot 901e6d023f KWSys Nightly Date Stamp 2011-12-03 00:05:06 -05:00
Alex Neundorf 62e223e8fa automoc: add variable CMAKE_AUTOMOC_STRICT_MODE, to enable strict parsing
Alex
2011-12-02 22:08:06 +01:00
Alex Neundorf 40c516783e automoc: accept even more .moc files in non-strict mode
Alex
2011-12-02 21:54:11 +01:00
Alex Neundorf c207f5d361 automoc: also accept other files when .moc is included in non-strict mode
Alex
2011-12-02 21:43:15 +01:00
Alex Neundorf 9c0df72dc4 automoc: add a StrictParseCppFile(), which is only qmake-compatible
ParseCppFile() is the one which is automoc4/KDE4-compatible, and which
becomes a bit crowded. By separating these two it is easier to ensure
that the strict one doesn't get broken accidentially.

Alex
2011-12-02 20:59:44 +01:00
Alex Neundorf 174bf35fbb automoc: move the code for finding headers into separate function
Alex
2011-12-02 20:38:14 +01:00
KWSys Robot 8bda047b8e KWSys Nightly Date Stamp 2011-12-02 00:05:04 -05:00
Brad King fea3e84ee3 export(): Document undefined behavior of location properties
Since the export() command needs to know the final location of a target
in the build tree we cannot allow properties affecting the location or
name of a target file to be set after the target is passed to export().

Fix a violation of this rule in the SimpleInstall test.
2011-12-01 16:00:12 -05:00
Brad King 363d3962c4 Factor out target location undefined behavior helper macro
Move CM_LOCATION_UNDEFINED_BEHAVIOR into a dedicated header.  Add a
parameter to describe the action that leads to the undefined target
location.
2011-12-01 15:58:47 -05:00
David Cole 97142c7603 Merge topic 'newline-style'
ac2e45d Provide std::ios_base typedef on GCC < 3
28c46ca cmNewLineStyle: Use cmStandardIncludes.h
75e83e9 cmNewLineStyle: Remove trailing comma in enum
be6502c bootstrap: Include cmNewLineStyle in build
a087490 Add NEWLINE_STYLE option to configure_file (#3957)
2011-12-01 14:03:24 -05:00
David Cole f1ad054317 Merge topic 'remove-cmLocalGenerator-trailing-whitespace'
6b104e1 Remove trailing whitespace from cmLocalGenerator
2011-12-01 14:02:39 -05:00
David Cole f64d85e711 Merge topic 'vs-managed-projects'
a1f976c VS: Add support for three new project properties (#12586)
2011-12-01 14:02:32 -05:00
David Cole 9c288d6c2b Merge topic 'automoc_qt5'
a828623 moc is now part of the Qt5Core module
b8c8cab Merge remote-tracking branch 'origin/master' into automoc_qt5
2011-12-01 14:02:21 -05:00
David Cole 3f4672b1d7 Merge topic 'cmake-gui_AddCompletionForAddCacheEntry'
b0d01c3 cmake-gui: add completion for the names when adding cache entries
08c59af Remove trailing whitespace
2011-12-01 14:02:05 -05:00
KWSys Robot 0393aa61d1 KWSys Nightly Date Stamp 2011-12-01 00:05:04 -05:00
Alex Neundorf 8507eaed16 automoc: fix handling of included _p.moc files
Alex
2011-11-30 21:43:05 +01:00
Brad King ac2e45d089 Provide std::ios_base typedef on GCC < 3
The ancient GNU standard library provided std::ios but not
std::ios_base.  Define the latter in terms of the former.
2011-11-30 09:27:18 -05:00
Brad King 28c46ca6cd cmNewLineStyle: Use cmStandardIncludes.h
This ensures that stl types are compiled consistently with
the reset of CMake.  Otherwise one may get errors like

  Undefined symbol: .cmNewLineStyle::ReadFromArguments(
    const std::vector<std::_LFS_ON::basic_string ...)

due to inconsistent large file support definitions.
2011-11-30 09:19:32 -05:00
KWSys Robot 17388037fd KWSys Nightly Date Stamp 2011-11-30 00:05:04 -05:00
Alex Neundorf 7ada172002 automoc: some more linebreaks for the warnings for better readability
Alex
2011-11-29 21:07:50 +01:00
Alex Neundorf 3b93e266c0 automoc: add extra check whether the header contains Q_PRIVATE_SLOT
This is again for KDE4 compatiblity. If foo.moc is included, in general
moc should run on foo.cpp. Usually this can't cause problems.
It can only cause problems if moc must run on the header, and the resulting
file must be included in the cpp file, which is the case with the
Q_PRIVATE_SLOT macro.
This makes the test added by Stephen pass.

Alex
2011-11-29 20:55:36 +01:00
Brad King 6b104e107e Remove trailing whitespace from cmLocalGenerator 2011-11-29 08:58:45 -05:00
Brad King 75e83e98fa cmNewLineStyle: Remove trailing comma in enum 2011-11-29 08:01:07 -05:00
KWSys Robot 89f6fbaae3 KWSys Nightly Date Stamp 2011-11-29 00:05:04 -05:00
Peter Kuemmel a087490697 Add NEWLINE_STYLE option to configure_file (#3957) 2011-11-28 13:48:59 -05:00
Aaron Ten Clay a1f976ce0e VS: Add support for three new project properties (#12586)
VS_GLOBAL_PROJECT_TYPES: A string containing UUIDs to embed in the
Visual Studio project file under <ProjectTypes>.

VS_GLOBAL_KEYWORD: Allows specification of a keyword like "ManagedCProj"
instead of the default "Win32Proj", under <Keyword>

VS_DOTNET_REFERENCES: Semicolon-delimited list of .NET references to add
to the project, which creates a new <ItemGroup>.
2011-11-28 11:44:04 -05:00
KWSys Robot 912c02c682 KWSys Nightly Date Stamp 2011-11-28 00:05:05 -05:00
KWSys Robot 10c3113464 KWSys Nightly Date Stamp 2011-11-27 00:05:05 -05:00
Stephen Kelly a8286235a3 moc is now part of the Qt5Core module
There is no separate SrcTools module anymore.
2011-11-26 15:15:33 +01:00
KWSys Robot 66f44dcdf4 KWSys Nightly Date Stamp 2011-11-26 00:05:08 -05:00
KWSys Robot d63af6df7c KWSys Nightly Date Stamp 2011-11-25 00:05:06 -05:00
KWSys Robot 27e6ea9d2a KWSys Nightly Date Stamp 2011-11-24 00:05:05 -05:00
David Cole 7ed2ed9a2e Merge topic 'CheckImportedFileExistenceInConfigDotCMakeFiles'
5c03438 install(EXPORT): Improve target import failure message format
a2be068 install(EXPORT): Enforce existence of imported target files
2011-11-23 08:16:15 -05:00
David Cole 1ec3801a3a Merge topic 'target-link-libraries-interfaces'
b1f12f8 target_link_libraries: Simplify argument processing state tests
5fc95df target_link_libraries: Add missing space in documentation
9143822 target_link_libraries: Add LINK_(PUBLIC|PRIVATE) options
cf64218 target_link_libraries: Trim trailing whitespace
2011-11-23 08:16:10 -05:00
KWSys Robot 57a85237ac KWSys Nightly Date Stamp 2011-11-23 00:05:08 -05:00
Brad King b1f12f8042 target_link_libraries: Simplify argument processing state tests
Remove extra parens in test for not handling LINK_INTERFACE_LIBRARIES.
Remove redundant test for equality with ProcessingPrivateInterface
subsumed by test for inequality with ProcessingPublicInterface.
2011-11-22 17:21:36 -05:00
Brad King 5fc95dff46 target_link_libraries: Add missing space in documentation
Change "thelink" to "the link".
2011-11-22 17:19:04 -05:00
Stephen Kelly 914382224d target_link_libraries: Add LINK_(PUBLIC|PRIVATE) options
Makes it possible to specify the link dependencies and link
interfaces in one command without repetition.
2011-11-22 16:52:35 -05:00
Stephen Kelly cf64218eeb target_link_libraries: Trim trailing whitespace 2011-11-22 16:52:27 -05:00
David Cole d9df0cca66 Merge topic 'crypto-hash'
0599c5f sha2: Zero entire SHA_CTX structure during cleanup
0a6705c sha2: Suppress -Wcast-align warning from Clang
24b1feb sha2: Cast safe conversions to smaller integer types
1ec3fa0 Merge branch 'update-KWIML' into crypto-hash
6495b59 cmCryptoHash: Add virtual destructor
8302608 Fix CMake.File hash test for CRLF checkouts
9fb1a9c sha2: Wrap long lines in third-party declarations
b0853b5 Disable file() and string() hash commands during bootstrap
9da8340 sha2: Suppress Borland warnings in third-party code
23b3df7 sha2: Use KWIML fixed-size integer constant macros
2e9c26c Add string(MD5) and string(SHA*) commands to compute hashes
293a7f4 cmCryptoHash: Provide factory "New" method
46ab056 sha2: Use "static const" instead of "const static" declarations
38771d3 Add file(SHA*) commands to compute cryptographic hashes
73efd4a sha2: Build as part of CMakeLib
c1856a3 sha2: Use KWIML fixed-size integer types and endian-ness
fcc3ce5 Merge branch 'import-sha2' into crypto-hash
042f796 Add file(MD5) command to compute cryptographic hash
ed7cef5 Factor Compute(File|String)MD5 into cmCryptoHash helper
8251b20 Import sha2 implementation 1.1 from Aaron D. Gifford
9912c41 Import sha2 implementation 1.0 from Aaron D. Gifford
2011-11-22 16:24:21 -05:00
David Cole 7b1b13c8f0 Merge topic 'EclipseImprovedSourceProject'
982b766 Eclipse: use new variable CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT
1110e45 Eclipse: create links to subprojects also in the source-project (#12579)
2011-11-22 16:23:56 -05:00
David Cole f0419b439a Merge topic 'fix-11792-improve-ctest-site-handling'
92af1da CTest: Disallow problem chars in build and site names (#11792)
2011-11-22 16:23:48 -05:00
David Cole 636740c478 Merge topic 'fix-12445-add-call-for-batch-files-vs10'
46c7054 VS: Use "call " keyword with .cmd and .bat file custom commands (#12445)
2011-11-22 16:23:23 -05:00
Alex Neundorf bde4edb6ab automoc: add special handling for including basename_p.moc, with test
Alex
2011-11-22 22:01:13 +01:00
Brad King 5c03438661 install(EXPORT): Improve target import failure message format 2011-11-22 15:55:04 -05:00
Alex Neundorf a2be068c75 install(EXPORT): Enforce existence of imported target files
Typical <package>Config.cmake files for find_package() rely only on the
files generated by install(EXPORT).  They might be wrong, for whatever
reasons, like people manually deleted files, projects were packaged
wrong by distributions, whatever.  To protect against this, add checks
that the file locations we are importing actually exist on disk.

Alex
2011-11-22 15:55:00 -05:00
Alex Neundorf 74ab0f6aa4 automoc: move some code from the big parsing loop into separate functions
Alex
2011-11-22 21:35:08 +01:00
KWSys Robot 3bbe46daa2 KWSys Nightly Date Stamp 2011-11-22 00:05:06 -05:00
KWSys Robot ad9bffdc3c KWSys Nightly Date Stamp 2011-11-21 00:05:04 -05:00
KWSys Robot 6580434f16 KWSys Nightly Date Stamp 2011-11-20 00:05:04 -05:00
Alex Neundorf b0d01c306b cmake-gui: add completion for the names when adding cache entries
Up to 100 completion strings for the names of added variables
are saved in the settings, so it will remember the variables
you are usually adding.
It also ensures that CMAKE_INSTALL_PREFIX is always there, since
this is maybe the one which is set most often.

Alex
2011-11-19 22:21:41 +01:00
Alex Neundorf 08c59af4de Remove trailing whitespace
Alex
2011-11-19 22:19:48 +01:00
Alex Neundorf 982b766f29 Eclipse: use new variable CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT
Previously ECLIPSE_CDT4_GENERATE_SOURCE_PROJECT was used, but the
new name CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT is more in line with
the general naming conventions in cmake, and, more importantly IMO,
in cmake-gui it now appears right next to the other eclipse-related
variables, which all start with CMAKE_ECLIPSE_.

A warning is printed if the old variable is TRUE and the new one isn't,
so users should notice that they have to enable the new one.

Alex
2011-11-19 11:18:51 +01:00
Alex Neundorf 1110e455c2 Eclipse: create links to subprojects also in the source-project (#12579)
Alex
2011-11-19 11:01:03 +01:00
KWSys Robot fa878d27bf KWSys Nightly Date Stamp 2011-11-19 00:05:04 -05:00
David Cole 92af1dad06 CTest: Disallow problem chars in build and site names (#11792)
Also, use "(empty)" rather than actually sending an empty string
if build or site name is not set properly.
2011-11-18 17:13:07 -05:00
David Cole 46c70540ed VS: Use "call " keyword with .cmd and .bat file custom commands (#12445)
Similar fix to commit d093abef for the Makefile generators. Prevents
premature exit from sequence of commands. Even when no errors occur,
the previous construct without "call " was exiting the sequence before
executing the full set of commands...
2011-11-18 10:15:58 -05:00
KWSys Robot 8e1bbee4d9 KWSys Nightly Date Stamp 2011-11-18 00:05:04 -05:00
Brad King 0599c5f546 sha2: Zero entire SHA_CTX structure during cleanup
Convert lines of the form

  MEMSET_BZERO(context, sizeof(context));

to the correct form

  MEMSET_BZERO(context, sizeof(*context));

as suggested by Clang.
2011-11-17 11:18:08 -05:00
Brad King 0a6705cbda sha2: Suppress -Wcast-align warning from Clang
The code does contain a cast that increases alignment but only for
pointers into structures known to be sufficiently aligned.
2011-11-17 11:12:00 -05:00
Brad King 24b1feb5ca sha2: Cast safe conversions to smaller integer types
Add a cast to lines converting "uint64_t" to "unsigned int" that are
known safe due to use of modulus with a small integer.  This avoids
compiler warnings such as

  conversion from 'cm_sha2_uint64_t' to 'unsigned int',
  possible loss of data

from MSVC.
2011-11-17 11:07:43 -05:00
Brad King 1ec3fa00c9 Merge branch 'update-KWIML' into crypto-hash 2011-11-17 10:19:36 -05:00
KWSys Robot 21469b65dd KWSys Nightly Date Stamp 2011-11-17 00:05:11 -05:00
Alex Neundorf 72bb058e92 Automoc: modified handling of included .moc files
-enable the KDE4-compatiblity mode only when using Qt4
-always (except in the KDE4 compat mode) error out if a cpp-file
 contains "Q_OBJECT", but does not include filename.moc

Alex
2011-11-16 22:35:06 +01:00
Brad King 6495b595c4 cmCryptoHash: Add virtual destructor
Instances of this class are always subclasses.  Use a virtual destructor
to ensure the subclasses cleanup correctly.
2011-11-16 11:32:01 -05:00
Brad King 9fb1a9cf1d sha2: Wrap long lines in third-party declarations 2011-11-16 11:05:13 -05:00
Brad King b0853b5fae Disable file() and string() hash commands during bootstrap
We do not compile support for the cryptographic hashes during bootstrap.
Disable the APIs that use them.
2011-11-16 11:03:30 -05:00
Brad King 9da8340a6d sha2: Suppress Borland warnings in third-party code
The sha2 implementation performs cleanup on local variables.  Suppress
the warning instead of fixing it to minimize modification.
2011-11-16 10:54:56 -05:00
Brad King 23b3df76a0 sha2: Use KWIML fixed-size integer constant macros
Define SHA_UINT32_C and SHA_UINT64_C using the KWIML versions.
Use them in place of hard-coded UL and ULL constant suffixes.
2011-11-16 10:48:10 -05:00
Brad King 2e9c26cf96 Add string(MD5) and string(SHA*) commands to compute hashes
Provide a CMake-language binding to these cryptographic hashes.  Add a
string() command API for MD5, SHA1, SHA224, SHA256, SHA384, and SHA512.
2011-11-16 10:29:35 -05:00
Brad King 293a7f4e2a cmCryptoHash: Provide factory "New" method
Construct a cmCryptoHash subclass instance based on the name of the
desired hash algorithm.
2011-11-16 10:15:44 -05:00
Brad King 46ab0561fc sha2: Use "static const" instead of "const static" declarations
Fix old-style declarations in the original code.
2011-11-16 10:15:44 -05:00
Brad King 38771d3bdf Add file(SHA*) commands to compute cryptographic hashes
Add a file() command API for SHA1, SHA224, SHA256, SHA384, and SHA512.
2011-11-16 10:15:44 -05:00
Brad King 73efd4a504 sha2: Build as part of CMakeLib
Mangle sha2 symbols to avoid conflict with system libs.
2011-11-16 10:15:44 -05:00
Brad King c1856a33d4 sha2: Use KWIML fixed-size integer types and endian-ness
These are more portable than those named in the original sha2 code.
2011-11-16 10:15:44 -05:00
Brad King fcc3ce5b0d Merge branch 'import-sha2' into crypto-hash 2011-11-16 10:15:13 -05:00
Brad King 042f7965c3 Add file(MD5) command to compute cryptographic hash
Provide a CMake-language binding to the md5sum function previously
available only by "cmake -E md5sum".
2011-11-16 10:15:01 -05:00
Brad King ed7cef5634 Factor Compute(File|String)MD5 into cmCryptoHash helper
Define an abstract API around the backend hash algorithm.  Expose
ifstream errors to HashFile callers.  Always try opening the file.
Succeed only if the end of file is reached without error.
2011-11-16 10:14:53 -05:00
KWSys Robot cbf453eeb6 KWSys Nightly Date Stamp 2011-11-16 03:25:07 -05:00
David Cole 7efd93cd72 Merge topic 'vs-version-ivar'
c92ffec Enumerate VS11 version explicitly in local generators
1be4b6f Order VS local generator Version ivar values consistently
2011-11-15 14:39:25 -05:00
David Cole 1e055d374e Merge topic 'automoc_qt5'
bafe5cc Fix style.
74b9392 Update comments and method names to not be Qt4 specific.
812dab0 Don't assume the existence of QT_MAJOR_VERSION.
2011-11-15 14:39:00 -05:00
David Cole f1197ff0da Merge topic 'fix-11213-vs10-mfc-support'
537020f Tests: Nudge MFC test to pass on VS 6 dashboards (#11213)
51f442e VS11: Update InstallRequiredSystemLibraries.cmake for VS11 (#11213)
d85ab7a Tests: Add environment logging to the MFC test (#11213)
011694c VS10: Use expected values for UseOfMfc (#11213)
a2e6d24 Tests: Fix MFC test to work with VS 10 and later (#11213)
2011-11-15 14:38:56 -05:00
Brad King c92ffece80 Enumerate VS11 version explicitly in local generators
Since the parent commit the local generator Version ivar may be
compared for ordering.  Convert comparisons:

  "==VS10" becomes ">=VS10"
  "!=VS10" becomes "< VS10"

to support an explicit enumeration value for VS11 with no change
in behavior.
2011-11-14 09:50:47 -05:00
Brad King 1be4b6f463 Order VS local generator Version ivar values consistently
Move the Version member to the top cmLocalVisualStudioGenerator class
and set it consistently for instances created by all the global
generator versions.  Use an enumeration type with values scaled by a
factor of 10 so we can handle VS 7.1 without out-of-order numbers.

VS 7.1 support for SuppressStartupBanner was broken by commit 25116a3c
(Fix CMAKE_VERBOSE_MAKEFILE for VS10 vcxproj files, 2011-10-11) because
it assumed comparison of VS version numbers works.  Now it does.
2011-11-14 09:47:31 -05:00
KWSys Robot 590c37e207 KWSys Nightly Date Stamp 2011-11-14 00:05:04 -05:00
Brad King 5d6cb1308d KWSys: Fix wrong spelling of __INTEL_COMPILER
Author: Hans Johnson <hans-johnson@uiowa.edu>
Change-Id: I31a29a8b53e5262b76530b8ea80a1a66cff7b3f7
2011-11-13 12:35:04 -05:00
Brad King 2f8f7ec56a KWSys: Remove trailing whitespace in SystemTools.cxx 2011-11-13 12:25:05 -05:00
KWSys Robot 9aa10f8045 KWSys Nightly Date Stamp 2011-11-13 11:32:56 -05:00
KWSys Robot b90b6969f6 KWSys Nightly Date Stamp 2011-11-11 00:10:05 -05:00
Alex Neundorf e44ebd5f9b automoc: another runtime optimization
before doing the full regexp, try a simple strstr(), if this
already fails, no need to do the regexp matching.

Alex
2011-11-10 22:54:44 +01:00
Alex Neundorf 1423177828 automoc: minor optimization
Handing th std::string instead the char* to the find()
reduces the time from 17 to 15 seconds (for a 1000 times loop of a
relatively small file), which is around 10 percent.

Alex
2011-11-10 22:41:48 +01:00
Alex Neundorf f98e6151dc automoc: improved diagnostics
Error/warning messages now look like:
AUTOMOC: (error|warning): <filename>: the actual text...

Alex
2011-11-10 22:12:03 +01:00
Alex Neundorf 81c43b4fb6 automoc: handle the case when the developer includes the wrong mocfile
There are multiple/many places in KDE where the developer includes
moc_foo.cpp, and expects moc to run on foo.cpp, instead of foo.h.
He should use foo.moc, but right now this is handled by automoc4,
so we must stay compatible. So support this too, but warn about
it.

Alex
2011-11-10 22:12:03 +01:00