Re: [cmake-developers] Add command line options for deprecation message control

2015-06-23 Thread Brad King
On 06/22/2015 03:56 PM, Michael Scott wrote:
 the actual and expected values are identical. Why would this happen?

The expected value file is actually a regular expression that must
match the actual value.  This allows it to tolerate path differences
and other minor variations in the actual output.  Any regex meta-chars
need to be escaped in the -stderr.txt file.  Take a look at the code
in Tests/RunCMake/RunCMake.cmake to see the transformations done.

Thanks,
-Brad

-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake-developers


[cmake-developers] [CMake 0015626]: 3.3-rc2 segfault (regression)

2015-06-23 Thread Mantis Bug Tracker

The following issue has been SUBMITTED. 
== 
https://public.kitware.com/Bug/view.php?id=15626 
== 
Reported By:Andrew Fuller
Assigned To:
== 
Project:CMake
Issue ID:   15626
Category:   CMake
Reproducibility:always
Severity:   crash
Priority:   high
Status: new
== 
Date Submitted: 2015-06-23 13:49 EDT
Last Modified:  2015-06-23 13:49 EDT
== 
Summary:3.3-rc2 segfault (regression)
Description: 
Manipulating a target that was first created in a different directory branch
causes a segfault.


Steps to Reproduce: 
1. Create the following CMake files:

$ tree
.
├── CMakeLists.txt
├── dirA
│   └── CMakeLists.txt
└── dirB
└── CMakeLists.txt

$ cat CMakeLists.txt 

add_subdirectory( dirA )
add_subdirectory( dirB )

$ cat dirA/CMakeLists.txt 

add_library( foo INTERFACE )

$ cat dirB/CMakeLists.txt 

target_link_libraries( foo INTERFACE ${CMAKE_DL_LIBS} )

2. Configure
$ mkdir build  cd build  cmake ..
[...]
[1]6691 segmentation fault (core dumped)  cmake ..


Additional Information: 
This works fine with CMake 3.2.1.
== 

Issue History 
Date ModifiedUsername   FieldChange   
== 
2015-06-23 13:49 Andrew Fuller  New Issue
==

-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake-developers

Re: [cmake-developers] Incorrect path handling in generation of export files

2015-06-23 Thread Brad King
On 06/22/2015 05:00 PM, Dan Liew wrote:
 One of the libraries listed in the INTERFACE_LINK_LIBRARIES has
 invalid syntax because the slashes have not been escaped. I believe
 the correct solution would be to have CMake convert all paths to CMake
 style paths before writing them to export files.

If we were to take that approach the conversion would need to take
place much earlier so that the in-build targets behave the same
way.  For now the simplest thing to do is fix the escaping of the
export files because that needs to be done anyway.

  Source/cmExportFileGenerator.cxx
  Source/cmExportBuildFileGenerator.cxx
  Source/cmExportInstallFileGenerator.cxx
 
 in the CMake source tree.  There are several places that just generate
 double quotes around a raw value that should instead use EscapeForCMake.

Here is a fix and a test:

 Export: Escape exported property values when writing CMake language files
 http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c47cc249

Thanks,
-Brad

-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake-developers


[cmake-developers] Add command line options for deprecation message control

2015-06-23 Thread Michael Scott

Hi,

I've implemented some changes to cmake.cxx and cmake.h, to implement 
setting the CMAKE_ERROR_DEPRECATED and CMAKE_WARN_DEPRECATED variables 
via command line options, for the Mantis issue 0014669, in a generic GCC 
style pattern. I've taken on board the previous suggestions, including 
adding tests for the new options and updating the cmake application 
options documentation. I've attached the proposed patch to this email, 
please let me know if there are any incorrect changes in the patch.


Michael Scott
From 2fc8c47ff2112a1f28d4f3c8513e29c94ecb6a9d Mon Sep 17 00:00:00 2001
From: Michael Scott michael.scott...@gmail.com
Date: Sat, 13 Jun 2015 18:34:31 +0100
Subject: [PATCH] Refactored the -Wdev and -Wno-dev to use a generic -W parser,
 which follows the GCC pattern. Included support for setting
 CMAKE_ERROR_DEPRECATED and CMAKE_WARN_DEPRECATED via the deprecated warning.
 Added tests for new options and updated cmake application documentation to
 list new options.

---
 Help/manual/OPTIONS_BUILD.txt  |  25 +
 Source/cmake.cxx   | 107 +
 Source/cmake.h |  23 +++--
 Tests/RunCMake/CommandLine/RunCMakeTest.cmake  |  20 
 Tests/RunCMake/CommandLine/W_bad-arg1-result.txt   |   1 +
 Tests/RunCMake/CommandLine/W_bad-arg1-stderr.txt   |   2 +
 Tests/RunCMake/CommandLine/W_bad-arg2-result.txt   |   1 +
 Tests/RunCMake/CommandLine/W_bad-arg2-stderr.txt   |   2 +
 Tests/RunCMake/CommandLine/W_bad-arg3-result.txt   |   1 +
 Tests/RunCMake/CommandLine/W_bad-arg3-stderr.txt   |   2 +
 Tests/RunCMake/CommandLine/Wdeprecated-stderr.txt  |   4 +
 Tests/RunCMake/CommandLine/Wdeprecated.cmake   |   1 +
 .../CommandLine/Werror_deprecated-result.txt   |   1 +
 .../CommandLine/Werror_deprecated-stderr.txt   |   4 +
 Tests/RunCMake/CommandLine/Werror_deprecated.cmake |   1 +
 Tests/RunCMake/CommandLine/Wno-deprecated.cmake|   1 +
 .../CommandLine/Wno-error_deprecated.cmake |   1 +
 17 files changed, 171 insertions(+), 26 deletions(-)
 create mode 100644 Tests/RunCMake/CommandLine/W_bad-arg1-result.txt
 create mode 100644 Tests/RunCMake/CommandLine/W_bad-arg1-stderr.txt
 create mode 100644 Tests/RunCMake/CommandLine/W_bad-arg2-result.txt
 create mode 100644 Tests/RunCMake/CommandLine/W_bad-arg2-stderr.txt
 create mode 100644 Tests/RunCMake/CommandLine/W_bad-arg3-result.txt
 create mode 100644 Tests/RunCMake/CommandLine/W_bad-arg3-stderr.txt
 create mode 100644 Tests/RunCMake/CommandLine/Wdeprecated-stderr.txt
 create mode 100644 Tests/RunCMake/CommandLine/Wdeprecated.cmake
 create mode 100644 Tests/RunCMake/CommandLine/Werror_deprecated-result.txt
 create mode 100644 Tests/RunCMake/CommandLine/Werror_deprecated-stderr.txt
 create mode 100644 Tests/RunCMake/CommandLine/Werror_deprecated.cmake
 create mode 100644 Tests/RunCMake/CommandLine/Wno-deprecated.cmake
 create mode 100644 Tests/RunCMake/CommandLine/Wno-error_deprecated.cmake

diff --git a/Help/manual/OPTIONS_BUILD.txt b/Help/manual/OPTIONS_BUILD.txt
index 4207db4..62eeb09 100644
--- a/Help/manual/OPTIONS_BUILD.txt
+++ b/Help/manual/OPTIONS_BUILD.txt
@@ -84,3 +84,28 @@
 
  Enable warnings that are meant for the author of the CMakeLists.txt
  files.
+
+``-Wdeprecated``
+ Enable deprecated macro and function warnings.
+
+ Enable warnings for usage of deprecated macros and functions, that are meant 
+ for the author of the CMakeLists.txt files. 
+
+``-Wno-deprecated``
+ Suppress deprecated macro and function warnings.
+ 
+ Suppress warnings for usage of deprecated macros and functions, that are 
meant 
+ for the author of the CMakeLists.txt files. 
+
+``-Werror=deprecated``
+ Make deprecated macro and function warnings errors.
+
+ Make warnings for usage of deprecated macros and functions, that are meant 
+ for the author of the CMakeLists.txt files, errors. 
+
+``-Wno-error=deprecated``
+ Make deprecated macro and function warnings not errors.
+ 
+ Make warnings for usage of deprecated macros and functions, that are meant 
+ for the author of the CMakeLists.txt files, not errors. 
+ 
\ No newline at end of file
diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index eeb6575..54317ae 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -125,8 +125,6 @@ cmake::cmake()
   this-WarnUnused = false;
   this-WarnUnusedCli = true;
   this-CheckSystemVars = false;
-  this-SuppressDevWarnings = false;
-  this-DoSuppressDevWarnings = false;
   this-DebugOutput = false;
   this-DebugTryCompile = false;
   this-ClearBuildSystem = false;
@@ -251,15 +249,69 @@ bool cmake::SetCacheArgs(const std::vectorstd::string 
args)
 return false;
 }
   }
-else if(arg.find(-Wno-dev,0) == 0)
+else if(cmHasLiteralPrefix(arg, -W))
   {
-  this-SuppressDevWarnings = true;
-  this-DoSuppressDevWarnings = true;
+  std::string entry = arg.substr(2);
+  if (entry.empty())
+{
+++i;
+if (i  

[cmake-developers] [CMake 0015628]: CMake needs to request root privileges in order to install command-line tools

2015-06-23 Thread Mantis Bug Tracker

The following issue has been SUBMITTED. 
== 
http://public.kitware.com/Bug/view.php?id=15628 
== 
Reported By:Guy Harris
Assigned To:
== 
Project:CMake
Issue ID:   15628
Category:   CMake
Reproducibility:N/A
Severity:   minor
Priority:   normal
Status: new
== 
Date Submitted: 2015-06-23 17:52 EDT
Last Modified:  2015-06-23 17:52 EDT
== 
Summary:CMake needs to request root privileges in order to
install command-line tools
Description: 
Even if you try to install them in /usr/local/bin (which should be the case in
*all* versions of OS X, and really needs to be the case in 10.11, as per the
other issue I filed), you need root privileges to do so, and CMake doesn't do
anything to install the symlinks as root.

Steps to Reproduce: 
1. Start CMake.

2. Select Install For Command Line Use from the Tools menu.

3. Fix it to install in /usr/local/bin rather than /usr/bin.

4. Click Install Command Line Links.

5. Notice the lack of any prompt for your password, as would be required if it
were requesting root privileges (and you hadn't done so in the last few
minutes).

6. Notice the set of Failed create symlink installation may be incomplete:
/usr/local/bin/... messages.
== 

Issue History 
Date ModifiedUsername   FieldChange   
== 
2015-06-23 17:52 Guy Harris New Issue
==

-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake-developers


[cmake-developers] [CMake 0015629]: A way to install the command-line tool links from the command line would be useful

2015-06-23 Thread Mantis Bug Tracker

The following issue has been SUBMITTED. 
== 
http://public.kitware.com/Bug/view.php?id=15629 
== 
Reported By:Guy Harris
Assigned To:
== 
Project:CMake
Issue ID:   15629
Category:   CMake
Reproducibility:N/A
Severity:   feature
Priority:   normal
Status: new
== 
Date Submitted: 2015-06-23 17:56 EDT
Last Modified:  2015-06-23 17:56 EDT
== 
Summary:A way to install the command-line tool links from
the command line would be useful
Description: 
Now that you no longer have an installer package for OS X, the command-line
tools have to be installed by running CMake through the GUI.

For Wireshark, we have a script for OS X to install stuff for building Wireshark
from source.  That script downloads and installs CMake, which isn't *required*
yet but is *supported* (and may eventually become the default or only tool for
building).

It'd be nice if it could run some program to install the command-line tools.

(Wireshark also has command-line tools, but that's one of the reasons we *don't*
do drag-install.  The other is that we also install a launchd launch daemon to
make it possible to capture traffic without root privileges.)
== 

Issue History 
Date ModifiedUsername   FieldChange   
== 
2015-06-23 17:56 Guy Harris New Issue
==

-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake-developers