Commit Graph

105 Commits

Author SHA1 Message Date
Stephen Kelly 7e24997fed GenerateExportHeader: Generate only C identifiers as defines
The variables in this module are used to configure a header file
with defines whose name depends on the name of the target.

As valid names of targets may be invalid for use as defines, convert
the names of the defines used to C identifiers first. This is already
done in C++ code for the DEFINE_SYMBOL property.

This is not as simple as ensuring that the BASE_NAME is a C identifier,
because most of the define names are configurable, and because use of
a BASE_NAME which is not a C identifier, such as 4square can become a
C identifier by specifying a prefix in the generate_export_header
macro.
2013-05-24 09:09:43 -04:00
Stephen Kelly 74f24b2842 Tests/Module/GenerateExportHeader: Test exported free-function 2013-05-24 09:04:35 -04:00
Stephen Kelly bb412d009a GenerateExportHeader: Add newlines to separate the compiler output.
Make the error logs more readable.
2013-05-23 07:47:25 +02:00
Brad King 1823ab4d76 ExternalData: Preserve escaped semicolons during argument expansion
The CMake language implicitly flattens lists so a ";" in a list element
must be escaped with a backslash.  List expansion removes backslashes
escaping semicolons to leave raw semicolons in the values.  Teach
ExternalData_Add_Test and ExternalData_Expand_Arguments to re-escape
semicolons found in list elements so the resulting argument lists work
as if constructed directly by the set() command.

For example:

  ExternalData_Add_Test(Data NAME test1 COMMAND ... "a\\;b")
  ExternalData_Expand_Arguments(Data args2 "c\\;d")
  add_test(NAME test2 COMMAND ... ${args2})

should be equivalent to

  set(args1 "a\\;b")
  add_test(NAME test1 COMMAND ... ${args1})
  set(args2 "c\\;d")
  add_test(NAME test2 COMMAND ... ${args2})

which is equivalent to

  add_test(NAME test1 COMMAND ... "a;b")
  add_test(NAME test2 COMMAND ... "c;d")

Note that it is not possible to make ExternalData_Add_Test act exactly
like add_test when quoted arguments contain semicolons because the CMake
language flattens lists when constructing function ARGN values.  This
re-escape approach at least allows test arguments to have semicolons.

While at it, teach ExternalData APIs to not transform "DATA{...;...}"
arguments because the contained semicolons are non-sensical.

Suggested-by: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>
2013-03-12 16:33:19 -04:00
Brad King 55f0148d7b ExternalData: Test content link with a space in its name
Extend the Module.ExternalData test to cover a DATA{} reference whose
name contains a space.  Skip the case when the native build tool does
not support spaces.
2013-02-22 08:25:06 -05:00
Brad King aed590a7e0 Fix Module.ExternalData test on Cygwin
In ExternalData_URL_TEMPLATES add a leading slash to the path after
file:// only if the path does not already start with one.
2013-02-04 15:19:49 -05:00
Brad King e2e0d2e3c7 ExternalData: Collapse ../ components in DATA{} paths
Relative path components need to be normalized out even if they appear
in the middle of a caller-supplied string.
2013-01-30 14:55:12 -05:00
Brad King ee2abfdc89 ExternalData: Add support for SHA 1 and 2 hash algorithms
Update the Module.ExternalData and RunCMake.ExternalData tests to cover
some of them.
2013-01-30 10:05:07 -05:00
Brad King 9e518a8169 ExternalData: Allow DATA{} syntax to reference directories
Use a trailing slash to reference a directory.  Require that a list
of associated files be specified to select from within the directory.
One may simply use DATA{Dir/,REGEX:.*} to reference all files but
get a directory passed on the command line.
2013-01-30 10:05:07 -05:00
Brad King 175ed02207 ExternalData: Allow ()-groups in series match regex
Refactor use of the ExternalData_SERIES_MATCH value to avoid assuming
that it has no ()-groups that interfere with group indexing.

Extend the Module.ExternalData test to cover this case.
2013-01-30 10:05:07 -05:00
Brad King 4befecc77c ExternalData: Add tests covering interfaces and errors
Add a Module.ExternalData test to verify data retrieval and test
argument DATA{} references.

Add a RunCMake.ExternalData test to verify error handling and automatic
transformation of a raw data to a content link and staged object.
2013-01-30 10:04:54 -05:00
Rolf Eike Beer c6fed68ef8 CheckTypeSize: add a test for size of struct members 2012-08-14 21:14:33 +02:00
Rolf Eike Beer 8de3b3d13e CheckCXXCompilerFlag test: make it a CMakeOnly test 2012-01-30 19:42:51 +01:00
Rolf Eike Beer 0541a03a4c GenerateExportHeader test: add newlines before end of file 2012-01-18 00:01:08 +01:00
Stephen Kelly 08271ec7d3 Build each library only once instead of once for each test. 2011-10-09 17:41:47 +02:00
Stephen Kelly c83cfd7a01 Remove unused define. 2011-10-09 17:39:24 +02:00
Stephen Kelly 93d8d1992e Add some more unit tests. 2011-09-02 10:18:24 +02:00
Stephen Kelly 36d28f2e6b Fix Compiler id variable name. 2011-08-24 20:21:30 +02:00
Stephen Kelly 99b2aabd46 Disable the tests for Watcom.
They are timing out and showing up on the dashboard.
2011-08-24 19:58:00 +02:00
Stephen Kelly 7ac0ab1f88 Quote paths in case there is a space in one of them. 2011-08-24 19:50:31 +02:00
Stephen Kelly e253348ecd Possibly fix test on HPUX. 2011-08-23 19:49:52 +02:00
Stephen Kelly 42154ec01c Fix up the regex command for Intel. 2011-08-18 13:29:06 +02:00
Stephen Kelly a147a069a5 Add some settings for non-truncation of test output. 2011-08-17 14:03:12 +02:00
Stephen Kelly bf73e75941 Hopefully add version extraction for Intel. 2011-08-17 13:37:57 +02:00
Stephen Kelly aa4f0b6ba8 Fix the version extraction regex for clang. 2011-08-17 13:32:48 +02:00
Stephen Kelly a493d1a353 Test the correct cxx variable. 2011-08-17 13:32:20 +02:00
Stephen Kelly b6ee2ee03a Comment the test assertion for now
At least until I know which gcc versions do not pass.
2011-08-17 02:42:09 +02:00
Stephen Kelly a9a8b9e8d1 Exclude win32 from hidden visibility checks. 2011-08-17 02:40:56 +02:00
Stephen Kelly afae7a95a0 Start testing expected values for compiler flags.
Should help catch unhandled flag warnings so far not handled by
check_cxx_compiler_flag FAIL_REGEXen.
2011-08-17 02:36:22 +02:00
Stephen Kelly 10d8c446d5 Disable testing of deprecated macros.
It is not possible to test for it sanely across multiple ancient
compilers supported by cmake.
2011-08-14 15:45:36 +02:00
Stephen Kelly c41c68bfa4 Try to error on deprecated on Intel and SunCC. 2011-08-13 23:49:17 +02:00
Stephen Kelly c448b09ad3 Perform the -Werror test only once.
This way, the output of the test should be visible on CDash.
2011-08-13 22:57:55 +02:00
Stephen Kelly fb88c6e32a Add some messaging output to make remaining issues findable. 2011-08-12 11:39:21 +02:00
Stephen Kelly 01e9e983e3 Test -Werror instead of enabling it per compiler.
Maybe the Intel compiler supports it too.
2011-08-12 10:47:08 +02:00
Stephen Kelly 9aab2aa77f Expect the tests to pass if hidden visibilty is not enabled. 2011-08-12 10:42:16 +02:00
Stephen Kelly 856bdb317b Don't change the expected build result based on the platform.
Hopefully the compiler feature tests will cover those cases.
2011-08-12 00:30:31 +02:00
Stephen Kelly e1f7ee3de7 Test for compiler features, instead of for specific platforms. 2011-08-11 19:06:23 +02:00
Stephen Kelly 9554e1013e Split the deprecated available check from setting macro values. 2011-08-11 18:17:12 +02:00
Stephen Kelly 1590d5fe4f Don't export methods on already exported classes.
This is always a mistake.
2011-08-11 10:55:12 +02:00
Stephen Kelly 1c6b41bee7 Remember to surround the other deprecated test in the Borland check. 2011-08-11 00:19:53 +02:00
Stephen Kelly 3f7e03643d Export deprecated free methods too.
That way they can be linked to even after being deprecated.
2011-08-11 00:18:33 +02:00
Stephen Kelly 7924c1d6a8 Another attempt at fixing Borland.
Apparently it still needs to be exported, but only declspec(deprecated)
does not work.
2011-08-10 22:19:39 +02:00
Stephen Kelly b4434591fb Use the correct project name compiletest not compilefail
Should fix windows VS solution based builds.
2011-08-10 21:50:06 +02:00
Stephen Kelly cff9493598 Only set the COMPILER_HAS_HIDDEN_VISIBILITY if GCC >= 4.2
Hearsay has it that before that version it didn't work properly.

Hopefully this will fix more dashboard builds.
2011-08-10 21:14:46 +02:00
Stephen Kelly af443b830b Set the CMAKE_RUNTIME_OUTPUT_DIRECTORY for windows builds. 2011-08-10 21:01:42 +02:00
Stephen Kelly 61726f867e Only run the failure tests with gcc >= 4.2 2011-08-10 15:17:01 +02:00
Stephen Kelly 002ddf253c Fix typo and tests failing as a result. 2011-08-10 14:58:00 +02:00
Stephen Kelly 44430379b7 Fix tests with clang. 2011-08-10 13:43:48 +02:00
Stephen Kelly ffaa127b19 Test expected no-op instead of aborting the build.
Aborting causes make clean to fail if the executable is not created.
2011-08-10 11:54:35 +02:00
Stephen Kelly 6aca0e257b Short-circuit the tests on unsupported compilers. 2011-08-10 10:41:38 +02:00
Stephen Kelly 706ed2b1b0 Add a newline at the end of the file.
Hopefully fix the test execution reported on CDash.
2011-08-09 15:02:48 +02:00
Stephen Kelly 8963716615 Add a newline at the end of the file.
Hopefully fix the test execution reported on CDash.
2011-08-09 00:18:00 +02:00
Stephen Kelly def0a54e0a Handle the case where the user changes the DEFINE_SYMBOL property.
This eases porting of KDE code.
2011-08-08 02:08:10 +02:00
Stephen Kelly 30880707c0 Add the GenerateExportMacro with unit tests.
Reviewed-by: Marcus D. Hanwell <marcus.hanwell@kitware.com>
2011-08-07 18:33:47 +02:00
Brad King 11e6b513c2 Test the CheckTypeSize module
We create test "Module.CheckTypeSize" to verify that type sizes get
detected correctly.
2009-12-17 15:15:34 -05:00