Re: [cmake-developers] cmake-3.3.0-Linux-x86_64.tar.gz on download page is not gzipped

2015-07-31 Thread Brad King
On 07/31/2015 07:14 AM, Radovan Bast wrote:
 the cmake-3.3.0-Linux-x86_64.tar.gz
 on http://www.cmake.org/download/
 is not gzipped.

Yes, it is.  From a shell on the hosting server:

 $ file cmake-3.3.0-Linux-x86_64.tar.gz
 cmake-3.3.0-Linux-x86_64.tar.gz: gzip compressed data, ...

 $ shasum -a 256 cmake-3.3.0-Linux-x86_64.tar.gz
 25d1f60cec20c89d7a8d6aa608af8766bd2f7de978ae5f2ae1e67641bdd1b8ed  
cmake-3.3.0-Linux-x86_64.tar.gz

I think some browsers or other download tools may automatically
gunzip files during download.

-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


Re: [cmake-developers] [patch] Export template instantiations with GenerateExportHeader

2015-07-31 Thread Brad King
On 07/30/2015 05:17 PM, Roger Leigh wrote:
 Are the duplicated template exports here at the level of the translation 
 unit not elided when linking the DLL?  In the dlltest git repo, I 
 specifically create DLLs with duplicate template exports in different 
 translation units to make sure it doesn't error out, and it appears to 
 cope.  I haven't checked on whether it removed duplicates from the 
 linked objects though--is this even possible?  I thought all current 
 toolchains were able to eliminate duplicate instantiations, or else 
 you'd have massive explosions of duplicate templates common across all 
 translation units.  Given the backwardness of the Windows linker, it 
 wouldn't surprise me if it were true though...

I'm not an expert on the MS linker, but at least some toolchains
treat implicit template instantiations as weak (W) symbols and
explicit template instantiations as normal (T) symbols.  Linkers
will resolve duplicate W symbols but allow only one T symbol.

Regardless, it is inefficient to ask the compiler to repeatedly
do an explicit instantiation when only one is needed.  I've seen
projects that keep each explicit instantiation in a dedicated
translation unit so that when one .o is needed for its instantiation
it doesn't force bringing in a bunch of other instantiations from
the same object.  With the instantiate-in-header approach then all
the objects in your library will instantiate all the templates
whose headers they include.  If the header always does the extern
explicit instantiation then the compiler does not need to do the
instantiation in any of the objects except the dedicated one.

-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


Re: [cmake-developers] Linked library paths

2015-07-31 Thread Brad King
On 07/30/2015 11:59 AM, Aleix Pol wrote:
 I need to get the linked libraries of a target. I was moving the code
 away from get_target_property to generator expressions that should get
 into a generated file, although I haven't managed yet.
 
 Is there any possibility to do that already?
 
 I've been thinking of adding something like a map function, so we can
 turn the target name we get from INTERFACE_LINK_LIBRARIES into a path,
 using the LOCATION property. Would that make sense?

It is not possible to get this information during the configuration
phase.  The LOCATION property is not allowed since CMP0026 for
a project's own targets.

 Otherwise, is it possible to properly get a function called right
 before cmake generation?

No CMake language code can be executed during generation.  That is
the domain of generator expressions.  It may be possible to add a
genex to provide the needed info (e.g. through file(GENERATE)).

What is your use case?

-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


Re: [cmake-developers] cmake-3.3.0-Linux-x86_64.tar.gz on download page is not gzipped

2015-07-31 Thread Nils Gladitz

On 07/31/2015 03:09 PM, Brad King wrote:

I think some browsers or other download tools may automatically
gunzip files during download.


I seem to get that with Chromium too.

The HTTP response for cmake-3.3.0.tar.gz does contain:
Content-Encoding: x-gzip

Which I think does tell clients that they should decompress to get the 
actual content which is declared to be of 
Content-Type:application/x-gzip; this is I think incorrect unless the 
HTTP server compresses the .tar.gz once more with gzip before delivery.


For cmake-3.3.0.zip of Content-Type: application/zip there is no 
Content-Encoding field in the HTTP response.


Maybe other clients have workarounds for these kinds of errors?

Nils
--

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] cmake-3.3.0-Linux-x86_64.tar.gz on download page is not gzipped

2015-07-31 Thread Radovan Bast
thanks Brad! interesting. sorry for the noise.
best wishes,
  radovan

On Fri, Jul 31, 2015 at 3:09 PM Brad King brad.k...@kitware.com wrote:

 On 07/31/2015 07:14 AM, Radovan Bast wrote:
  the cmake-3.3.0-Linux-x86_64.tar.gz
  on http://www.cmake.org/download/
  is not gzipped.

 Yes, it is.  From a shell on the hosting server:

  $ file cmake-3.3.0-Linux-x86_64.tar.gz
  cmake-3.3.0-Linux-x86_64.tar.gz: gzip compressed data, ...

  $ shasum -a 256 cmake-3.3.0-Linux-x86_64.tar.gz
  25d1f60cec20c89d7a8d6aa608af8766bd2f7de978ae5f2ae1e67641bdd1b8ed
 cmake-3.3.0-Linux-x86_64.tar.gz

 I think some browsers or other download tools may automatically
 gunzip files during download.

 -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

Re: [cmake-developers] [PATCH] cmCMakePolicyCommand: New PARENT_SCOPE argument

2015-07-31 Thread Alex Merry
On Thursday 30 July 2015 09:28:12 Brad King wrote:
 On 07/29/2015 03:58 PM, Alex Merry wrote:
  This is intended to be used from a settings file which is applied to a
  group of CMake projects. This allows the file to control which policies
  means that users of the settings file are not forced to use
  NO_POLICY_SCOPE
  (particularly important if the settings file did not originally have any
  policy settings in it, but later acquired some).
 
 Policies should not be set from a central hub, especially without the
 explicit permission of the including project (via NO_POLICY_SCOPE).
 
 Setting policies centrally breaks their compatibility model.  The
 whole point is that the old behavior is preserved (possibly with a
 warning) until the project whose code triggers the policy is modified
 to address it.  By setting a policy on behalf of the project calling
 include() you could silence warnings about behavior changes or even
 introduce errors.  Each project author needs a chance to see their
 own policy warnings and address them accordingly.

I should perhaps explain our use case:

KDE provides the module KDECompilerSettings, which set a bunch of default 
compiler settings we think are generally useful for KDE software projects 
(extra warnings, feature macros for libraries and so on).

One of those settings is the compiler visibility stuff 
(CMAKE_CXX_VISIBILITY_PRESET is set to hidden and 
CMAKE_VISIBILITY_INLINES_HIDDEN is set to 1). CMP0063 now causes a whole bunch 
of warnings to appear across a load of projects where there are executable 
targets. These warnings are because of a setting in the KDECompilerSettings, 
so it is natual to want to resolve the issue there.

We'd like to set the policy to NEW, because the new behaviour is sensible, and 
we'd consider any project that was broken by the change to already to be in 
need of fixing, because relying on the old behaviour is non-portable (due to 
DLL export behaviour). We'd rather have a hard error (even at build time 
instead of configure time) with a vanishingly small number of projects 
(hopefully none) than a warning on lots of projects that are almost certainly 
not affected.

Now, sure, we could change every single project that includes this module to 
use NO_POLICY_SCOPE but, apart from that being an unwanted change in how we 
tell people to use this module, it seems a very clunky approach. It means the 
module is at risk of leaking policy settings it didn't mean to (if it were to 
set policies for its own internal use), but it also means that, conceptually, 
you are asking users to opt-in to this particular behavoural change (because 
it happens to be implemented as a policy), but not to the other behavioural 
changes we make in the module (because they are implemented with variables).

Of course, ideally, we'd like to policy change to have the same scope as the 
variable settings it accompanies. That doesn't seem to be possible to acheive, 
though (at least, not in a clean way) because of the separate stacks for 
policy scopes and variable scopes.

Alex
-- 

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] cmake-3.3.0-Linux-x86_64.tar.gz on download page is not gzipped

2015-07-31 Thread Radovan Bast
Indeed a Chrome version that I have installed today does that
to my surprise. Auto-unpacks during download but keeps the suffix.
I would like to ask why but this is not the right list :-)
Thanks again for the clarification!
  radovan


On Fri, Jul 31, 2015 at 3:11 PM Radovan Bast radovan.b...@gmail.com wrote:

 thanks Brad! interesting. sorry for the noise.
 best wishes,
   radovan

 On Fri, Jul 31, 2015 at 3:09 PM Brad King brad.k...@kitware.com wrote:

 On 07/31/2015 07:14 AM, Radovan Bast wrote:
  the cmake-3.3.0-Linux-x86_64.tar.gz
  on http://www.cmake.org/download/
  is not gzipped.

 Yes, it is.  From a shell on the hosting server:

  $ file cmake-3.3.0-Linux-x86_64.tar.gz
  cmake-3.3.0-Linux-x86_64.tar.gz: gzip compressed data, ...

  $ shasum -a 256 cmake-3.3.0-Linux-x86_64.tar.gz
  25d1f60cec20c89d7a8d6aa608af8766bd2f7de978ae5f2ae1e67641bdd1b8ed
 cmake-3.3.0-Linux-x86_64.tar.gz

 I think some browsers or other download tools may automatically
 gunzip files during download.

 -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

Re: [cmake-developers] [PATCH] cmCMakePolicyCommand: New PARENT_SCOPE argument

2015-07-31 Thread Brad King
On 07/31/2015 12:54 PM, Alex Merry wrote:
 Setting policies centrally breaks their compatibility model.
 
 I should perhaps explain our use case:

My assertion stands regardless of the use case.

 Now, sure, we could change every single project that includes this module to 
 use NO_POLICY_SCOPE but, apart from that being an unwanted change in how we 
 tell people to use this module, it seems a very clunky approach.

That is the correct approach.

If a project wants to opt-in to letting KDECompilerSettings set
policies for it (and therefore accept the risk of the broken
compatibility model) then it should state so explicitly by
including the module with NO_POLICY_SCOPE.

 It means the module is at risk of leaking policy settings it didn't mean to

Use cmake_policy(PUSH/POP) around most of the module. Then set
policies explicitly outside of that scope if they are intended
to be set for includers that use NO_POLICY_SCOPE.

 you are asking users to opt-in to this particular behavoural change

Yes, because the behavior change comes from a CMake version update.

The purpose of policies is to not change behavior for a project until
it is modified to be aware of the CMake version that makes the change.
For this compatibility model to work the modification must be made
in the project itself, not in one of its dependencies.

-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


Re: [cmake-developers] Java support

2015-07-31 Thread CHEVRIER, Marc

OK.
New version of patches. There is now a component per extra tool (for now IdlJ 
and JarSigner as suggested by Brad) to ensure future extensibility.

Marc 




On 30/07/15 16:49, Brad King brad.k...@kitware.com wrote:

On 07/30/2015 09:55 AM, CHEVRIER, Marc wrote:
 here is the correct version.

Thanks.  The component name Extra sounds too generic and we won't
be able to extend it in the future with other extra parts for the
same reason these tools could not be made part of Development.
Perhaps instead we should have components named IdlJ and JarSigner
that applications can use to enforce that they are found.

Thanks,
-Brad



0001-Add-support-for-idlj-and-jarsigner-tools.patch
Description: 0001-Add-support-for-idlj-and-jarsigner-tools.patch


0002-add_jar-now-supports-file-syntax-for-sources.patch
Description: 0002-add_jar-now-supports-file-syntax-for-sources.patch


0003-install_jar-add-options-DESTINATION-and-COMPONENT.patch
Description: 0003-install_jar-add-options-DESTINATION-and-COMPONENT.patch


0004-Add-support-for-javah-tool.patch
Description: 0004-Add-support-for-javah-tool.patch
-- 

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] [PATCH 3/3] FindQt4: document cross compilation

2015-07-31 Thread Pascal Bach


Am 30.07.2015 um 17:20 schrieb Clinton Stimpson:
 On Thursday, July 30, 2015 10:56:02 AM Brad King wrote:
 On 07/30/2015 09:29 AM, Pascal Bach wrote:
 CMAKE_FIND_ROOT_PATH_MODE would then need to be extended to support
 something like NATIVE and TARGET that one could use to choose where
 to look for files.
 This way every find_* call could explicitly tell if it wants a host
 or a target version.
 Are you proposing new keyword arguments to find_* commands to specify
 this?  The problem is that find modules don't necessarily know which
 kind of binary the application wants.  That is why we have the
 CMAKE_FIND_ROOT_PATH_MODE_type variables.

 The existing CMAKE_FIND_ROOT_PATH* and CMAKE_SYSROOT options have been
 sufficient for most packages for a long time.  We regularly get
 complaints that FindPythonLibs does not ask the python executable
 where to get its libraries, and our answer every time is that it is
 wrong to do that for cross compiling.  FindQt4 is making that mistake,
 and that is the cause of these troubles.

 FindQt4 should be taught not to ask qmake for anything when cross
 compiling.
 FindQt4 supports 2 use cases when cross compiling.

 1. One Qt installation with a mix of native and non-native files.

 2. Two Qt installations, one native and one non-native.  In this case, qmake 
 may still be queried to find other tools, but CMAKE_FIND_ROOT_PATH is used to 
 find the non-native includes and libraries.

 The second case is what you are asking for, right?
Yes case 2 is exactly what Yocto does, one qt-native and one qt-target.
There might also be a third installation from the host machine (installed via 
apt-get for example).

I need to check if I can modify FindQt4 to not use qmake for libary and header 
finding if CROSS_COMPILING is set.
But just rely on plain find_* commands.

 This why I previously suggested changing 
 from
 SET(CMAKE_FIND_ROOT_PATH /sysroot/arm ...)
 to 
 SET(CMAKE_FIND_ROOT_PATH /sysroot/arm/usr ...)
I could not get this to work.
It seems that the variables returned by qmake take priority over everything 
else.

Pascal


 Because its a find root, not a sysroot.


-- 

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-3.3.0-Linux-x86_64.tar.gz on download page is not gzipped

2015-07-31 Thread Radovan Bast
dear all,

the cmake-3.3.0-Linux-x86_64.tar.gz
on http://www.cmake.org/download/
is not gzipped. this confused me a bit
since tar xvzf complained. of course
it can be extracted still but i think it would
be good to replace it by the compressed one.

thank you and best wishes,
  radovan
-- 

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