[cmake-developers] [CMake 0014641]: FindMatlab.cmake is outdated/broken

2013-12-09 Thread Mantis Bug Tracker

The following issue has been SUBMITTED. 
== 
http://www.cmake.org/Bug/view.php?id=14641 
== 
Reported By:kentwilliams
Assigned To:
== 
Project:CMake
Issue ID:   14641
Category:   CMake
Reproducibility:always
Severity:   major
Priority:   normal
Status: new
== 
Date Submitted: 2013-12-09 14:52 EST
Last Modified:  2013-12-09 14:52 EST
== 
Summary:FindMatlab.cmake is outdated/broken
Description: 
The current FindMatlab.cmake doesn't work very well in finding libraries and
important executables.

There is a version that originated in the Gerardus project
(https://code.google.com/p/gerardus/) that does a better job.

Steps to Reproduce: 
find_package(MatLab REQUIRED)
if(NOT MATLAB_MEX_PATH)
  message("MATLAB_MEX_PATH not found, you must not be using the new
FindMatlab.cmake")
endif()

Additional Information: 
Attached file is what we use with some success.
== 

Issue History 
Date ModifiedUsername   FieldChange   
== 
2013-12-09 14:52 kentwilliams   New Issue
2013-12-09 14:52 kentwilliams   File Added: FindMatlab.cmake
==

--

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] Review Request: Topic ExternalProject-independent-step-targets

2013-12-09 Thread Brad King
On 12/09/2013 07:51 AM, Daniele E. Domenichelli wrote:
> And then adding an explicit dependency for each project that requires it
> 
>   add_dependency(${proj}-download SetupLocalXXXRepository)

...but again this requires the existing cases to be modified and
no longer tests that they work without this extra configuration.
By moving the new property test into a subdirectory or otherwise
making it not apply to the existing cases then that is not a problem.

However, the trouble you're having with Ninja still needs to be
solved because it could affect user projects (and a representative
case needs to be in the test too).

> AFAIK this should wait for SetupLocalXXXRepository to be finished
> before starting ${proj}-download

If both are logical CMake target names then that is the expected
behavior, yes.  The Makefile, VS, and Xcode generators all work
by grouping individual shell actions and their dependencies into
separate logical targets that have high-level ordering dependencies.

The Ninja generator (by design) tries to have monolithic dependencies
for all the low-level rules because it is more efficient at build time.
IIUC it tries to connect up all the low-level rule dependencies to
simulate the target-ordering dependencies that CMake defines.  Perhaps
that is not working here.  I'm not intimately familiar with it though.

Can you reproduce the dependency ordering failure with a few simple
add_custom_command and add_custom_target calls and no ExternalProject
module?  That will make it much easier to pin down, and the result
can be added to the general test suite (e.g. CustomCommand test) too.

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] Converting cmake_parse_arguments to a builtin command

2013-12-09 Thread Brad King
On 12/06/2013 04:42 PM, Matthew Woehlke wrote:
>> An advantage of keeping the name is that existing callers get the
>> speed-up immediately.  Furthermore there will be less code left in the
>> old module to maintain.
> 
> I think that is still true if the module just wraps the new function?

Yes, I think so.  Be sure that the wrapper forwards empty arguments
correctly or the compatibility policy will not be meaningful ;)

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


[cmake-developers] [CMake 0014640]: PRIVATE linking with target_link_libraries propagates "usage requirements" for static libraries

2013-12-09 Thread Mantis Bug Tracker

The following issue has been SUBMITTED. 
== 
http://www.cmake.org/Bug/view.php?id=14640 
== 
Reported By:Arunmozhi
Assigned To:
== 
Project:CMake
Issue ID:   14640
Category:   CMake
Reproducibility:always
Severity:   minor
Priority:   normal
Status: new
== 
Date Submitted: 2013-12-09 08:59 EST
Last Modified:  2013-12-09 08:59 EST
== 
Summary:PRIVATE linking with target_link_libraries
propagates "usage requirements" for static libraries
Description: 
I have projects in the structure shown below

module (EXECUTABLE)
   |
   \-- submodule (STATIC_LIBRARY)
   |
   \-- subsubmodule (STATIC_LIBRARY)

'submodule' links with 'subsubmodule' using PRIVATE linking as below

   target_link_libraries(submodule PRIVATE subsubmodule)

'module' links with 'submodule'. It is expected that the 'module' does not get
the public include directories of 'subsubmod'. However we see this happening in
cmake 2.8.12.

It is understood that the libraries linked with 'subsubmodule' are propagated to
'module' since 'subsubmodule' and 'submodule' are STATIC libraries. However this
does not apply to the INCLUDE directories and COMPILE definitions.

We also note that for SHARED libraries, the PRIVATE linking works fine.

== 

Issue History 
Date ModifiedUsername   FieldChange   
== 
2013-12-09 08:59 Arunmozhi  New Issue
2013-12-09 08:59 Arunmozhi  File Added: example.tar  
==

--

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] Review Request: Topic ExternalProject-independent-step-targets

2013-12-09 Thread Daniele E. Domenichelli
On 05/12/13 15:00, Brad King wrote:
> However, I do not like having to update all the existing calls

I'm trying to fix this, but I'm having some issues with ninja, and I
don't know anything about...

Instead of using

> +set_property(DIRECTORY PROPERTY EP_INDEPENDENT_STEP_TARGETS update)
> +INDEPENDENT_STEP_TARGETS ""

 I'm trying to do

  set_property(DIRECTORY PROPERTY EP_INDEPENDENT_STEP_TARGETS download update)

And then adding an explicit dependency for each project that requires it

  add_dependency(${proj}-download SetupLocalXXXRepository)


AFAIK this should wait for SetupLocalXXXRepository to be finished
before starting ${proj}-download, and it seems to be working using
Unix Makefiles, but for some reason it does not work as expected
with Ninja generator...
Having a look at the build.ninja file, for each proj there is
something like this:


#
# Utility command for ${proj}-download

build ${proj}-download: phony CMakeFiles/${proj}-download 
CMakeExternals/Stamp/${proj}/${proj}-download 
CMakeExternals/Stamp/${proj}/${proj}-mkdir SetupLocalXXXRepository

#
# Phony custom command for CMakeFiles/${proj}-download

build CMakeFiles/${proj}-download: phony 
CMakeExternals/Stamp/${proj}/${proj}-download || SetupLocalXXXRepository

#
# Custom command for CMakeExternals/Stamp/${proj}/${proj}-download

build CMakeExternals/Stamp/${proj}/${proj}-download: CUSTOM_COMMAND <...>
  COMMAND =  && /cmake -E touch 
/Tests/ExternalProject/CMakeExternals/Stamp/${proj}/${proj}-download
  DESC = 



Do you know why this isn't working? Am I missing something?



Cheers,
 Daniele
--

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