[cmake-developers] [CMake 0014490]: Wrong Windows SDK location detected

2013-10-17 Thread Mantis Bug Tracker

The following issue has been SUBMITTED. 
== 
http://public.kitware.com/Bug/view.php?id=14490 
== 
Reported By:Domagoj Saric
Assigned To:
== 
Project:CMake
Issue ID:   14490
Category:   CMake
Reproducibility:always
Severity:   major
Priority:   normal
Status: new
== 
Date Submitted: 2013-10-17 08:39 EDT
Last Modified:  2013-10-17 08:39 EDT
== 
Summary:Wrong Windows SDK location detected
Description: 
I use Visual Studio 2010 Express with SP1 and I installed the Windows SDK 7.1
into a non default/'standard' location (D:/3rdParty/WindowsSDK/7.1) yet CMake
reports:

Found Windows SDK v7.1: C:\Program Files\Microsoft SDKs\Windows\v7.1\

and then fails with:


CMake Error at C:/Program Files
(x86)/CMake/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:446
(execute_process):
  execute_process given COMMAND argument with no value.
Call Stack (most recent call first):
  C:/Program Files
(x86)/CMake/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:48
(CMAKE_DETERMINE_COMPILER_ID_VENDOR)
  C:/Program Files
(x86)/CMake/share/cmake-2.8/Modules/CMakeDetermineCXXCompiler.cmake:127
(CMAKE_DETERMINE_COMPILER_ID)
  CMakeLists.txt:62 (project)


ps. even if I did install it into the default location, the detected/reported
location would still be wrong because it point to the 64 bit Program Files
(whereas the SDK installs into the x86 version)

pps. I tried to solve the problem with directory symlinks but it did not help...
== 

Issue History 
Date ModifiedUsername   FieldChange   
== 
2013-10-17 08:39 Domagoj Saric  New Issue
==

--

Powered by www.kitware.com

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

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

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


Re: [cmake-developers] C++11 and target_compiler_feature proposal

2013-10-17 Thread Stephen Kelly
Stephen Kelly wrote:

 I'll try to get a reviewable and first-feature-complete infrastructure
 branch together soon.

I've pushed a first iteration of the target_compiler_features branch to my 
clone.

For the language specification, I added a prefix to each feature. This 
matches the feature tests of clang for standard features, and it is 
extensible to extensions with gnuxx_typeof, msvc_sealed etc.

 http://clang.llvm.org/docs/LanguageExtensions.html

So far, it only supports the REQUIRED signature of the command. 

It will need to get a PUBLIC|PRIVATE specifier, so that the 
INTERFACE_COMPILER_FEATURES property can be populated in PUBLIC mode. It 
also needs to learn to process generator expressions and how to consume that 
property.

Optional features with defines are not yet implemented. I was considering 
renaming target_compiler_features to target_required_features and not using 
the same command for optional features. Instead I think it might be a good 
idea to have a separate command for optional features. Something like:

 write_compiler_feature_file(
   FILENAME ${CMAKE_CURRENT_BINARY_DIR}/grantlee_compiler_features.h
   FEATURES cxx_static_assert gnuxx_typeof cxx_variadic_templates
 )
 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/grantlee_compiler_features.h
   DESTINATION include
 )

which writes the file with appropriate content. I don't see any need to use 
preprocessor macros for that instead of a file.

I also prototyped a simple way to test clang features as reportedly 
supported by clang itself. This won't get us all of the way there with 
clang, as some features (such as the gnu typeof extension) do not have 
support via __has_extension.

Additionally, I changed my mind on the issue of whether to bump the dialect 
to c++11 if the compiler supports the requested feature in c++98 mode. For 
example, cxx_variadic_templates would be in CMAKE_CXX98_COMPILER_FEATURES 
for GCC and clang, because both support variadic templates even when using 
the -std=c++98 dialect. This will still warn, but that's ok, I think.

Note that adding -std=c++11 is almost, but not quite, entirely source 
compatible.

For example, this will work with c++98, but errors with c++11:

 #define add_prefix(suf) pre_suf
 add_prefix(_end);

The feature can be extended for the C standard (89, 99, 11) features too as 
well as extensions.

Any comments so far?

Thanks,

Steve.



--

Powered by www.kitware.com

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

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

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


[cmake-developers] [CMake 0014491]: file(GLOB) and file(GLOB_RECURSE) indeterministic

2013-10-17 Thread Mantis Bug Tracker

The following issue has been SUBMITTED. 
== 
http://www.cmake.org/Bug/view.php?id=14491 
== 
Reported By:ingolf
Assigned To:
== 
Project:CMake
Issue ID:   14491
Category:   (No Category)
Reproducibility:always
Severity:   major
Priority:   normal
Status: new
== 
Date Submitted: 2013-10-17 11:02 EDT
Last Modified:  2013-10-17 11:02 EDT
== 
Summary:file(GLOB) and file(GLOB_RECURSE) indeterministic
Description: 
file(GLOB) and file(GLOB_RECURSE) have indeterministic behavior. Apparently, the
ordering of the files which match the specified pattern depends on the sequence
in which files are delivered by the file system.

While this might be on purpose, this should at least be clearly documented --
together with a proposal to use list(SORT) afterwards if a fixed ordering is
desired.

Nevertheless, I would expect the cmake output to be reproducible when all the
files involved in the project (including the cmake tool itself) as well as the
user environment variables have the same content.

Steps to Reproduce: 
Create an empty project directory with the following contents (all files can be
empty):
./f1.abx
./folder1/8764gh.abb
./folder1/q.ab0
./folder1/z.ab_
./folder2/.abz
./folder2/__.abd
./folder2/bea7.96.abc
./folder2/xcx.abcd
./fsbi213.ab
./z.ab5

Then use the following CMakeLists.txt:
88888888
cmake_minimum_required(VERSION 2.8)

file(GLOB FILES_LOCAL RELATIVE ${CMAKE_SOURCE_DIR} *.ab?)
message(STATUS Non-recursive: ${FILES_LOCAL})

file(GLOB_RECURSE FILES_RECURSE RELATIVE ${CMAKE_SOURCE_DIR} *.ab?)
message(STATUS Recursive: ${FILES_RECURSE})
88888888

On the same machine (with the same user environment), CMake might output

 -- Non-recursive: z.ab5;f1.abx
 -- Recursive:
z.ab5;folder1/8764gh.abb;folder1/q.ab0;folder1/z.ab_;f1.abx;folder2/.abz;folder2/bea7.96.abc;folder2/__.abd

when run in one folder and

 -- Non-recursive: f1.abx;z.ab5
 -- Recursive:
f1.abx;folder2/__.abd;folder2/.abz;folder2/bea7.96.abc;folder1/z.ab_;folder1/q.ab0;folder1/8764gh.abb;z.ab5

when run in another folder.
== 

Issue History 
Date ModifiedUsername   FieldChange   
== 
2013-10-17 11:02 ingolf New Issue
==

--

Powered by www.kitware.com

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

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

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


Re: [cmake-developers] Documentation or parse bug

2013-10-17 Thread Brad King
On 10/16/2013 02:40 PM, James Bigler wrote:
 The documentation for target_link_libraries has this description:
 
   target_link_libraries(target
 LINK_PRIVATE|LINK_PUBLIC
   [[debug|optimized|general] lib] ...
 [LINK_PRIVATE|LINK_PUBLIC
   [[debug|optimized|general] lib] ...])
 
 From my understanding I should be able to do this:
 
 target_link_libraries(target LINK_PRIVATE lib1 LINK_PRIVATE lib2)
 
 however CMake 2.8.11.2 returns:
 
 CMake Error at prime/CMakeLists.txt:128 (target_link_libraries):
   The LINK_PUBLIC or LINK_PRIVATE option must appear as the second argument,
   just after the target name.

Steve, I think this is a parsing problem here:

 
http://cmake.org/gitweb?p=cmake.git;a=blob;f=Source/cmTargetLinkLibrariesCommand.cxx;hb=v2.8.12#l151
 
http://cmake.org/gitweb?p=cmake.git;a=blob;f=Source/cmTargetLinkLibrariesCommand.cxx;hb=v2.8.12#l181

It should allow LINK_PUBLIC to occur after another LINK_PUBLIC,
and LINK_PRIVATE to occur after another LINK_PRIVATE.  Currently
it requires that they alternate.  Thew newer PUBLIC/PRIVATE/INTERFACE
options allow any order and repeats.

Thanks,
-Brad
--

Powered by www.kitware.com

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

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

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


Re: [cmake-developers] C++11 and target_compiler_feature proposal

2013-10-17 Thread Brad King
Hi Steve,

Thanks for working on this!

On 10/17/2013 10:28 AM, Stephen Kelly wrote:
 For the language specification, I added a prefix to each feature. This 
 matches the feature tests of clang for standard features, and it is 
 extensible to extensions with gnuxx_typeof, msvc_sealed etc.
 
  http://clang.llvm.org/docs/LanguageExtensions.html

Good idea.

 So far, it only supports the REQUIRED signature of the command. 
 
 It will need to get a PUBLIC|PRIVATE specifier, so that the 
 INTERFACE_COMPILER_FEATURES property can be populated in PUBLIC mode. It 
 also needs to learn to process generator expressions and how to consume that 
 property.

Yes.

 Optional features with defines are not yet implemented. I was considering 
 renaming target_compiler_features to target_required_features

I think target_compiler_features is a clearer name even if it only
supports required features.  Please leave room in the signature for
future expansion to optional features just in case.

 and not using the same command for optional features. Instead I think
 it might be a good idea to have a separate command for optional features.

FWIW, I thought he optional features with macros was quite elegant.
Also that approach didn't require header generation, right?  I have
no strong opinion on which approach is better, but here are some
comments.

What is an example use case for optional features?  What if a header
file selects an available optional feature when included by a .cxx
in the package's libraries, but not when it is later included by an
application?  Might that generate an ABI mismatch?

  write_compiler_feature_file(
FILENAME ${CMAKE_CURRENT_BINARY_DIR}/grantlee_compiler_features.h
FEATURES cxx_static_assert gnuxx_typeof cxx_variadic_templates
  )

IIUC this header will contain hard-coded preprocessor tests and present
the results in preprocessor symbols testable by the project.  Shouldn't
it take some kind of namespace prefix for those names?  Also this may
need the VERSION interface number previously discussed.

  install(FILES ${CMAKE_CURRENT_BINARY_DIR}/grantlee_compiler_features.h
DESTINATION include
  )

If the header is not in the public interface it need not be installed either.

 which writes the file with appropriate content. I don't see any need to use 
 preprocessor macros for that instead of a file.

That will also simplify consuming an interface without CMake because no
magic addition of preprocessor definitions will be needed.

 I also prototyped a simple way to test clang features as reportedly 
 supported by clang itself. This won't get us all of the way there with 
 clang, as some features (such as the gnu typeof extension) do not have 
 support via __has_extension.

Neat.  I see no reason Modules/FeatureTests/clang_feature_tests.cxx
can't be just Modules/Compiler/clang_feature_tests.cxx.  For those
features not covered by __has_extension we can list them explicitly.
You'll also have to deal with cases when CMAKE_CXX_COMPILER is not
set.  It should always be set at this point but we need to fail with
a readable explanation if it is not.

 Additionally, I changed my mind on the issue of whether to bump the dialect 
 to c++11 if the compiler supports the requested feature in c++98 mode. For 
 example, cxx_variadic_templates would be in CMAKE_CXX98_COMPILER_FEATURES 
 for GCC and clang, because both support variadic templates even when using 
 the -std=c++98 dialect. This will still warn, but that's ok, I think.
 
 Note that adding -std=c++11 is almost, but not quite, entirely source 
 compatible.

Okay.

 Any comments so far?

Should we memoize the language feature lists as std::set at the end of
cmGlobalGenerator::EnableLanguage to make lookup faster and avoid projects
corrupting the lists?

Thanks,
-Brad
--

Powered by www.kitware.com

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

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

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


Re: [cmake-developers] Documentation or parse bug

2013-10-17 Thread Stephen Kelly
Brad King wrote:

 On 10/16/2013 02:40 PM, James Bigler wrote:
 The documentation for target_link_libraries has this description:
 
   target_link_libraries(target
 LINK_PRIVATE|LINK_PUBLIC
   [[debug|optimized|general] lib] ...
 [LINK_PRIVATE|LINK_PUBLIC
   [[debug|optimized|general] lib] ...])
 
 From my understanding I should be able to do this:
 
 target_link_libraries(target LINK_PRIVATE lib1 LINK_PRIVATE lib2)
 
 however CMake 2.8.11.2 returns:
 
 CMake Error at prime/CMakeLists.txt:128 (target_link_libraries):
   The LINK_PUBLIC or LINK_PRIVATE option must appear as the second
   argument, just after the target name.
 
 Steve, I think this is a parsing problem here:
 
  
http://cmake.org/gitweb?p=cmake.git;a=blob;f=Source/cmTargetLinkLibrariesCommand.cxx;hb=v2.8.12#l151
  
http://cmake.org/gitweb?p=cmake.git;a=blob;f=Source/cmTargetLinkLibrariesCommand.cxx;hb=v2.8.12#l181
 
 It should allow LINK_PUBLIC to occur after another LINK_PUBLIC,
 and LINK_PRIVATE to occur after another LINK_PRIVATE.  Currently
 it requires that they alternate.  Thew newer PUBLIC/PRIVATE/INTERFACE
 options allow any order and repeats.

I pushed the allow-repeated-LINK-keywords to fix this.

Thanks,

Steve.


--

Powered by www.kitware.com

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

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

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


Re: [cmake-developers] C++11 and target_compiler_feature proposal

2013-10-17 Thread Stephen Kelly
Brad King wrote:

 Optional features with defines are not yet implemented. I was considering
 renaming target_compiler_features to target_required_features
 
 I think target_compiler_features is a clearer name even if it only
 supports required features.  Please leave room in the signature for
 future expansion to optional features just in case.

Ok. When PUBLIC|PRIVATE is part of it, that will be easy even if I remove 
REQUIRED.

 and not using the same command for optional features. Instead I think
 it might be a good idea to have a separate command for optional features.
 
 FWIW, I thought he optional features with macros was quite elegant.
 Also that approach didn't require header generation, right?

Correct.

 I have
 no strong opinion on which approach is better, but here are some
 comments.
 
 What is an example use case for optional features?

Adding a move constructor to a class. Many Qt classes have move constructors 
and they are inline and bounded by a define.

Another: Define Foo_OVERRIDE to either 'override' or nothing, depending on 
the using compiler capability.

 What if a header
 file selects an available optional feature when included by a .cxx
 in the package's libraries, but not when it is later included by an
 application?  Might that generate an ABI mismatch?

As far as I know, no. Things like r-value references, variadic templates etc 
would just be unavailable to the caller if not using a capable compiler. 
Things like final and override are not encoded into the ABI afaik. At least 
that seems to be the assumption Qt makes.

  write_compiler_feature_file(
FILENAME ${CMAKE_CURRENT_BINARY_DIR}/grantlee_compiler_features.h
FEATURES cxx_static_assert gnuxx_typeof cxx_variadic_templates
  )
 
 IIUC this header will contain hard-coded preprocessor tests and present
 the results in preprocessor symbols testable by the project.  Shouldn't
 it take some kind of namespace prefix for those names?  Also this may
 need the VERSION interface number previously discussed.

Oops, yes, you're right on both counts. I didn't re-read the previous thread 
before writing the above.

 
  install(FILES ${CMAKE_CURRENT_BINARY_DIR}/grantlee_compiler_features.h
DESTINATION include
  )
 
 If the header is not in the public interface it need not be installed
 either.

If the intention is to define Grantlee_OVERRIDE to either 'override' or 
nothing depending on the compiler capability, and to use classes using that 
define in the interface, then it does have to be installed.

 
 which writes the file with appropriate content. I don't see any need to
 use preprocessor macros for that instead of a file.
 
 That will also simplify consuming an interface without CMake because no
 magic addition of preprocessor definitions will be needed.

Yes.

 I also prototyped a simple way to test clang features as reportedly
 supported by clang itself. This won't get us all of the way there with
 clang, as some features (such as the gnu typeof extension) do not have
 support via __has_extension.
 
 Neat.  I see no reason Modules/FeatureTests/clang_feature_tests.cxx
 can't be just Modules/Compiler/clang_feature_tests.cxx.  For those
 features not covered by __has_extension we can list them explicitly.
 You'll also have to deal with cases when CMAKE_CXX_COMPILER is not
 set.  It should always be set at this point but we need to fail with
 a readable explanation if it is not.

Ok.

 Any comments so far?
 
 Should we memoize the language feature lists as std::set at the end of
 cmGlobalGenerator::EnableLanguage to make lookup faster and avoid projects
 corrupting the lists?

I'm not sure. We might not list a feature which a compiler has, either 
because the compiler release is newer than the cmake release, or because the 
compiler is unknown to us. 

In that case, being able to use 

 list(APPEND CMAKE_CXX_COMPILER_FEATURES cxx_variadic_templates)

would be useful.

Thanks,

Steve.


--

Powered by www.kitware.com

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

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

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


Re: [cmake-developers] Perforce Patch for CTest

2013-10-17 Thread Pedro Navarro
Ok, I have the patch working and I'm going to send it soon. One question,
is it possible to launch a detached process from within CMake? If I use
EXECUTE_PROCESS to start p4d, CMake waits for it to finish so -for now- I'm
launching the Perforce daemon outside CMake.

Pedro


On Wed, Oct 16, 2013 at 1:10 PM, Brad King brad.k...@kitware.com wrote:

 On 10/16/2013 03:11 PM, Pedro Navarro wrote:
  I was thinking that as the test requires the p4 tool to be installed,
  we might as well require also p4d (the server, which is now free for
  up to 20 users). In that case the test can bring up a local server
  and work against it which, in the end, will create less issues as
  the p4 database will be deleted when the test ends. If we work against
  a real production server we might not be able to use p4 obliterate
  and we will be leaving those temporary checkins the test does
  polluting the history, and that might not be desired.

 We definitely need the test to run against a fresh repository each
 time.  The other VCS tool tests all create local repos from scratch
 when they run.  Whatever you need to require to achieve this with
 P4 is acceptable.

 Thanks,
 -Brad

--

Powered by www.kitware.com

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

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

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

Re: [cmake-developers] Perforce Patch for CTest

2013-10-17 Thread Bill Hoffman

On 10/17/2013 1:52 PM, Pedro Navarro wrote:

Ok, I have the patch working and I'm going to send it soon. One
question, is it possible to launch a detached process from within CMake?
If I use EXECUTE_PROCESS to start p4d, CMake waits for it to finish so
-for now- I'm launching the Perforce daemon outside CMake.

Pedro

It is not possible to do this.  One work around is to put the start of 
the process in a shell script or bat file that is used to run the ctest 
script which is basically what you are doing.  :)



-Bill


--

Powered by www.kitware.com

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

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

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


Re: [cmake-developers] Perforce Patch for CTest

2013-10-17 Thread Brad King
On 10/17/2013 02:18 PM, Bill Hoffman wrote:
 On 10/17/2013 1:52 PM, Pedro Navarro wrote:
 Ok, I have the patch working and I'm going to send it soon. One
 question, is it possible to launch a detached process from within CMake?
 If I use EXECUTE_PROCESS to start p4d, CMake waits for it to finish so
 -for now- I'm launching the Perforce daemon outside CMake.

 It is not possible to do this.  One work around is to put the start of 
 the process in a shell script or bat file that is used to run the ctest 
 script which is basically what you are doing.  :)

If this is restricted to a UNIX-like environment one can use a shell
script that internally executes a background job, e.g.

 execute_process(COMMAND sh -c nohup p4d /dev/null 21 )

Actually the internal KWSys Process library used to implement the
execute_process command does know how to create and disown daemon
processes.  If necessary one could teach execute_process options to
trigger this behavior.

In either case there is no clear way to terminate the daemon when
the test is done.

-Brad
--

Powered by www.kitware.com

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

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

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


Re: [cmake-developers] Perforce Patch for CTest

2013-10-17 Thread Pedro Navarro
I experimented with nohup but from inside a shell script that was being
executed from execute_process, but that didn't work. I'll give that a try,
thanks!

There happens to be a way to cleanly shutdown perforce, executing p4 admin
stop, so this could mean that we can start p4d if it's present and on Unix
and exit and remote the database when the test finishes, which would be the
preferred approach.

Pedro


On Thu, Oct 17, 2013 at 11:44 AM, Brad King brad.k...@kitware.com wrote:

 On 10/17/2013 02:18 PM, Bill Hoffman wrote:
  On 10/17/2013 1:52 PM, Pedro Navarro wrote:
  Ok, I have the patch working and I'm going to send it soon. One
  question, is it possible to launch a detached process from within CMake?
  If I use EXECUTE_PROCESS to start p4d, CMake waits for it to finish so
  -for now- I'm launching the Perforce daemon outside CMake.
 
  It is not possible to do this.  One work around is to put the start of
  the process in a shell script or bat file that is used to run the ctest
  script which is basically what you are doing.  :)

 If this is restricted to a UNIX-like environment one can use a shell
 script that internally executes a background job, e.g.

  execute_process(COMMAND sh -c nohup p4d /dev/null 21 )

 Actually the internal KWSys Process library used to implement the
 execute_process command does know how to create and disown daemon
 processes.  If necessary one could teach execute_process options to
 trigger this behavior.

 In either case there is no clear way to terminate the daemon when
 the test is done.

 -Brad

--

Powered by www.kitware.com

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

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

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

Re: [cmake-developers] Perforce Patch for CTest

2013-10-17 Thread Brad King
On 10/17/2013 03:23 PM, Pedro Navarro wrote:
 I experimented with nohup but from inside a shell script
 that was being executed from execute_process, but that didn't work.

You also need to disconnect the stdout/stderr pipes by redirecting
them to /dev/null.  Then execute_process can fully let go because
the pipes it uses to communicate with the child will be closed when
the shell exits.

-Brad
--

Powered by www.kitware.com

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

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

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


Re: [cmake-developers] cmake --find-package (was: Roadmap to CMake 3.0)

2013-10-17 Thread Brad King
On 10/17/2013 04:58 PM, Alexander Neundorf wrote:
 Yes, that was the idea, but I can't rely anymore on a Foo_LIBRARIES variable 
 (or a slight variation) being set after a successful find_package(Foo):
 http://lists.kde.org/?l=kde-core-develm=138198795723680w=2
 I.e. in the future there will be Find-modules which typically export one of
 (Foo|FOO)_(LIBRARIES|LIBRARY), some Config.cmake files which do that too, and 
 a big number, probably majority, of Config.cmake files, which do not export 
 such variables.
 
 The only chance I see would be to simply collect all library targets and 
 return what they provide, but this doesn't feel good. I would have much 
 prefered using a clear interface like the Foo_LIBRARIES variable.

Perhaps we need to establish a convention for find modules and package
configuration files to interact with --find-package mode.  I have no
thoughts on the specifics of how that would work though.

-Brad
--

Powered by www.kitware.com

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

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

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


Re: [cmake-developers] cmake --find-package (was: Roadmap to CMake 3.0)

2013-10-17 Thread Stephen Kelly
Brad King wrote:

 On 10/17/2013 04:58 PM, Alexander Neundorf wrote:
 Yes, that was the idea, but I can't rely anymore on a Foo_LIBRARIES
 variable (or a slight variation) being set after a successful
 find_package(Foo):
 http://lists.kde.org/?l=kde-core-develm=138198795723680w=2 I.e. in the
 future there will be Find-modules which typically export one of
 (Foo|FOO)_(LIBRARIES|LIBRARY), some Config.cmake files which do that too,
 and a big number, probably majority, of Config.cmake files, which do not
 export such variables.
 
 The only chance I see would be to simply collect all library targets and
 return what they provide, but this doesn't feel good. I would have much
 prefered using a clear interface like the Foo_LIBRARIES variable.
 
 Perhaps we need to establish a convention for find modules and package
 configuration files to interact with --find-package mode.  I have no
 thoughts on the specifics of how that would work though.

A new, similar --find-target mode or similar may be more appropriate:

 cmake --find-target --package Qt5Widgets --target Qt5::Widgets ...

 # KF5Config exports 3 independent targets:
 cmake --find-target --package KF5Config --target KF5::ConfigCore ...
 cmake --find-target --package KF5Config --target KF5::ConfigGui ...
 cmake --find-target --package KF5Config --target KF5::ConfigWidgets ...

Thanks,

Steve.


--

Powered by www.kitware.com

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

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

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


Re: [cmake-developers] CTest: Request review of topic ctest-fix-run-serial

2013-10-17 Thread Bill Hoffman

On 10/17/2013 4:41 PM, Nils Gladitz wrote:


I pushed my topic ctest-fix-run-serial to stage.
I am taking a look.   It has been a long time since I looked at this 
code.  However, it seems like your patch removes the running of 
dependent tests.


old code did this:
StartTest(int test)
 ...
 foreach d in depend tests of test
startTests


New code removes that.   I guess it depends on SortedTests having taken 
depends into consideration, which I am not seeing.  However, I might be 
missing something


What was your thinking on this?

-Bill

--

Powered by www.kitware.com

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

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

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


Re: [cmake-developers] Perforce Patch for CTest

2013-10-17 Thread Bill Hoffman

On 10/17/2013 4:59 PM, Brad King wrote:

As I explained in a sibling response the KWSys Process library
has support for creating detached processes.  It should only be
a matter of exposing that through execute_process command options.
+1, this does come up a lot.   It would be good to have this exposed in 
the API.


-Bill

--

Powered by www.kitware.com

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

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

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


Re: [cmake-developers] CTest: Request review of topic ctest-fix-run-serial

2013-10-17 Thread Nils Gladitz

Hello Bill, thanks for looking into this!

All four tests in my example are still run (as you can see in the test 
output I provided).

This includes the dependent test.

What I did change is that all tests (from an dependency or otherwise) 
are run from StartNextTests() which ensures that serial tests run alone 
rather than from StartTest() which did not seem to account for this.


Nils


On 17.10.2013 23:19, Bill Hoffman wrote:

On 10/17/2013 4:41 PM, Nils Gladitz wrote:


I pushed my topic ctest-fix-run-serial to stage.
I am taking a look.   It has been a long time since I looked at this 
code.  However, it seems like your patch removes the running of 
dependent tests.


old code did this:
StartTest(int test)
 ...
 foreach d in depend tests of test
startTests


New code removes that.   I guess it depends on SortedTests having 
taken depends into consideration, which I am not seeing.  However, I 
might be missing something


What was your thinking on this?

-Bill

--

Powered by www.kitware.com

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


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


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


--

Powered by www.kitware.com

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

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

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


Re: [cmake-developers] CTest: Request review of topic ctest-fix-run-serial

2013-10-17 Thread Bill Hoffman
On Thu, Oct 17, 2013 at 5:31 PM, Nils Gladitz nilsglad...@gmail.com wrote:

 Hello Bill, thanks for looking into this!

 All four tests in my example are still run (as you can see in the test
 output I provided).
 This includes the dependent test.

 What I did change is that all tests (from an dependency or otherwise) are
 run from StartNextTests() which ensures that serial tests run alone rather
 than from StartTest() which did not seem to account for this.

I am not saying it won't run all of the tests.  I am saying there is a
danger it will ignore the depends with your change and run a depend before
the test that depends on it.  I don't see it using the depends in the sort.
 Maybe a better fix would be to make sure the sort takes the depends into
consideration.

Or, just change the depend starting in StartTest to make sure it does not
start a serial test with another test running.

-Bill
--

Powered by www.kitware.com

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

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

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

Re: [cmake-developers] CTest: Request review of topic ctest-fix-run-serial

2013-10-17 Thread Nils Gladitz
StartTest() returns false without running the test if there are any 
dependencies remaining.


Nils

On 17.10.2013 23:57, Bill Hoffman wrote:
On Thu, Oct 17, 2013 at 5:31 PM, Nils Gladitz nilsglad...@gmail.com 
mailto:nilsglad...@gmail.com wrote:


Hello Bill, thanks for looking into this!

All four tests in my example are still run (as you can see in the
test output I provided).
This includes the dependent test.

What I did change is that all tests (from an dependency or
otherwise) are run from StartNextTests() which ensures that serial
tests run alone rather than from StartTest() which did not seem to
account for this.

I am not saying it won't run all of the tests.  I am saying there is a 
danger it will ignore the depends with your change and run a depend 
before the test that depends on it.  I don't see it using the depends 
in the sort.  Maybe a better fix would be to make sure the sort takes 
the depends into consideration.


Or, just change the depend starting in StartTest to make sure it does 
not start a serial test with another test running.


-Bill


--

Powered by www.kitware.com

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

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

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

Re: [cmake-developers] Perforce Patch for CTest

2013-10-17 Thread Matthew Woehlke

On 2013-10-17 16:59, Brad King wrote:

On 10/17/2013 04:56 PM, Rolf Eike Beer wrote:

We should think if this should be something that is needed. Running some sort
of background process is a common pattern for all sorts of tests. Often really
detaching is not needed, It is usually sufficient to have one process running in
the background while the tests runs.


As I explained in a sibling response the KWSys Process library
has support for creating detached processes.  It should only be
a matter of exposing that through execute_process command options.


Probably not a bad idea. Does KWSys get the resulting PID? If yes, it 
might be good to have a way to pass that back into CMake in order to 
also add a kill_process command at the same time in order to have a 
general way to stop processes launched in the background. (And/or a 
wait_process, etc.)


Something to keep in mind...

--
Matthew

--

Powered by www.kitware.com

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

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

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