[cmake-developers] [CMake 0013222]: The CMake functions: check_function_exists(), the check_library_exists(), and the find_package() fail

2012-05-15 Thread Mantis Bug Tracker

The following issue has been SUBMITTED. 
== 
http://public.kitware.com/Bug/view.php?id=13222 
== 
Reported By:sobigboy
Assigned To:
== 
Project:CMake
Issue ID:   13222
Category:   CMake
Reproducibility:always
Severity:   minor
Priority:   normal
Status: new
== 
Date Submitted: 2012-05-15 10:35 EDT
Last Modified:  2012-05-15 10:35 EDT
== 
Summary:The CMake functions:  check_function_exists(), the
check_library_exists(), and the find_package() fail
Description: 
The check_function_exists(), the check_library_exists(), and the find_package()
all fail if they are preceded by set(CMAKE_C_FLAGS “-Mfilename”).

Steps to Reproduce: 
1. Ensure the server has both CC and cc compilers installed.
2. Create a CMakeLists.txt file that contains the statement:
   set(CMAKE_C_FLAGS “-Mfilename”)
3. After this statement add one or more of the above functions.
4. Execute the build and observe that CMake reports the search fails.
5. Remove the set(CMAKE_C_FLAGS “-Mfilename”) statement.
6. Execute the build again and observe that CMake reports the search is
   successful.


Additional Information: 
I used the rt library and Threads package for testing.

CMake recognizes both the CC and cc compilers, but only the CC compiler is used
for the build (all source files are .h and .cpp).

According to man ld, the –M switch “reads mapfile as a text file of
directives to ld.”

All three functions fail regardless of the contents of the mapfile, whether the
mapfile exists or not, or even when a filename is not specified.

Surprisingly, set(CMAKE_CXX_FLAGS “-Mfilename”) does not cause the three
functions to fail.

== 

Issue History 
Date ModifiedUsername   FieldChange   
== 
2012-05-15 10:35 sobigboy   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] set_property(DIRECTORY) regression ?

2012-05-15 Thread Brad King
On 5/14/2012 5:18 PM, Alexander Neundorf wrote:
 This is the output I get when running the attachec example with cmake
 2.6.4 and 2.8.0:

The behavior of properties did not change.  There was a
bug in CMake 2.6 that was fixed here:

 http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=21fc04ef

The patch below works around this bug in 2.6 and shows
that the behavior is the same for 2.6 and 2.8 in terms
of the property inheritance.

Directory properties are not inherited by default.  The
define_property() command may be used to change that for
user-defined properties by using the INHERITED option:

 http://www.cmake.org/cmake/help/v2.8.8/cmake.html#command:define_property

I've never used that in a real project though.

-Brad


diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3fbf3a4..7c465c4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -6,6 +6,7 @@ if (NOT _qt5CoreTargetExists)
 set_property(DIRECTORY PROPERTY _Qt5Core_target TRUE)
 message(STATUS DF: Qt5CoreConfig.cmake add_library(Qt5::Core SHARED 
IMPORTED))
 endif()
+set(_qt5CoreTargetExists )

 get_property(_qt5CoreTargetExists DIRECTORY PROPERTY _Qt5Core_target)
 message(STATUS ex 2: ${_qt5CoreTargetExists})
@@ -13,5 +14,6 @@ if (NOT _qt5CoreTargetExists)
 set_property(DIRECTORY PROPERTY _Qt5Core_target TRUE)
 message(STATUS DF: Qt5CoreConfig.cmake add_library(Qt5::Core SHARED 
IMPORTED))
 endif()
+set(_qt5CoreTargetExists )

 add_subdirectory(sub)
--

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 0013226]: CMake doesn't call realpath(), causing it to get confused if built through symlink

2012-05-15 Thread Mantis Bug Tracker

The following issue has been SUBMITTED. 
== 
http://public.kitware.com/Bug/view.php?id=13226 
== 
Reported By:Stewart Smith
Assigned To:
== 
Project:CMake
Issue ID:   13226
Category:   CMake
Reproducibility:always
Severity:   major
Priority:   high
Status: new
== 
Date Submitted: 2012-05-16 00:38 EDT
Last Modified:  2012-05-16 00:38 EDT
== 
Summary:CMake doesn't call realpath(), causing it to get
confused if built through symlink
Description: 
If you have something like this:

product (the directory)
and product-1.0 being a symlink to product
and at a later date, product-1.1 being a symlink to product

and you once built through cd product-1.0; make and in future cd product-1.1;
make, then it's possible for an *in source tree* build to have the following
condition met when it shouldn't be:

IF(NOT ${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})

As Cmake caches things, repeated builds get the old 'product-1.0' in path in one
of the variables and the new 'product-1.1' in the other.

If the code in the CMakeLists.txt does something like overwrite a file to launch
things correctly for out-of-tree builds (as it does in the MySQL source code),
then you get a fork-bomb instead of a test-suite.

If CMake called realpath(3) on source and binary dirs when it was setting up the
variables initially, this problem would be avoided as the comparison would
always be done with the physical paths, not with what symlinks were used at any
particular time.

Steps to Reproduce: 
see above.
== 

Issue History 
Date ModifiedUsername   FieldChange   
== 
2012-05-16 00:38 Stewart Smith  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


[cmake-developers] FinQt4/UseQt4 / module QtWebKit isn't found with Qt 4.8.1 even if installed

2012-05-15 Thread Adrien Guinet
Hello everyone,

It seems that, in Qt 4.8.1 (at least in the Debian packages), the QtWebKit
module isn't shipped in a separated .so (libQtWebKit.so).
Thus, this makes FindQt4.cmake fails to find the QtWebkit modules, beucase
a module is considered found when both its libraries files and directories
are found. As a consequence, include directories are not set if the
QT_USE_QTWEBKIT variable is set to TRUE (for instance), and code fails to
compile.

I don't know if this is an issue with the Debian packages of Qt (last
packages in sid as of today), or if Qt decided to build QtWebkit within
QtGui.

Attached to this mail is a temporary patch (well, an ugly *hack* actually)
that I am using (against FindQt4.cmake) :

Thanks for any help or comments about this !

Regards,

-- 
Adrien.--- FindQt4.cmake	2012-04-18 20:10:54.0 +0200
+++ FindQt4.cmake	2012-05-15 11:24:32.153505008 +0200
@@ -748,8 +748,13 @@
   #
   
 
+#  SET(QT_MODULES QtGui Qt3Support QtSvg QtScript QtTest QtUiTools
+# QtHelp QtWebKit QtXmlPatterns phonon QtNetwork QtMultimedia
+# QtNsPlugin QtOpenGL QtSql QtXml QtDesigner QtDBus QtScriptTools
+# QtDeclarative)
+
   SET(QT_MODULES QtGui Qt3Support QtSvg QtScript QtTest QtUiTools
- QtHelp QtWebKit QtXmlPatterns phonon QtNetwork QtMultimedia
+ QtHelp QtXmlPatterns phonon QtNetwork QtMultimedia
  QtNsPlugin QtOpenGL QtSql QtXml QtDesigner QtDBus QtScriptTools
  QtDeclarative)
   
@@ -844,6 +849,13 @@
 NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH
 )
 
+  FIND_PATH(QT_QTWEBKIT_INCLUDE_DIR QtWebKit
+  PATHS
+			  ${QT_HEADERS_DIR}/QtWebKit
+			  ${QT_LIBRARY_DIR}/QtWebKit.framework/Headers
+  NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH
+  )
+
   
   #
   #   Setting the LIBRARY-Variables
@@ -894,6 +906,10 @@
 FIND_LIBRARY(QT_QTCLUCENE_LIBRARY_RELEASE NAMES QtCLucene${QT_LIBINFIX} PATHS ${QT_LIBRARY_DIR})
   ENDIF(Q_WS_MAC AND QT_QTCORE_LIBRARY_RELEASE AND NOT QT_QTCLUCENE_LIBRARY_RELEASE)
 
+  # Set QT_QTWEBKIT_LIBRARY
+  SET(QT_QTWEBKIT_LIBRARY_RELEASE )
+  SET(QT_QTWEBKIT_LIBRARY_DEBUG )
+
 
   
   #
@@ -914,6 +930,10 @@
   _QT4_ADJUST_LIB_VARS(QtAssistantClient)
   _QT4_ADJUST_LIB_VARS(QtCLucene)
   _QT4_ADJUST_LIB_VARS(QtDesignerComponents)
+  _QT4_ADJUST_LIB_VARS(QtWebKit)
+  IF(QT_QTWEBKIT_INCLUDE_DIR)
+SET(QT_QTWEBKIT_FOUND 1)
+  ENDIF(QT_QTWEBKIT_INCLUDE_DIR)
 
   # platform dependent libraries
   IF(Q_WS_WIN)
--

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] missing qt on windows

2012-05-15 Thread Sweety Pie
Hey there,
Please try this, it may work

1- Open CMake - cmake-gui (on the Desktop) - if you are using win7 make
sure you open the program in administrator mode - right click on the icon
and click on run as administrator.
2- Click on Add Entry again
   Set name to QT_QMAKE_EXECUTABLE
   Set type to Path
   Set value to C:/Qt/4.8.1/bin/qmake.exe
   Click OK

:)
On 15 May 2012 11:36, Gonzalo Amadio gonzaloama...@gmail.com wrote:

 Hello, I am trying to install MITK on windows 7 64bit.

 It is required to have QT, I downloaded it from
 http://qt.nokia.com/downloads and istalled it.

 I installed the Cmake GUI. And Visual Studio 10 express (in the
 configuration, i choose visual studio 10 compiler).

 I have the following error when trying to Generate.

 Setting build type to 'Debug' as none was specified.
 Check for working C compiler using: Visual Studio 10
 Check for working C compiler using: Visual Studio 10 -- works
 Detecting C compiler ABI info
 Detecting C compiler ABI info - done
 Check for working CXX compiler using: Visual Studio 10
 Check for working CXX compiler using: Visual Studio 10 -- works
 Detecting CXX compiler ABI info
 Detecting CXX compiler ABI info - done
 CMake Error at C:/Program Files (x86)/CMake
 2.8/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:97
 (MESSAGE):
  Could NOT find Qt4 (missing: QT_QMAKE_EXECUTABLE QT_MOC_EXECUTABLE
 QT_RCC_EXECUTABLE QT_UIC_EXECUTABLE QT_INCLUDE_DIR QT_LIBRARY_DIR
 QT_QTCORE_LIBRARY) (Required is at least version 4.6.2)
 Call Stack (most recent call first):
 C:/Program Files (x86)/CMake
 2.8/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:288
 (_FPHSA_FAILURE_MESSAGE)
  C:/Program Files (x86)/CMake
 2.8/share/cmake-2.8/Modules/FindQt4.cmake:1172
 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
 CMakeLists.txt:188 (find_package)
 Configuring incomplete, errors occurred!



 --
 
 Gonzalo Amadio


 --

 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://www.cmake.org/mailman/listinfo/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://www.cmake.org/mailman/listinfo/cmake

Re: [CMake] missing qt on windows

2012-05-15 Thread Petr Kmoch
Hi Gonzalo,

the problem is cmake didn't find qmake. The safest way to use cmake
with Qt on Windows is to run cmake from a Qt-aware command line (or
have qmake in your PATH). There should be a shortcut to a Qt command
prompt installed in your Start menu. If it's not, you can create your
own:

`%COMSPEC% /k your_path_to_Qt\bin\qtvars.bat vsvars'

Petr

On Tue, May 15, 2012 at 10:36 AM, Gonzalo Amadio
gonzaloama...@gmail.com wrote:
 Hello, I am trying to install MITK on windows 7 64bit.

 It is required to have QT, I downloaded it from
 http://qt.nokia.com/downloads and istalled it.

 I installed the Cmake GUI. And Visual Studio 10 express (in the
 configuration, i choose visual studio 10 compiler).

 I have the following error when trying to Generate.

 Setting build type to 'Debug' as none was specified.
 Check for working C compiler using: Visual Studio 10
 Check for working C compiler using: Visual Studio 10 -- works
 Detecting C compiler ABI info
 Detecting C compiler ABI info - done
 Check for working CXX compiler using: Visual Studio 10
 Check for working CXX compiler using: Visual Studio 10 -- works
 Detecting CXX compiler ABI info
 Detecting CXX compiler ABI info - done
 CMake Error at C:/Program Files (x86)/CMake
 2.8/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:97
 (MESSAGE):
 Could NOT find Qt4 (missing: QT_QMAKE_EXECUTABLE QT_MOC_EXECUTABLE
 QT_RCC_EXECUTABLE QT_UIC_EXECUTABLE QT_INCLUDE_DIR QT_LIBRARY_DIR
 QT_QTCORE_LIBRARY) (Required is at least version 4.6.2)
 Call Stack (most recent call first):
 C:/Program Files (x86)/CMake
 2.8/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:288
 (_FPHSA_FAILURE_MESSAGE)
 C:/Program Files (x86)/CMake
 2.8/share/cmake-2.8/Modules/FindQt4.cmake:1172
 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
 CMakeLists.txt:188 (find_package)
 Configuring incomplete, errors occurred!



 --
 
 Gonzalo Amadio


 --

 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://www.cmake.org/mailman/listinfo/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://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] missing qt on windows

2012-05-15 Thread Gonzalo Amadio
I have done this, but adding it int other way . Selecting on the screen
the line where the error araises and exploring until finding qmake.exe (in
the same folder you indicate). And I think it works.
Thank you

2012/5/15 Sweety Pie sweetyp198...@gmail.com

 Hey there,
 Please try this, it may work

 1- Open CMake - cmake-gui (on the Desktop) - if you are using win7 make
 sure you open the program in administrator mode - right click on the icon
 and click on run as administrator.
 2- Click on Add Entry again
Set name to QT_QMAKE_EXECUTABLE
Set type to Path
Set value to C:/Qt/4.8.1/bin/qmake.exe
Click OK

 :)
 On 15 May 2012 11:36, Gonzalo Amadio gonzaloama...@gmail.com wrote:

 Hello, I am trying to install MITK on windows 7 64bit.

 It is required to have QT, I downloaded it from
 http://qt.nokia.com/downloads and istalled it.

 I installed the Cmake GUI. And Visual Studio 10 express (in the
 configuration, i choose visual studio 10 compiler).

 I have the following error when trying to Generate.

 Setting build type to 'Debug' as none was specified.
 Check for working C compiler using: Visual Studio 10
 Check for working C compiler using: Visual Studio 10 -- works
 Detecting C compiler ABI info
 Detecting C compiler ABI info - done
 Check for working CXX compiler using: Visual Studio 10
 Check for working CXX compiler using: Visual Studio 10 -- works
 Detecting CXX compiler ABI info
 Detecting CXX compiler ABI info - done
 CMake Error at C:/Program Files (x86)/CMake
 2.8/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:97
 (MESSAGE):
  Could NOT find Qt4 (missing: QT_QMAKE_EXECUTABLE QT_MOC_EXECUTABLE
 QT_RCC_EXECUTABLE QT_UIC_EXECUTABLE QT_INCLUDE_DIR QT_LIBRARY_DIR
 QT_QTCORE_LIBRARY) (Required is at least version 4.6.2)
 Call Stack (most recent call first):
 C:/Program Files (x86)/CMake
 2.8/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:288
 (_FPHSA_FAILURE_MESSAGE)
  C:/Program Files (x86)/CMake
 2.8/share/cmake-2.8/Modules/FindQt4.cmake:1172
 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
 CMakeLists.txt:188 (find_package)
 Configuring incomplete, errors occurred!



 --
 
 Gonzalo Amadio


 --

 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://www.cmake.org/mailman/listinfo/cmake





-- 

Gonzalo Amadio
--

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://www.cmake.org/mailman/listinfo/cmake

Re: [CMake] Secret precompiled header support?

2012-05-15 Thread Dave Abrahams

on Mon May 14 2012, Robert Dailey 
rcdailey.lists-Re5JQEeQqe8AvxtiuMwx3w-AT-public.gmane.org wrote:

 Is improvement desired in this area? 

By me, yes.

 Is the current implementation really satisfactory? 

For me, no.  I'm trying to make a transition to CMake in a community
where this is being seen as a problematic limitation.

-- 
Dave Abrahams
BoostPro Computing
http://www.boostpro.com

--

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://www.cmake.org/mailman/listinfo/cmake


[CMake] Ninja generator is Linux-only?

2012-05-15 Thread Dave Abrahams

Can someone explain why a ninja generator isn't available everywhere
that ninja runs?  Can this be remedied?

Thanks,

-- 
Dave Abrahams
BoostPro Computing
http://www.boostpro.com


--

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://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] Ninja generator is Linux-only?

2012-05-15 Thread Michael Jackson
There was a long discussion about the limitations of ninja on each platform on 
the mailing list just before the last release. That is where the decisions were 
made to limit ninja to Linux only at this point.

That last thread was on April 17, 2012 with the title Re: [CMake] CMake Ninja 
generator issues: any showstoppers?
--
Mike Jackson www.bluequartz.net

On May 15, 2012, at 8:31 AM, Dave Abrahams wrote:

 
 Can someone explain why a ninja generator isn't available everywhere
 that ninja runs?  Can this be remedied?
 
 Thanks,
 
 -- 
 Dave Abrahams
 BoostPro Computing
 http://www.boostpro.com
 
 
 --
 
 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://www.cmake.org/mailman/listinfo/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://www.cmake.org/mailman/listinfo/cmake


[CMake] Finding include directories when importing targets exported via install(EXPORT ...)

2012-05-15 Thread Matthew LeRoy
Hi again,

I'm working on setting up install(...) commands for a shared library project 
(call it libA), and I'm using the install(EXPORT ...) signature as has been 
recommended to me previously to export the shared library target so I can 
import it in another CMake-based project (call it libB). So far things have 
been pretty straightforward, but I'm now trying to determine how to deal with 
the public header files for the project. So, two questions:

1. What's the preferred method for installing public headers? I've seen sparse 
documentation about a PUBLIC_HEADER target property, but the lack of 
information I can find about it via Google makes me wonder if it's not 
considered 'best practice'. Taking a look at the CMake list files for the LLVM 
project, they seem to be using multiple install(DIRECTORY ...) commands. I'm 
sure there are multiple ways to do this, so what's recommended?

2. How should libB find the location of the installed headers for libA? With 
Find* modules (of which I'm using a few, FindBoost being one), there is 
generally a LibName_INCLUDE_DIRs variable that gets set with the include path 
that I would add in libB's list file via 
include_directories(${LibName_INCLUDE_DIRS}). But, since I'm using 
exported/imported targets instead of a Find* module, there doesn't seem to be 
any built-in support for 'importing' the headers. I saw something in the 
release notes for a recent CMake version (2.8, I think?) about something called 
'per-target INCLUDE_DIRECTORIES', which sounds promising, but couldn't find 
much more info about it.

Alright, I lied... a third somewhat-related question:

3) What's the general practice as far as where to install the .cmake file 
generated by the install(EXPORT ...) command? Should it go in the install 
location along with the built targets? It seems that the generated .cmake file 
is intended to replace Find* modules and prevent other projects from having to 
know the installed location of the exported library... but wouldn't putting the 
generated .cmake import file in the install location require dependent projects 
to know where the install location is in order to include the .cmake import 
file?

Many thanks!
Matt
--

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://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] Secret precompiled header support?

2012-05-15 Thread Robert Dailey
On Tue, May 15, 2012 at 7:34 AM, Dave Abrahams d...@boostpro.com wrote:


 on Mon May 14 2012, Robert Dailey 
 rcdailey.lists-Re5JQEeQqe8AvxtiuMwx3w-AT-public.gmane.org wrote:

  Is improvement desired in this area?

 By me, yes.


By this, do you mean, you've taken an initiative to fix this yourself? If
so, let me know if I can help out with anything.



  Is the current implementation really satisfactory?

 For me, no.  I'm trying to make a transition to CMake in a community
 where this is being seen as a problematic limitation.


I actually was reading over the boost modularization discussion, but I
didn't spend enough time there to understand what this whole process is
for. I'm assuming this is being setup so users can download pieces of boost
individually and only use the parts they want. I'm glad that Boost is
making a real effort to use CMake. I think such an influential community
being involved with CMake will help push Kitware to realize how serious
people are taking their products and maybe they'll make a move to
professionalize them. By that I mean, CMake is a great tool but very
inconsistent and somewhat messy and obscure in a lot of areas. Major work
needs to be done here to polish everything and make it feel organized and
professional. You can claim portability all day but you have to do it
right. Right now I feel CMake is 60% there. I say that because that 40% I
had to implement via CMake scripts over the course of several months,
resulting in a couple thousand lines of CMake code (to handle transitive
include dependencies, compiler-agnostic features such as PCH and warning
levels, private/public include directories, and other things).
--

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://www.cmake.org/mailman/listinfo/cmake

Re: [CMake] Secret precompiled header support?

2012-05-15 Thread Andreas Mohr
Hi,

On Tue, May 15, 2012 at 12:00:09PM -0400, cmake-requ...@cmake.org wrote:
 Date: Tue, 15 May 2012 10:53:45 -0500
 From: Robert Dailey rcdailey.li...@gmail.com
 Subject: Re: [CMake] Secret precompiled header support?
 To: Dave Abrahams d...@boostpro.com

   Is the current implementation really satisfactory?
 
  For me, no.  I'm trying to make a transition to CMake in a community
  where this is being seen as a problematic limitation.
 
 
 I actually was reading over the boost modularization discussion, but I
 didn't spend enough time there to understand what this whole process is
 for. I'm assuming this is being setup so users can download pieces of boost
 individually and only use the parts they want. I'm glad that Boost is
 making a real effort to use CMake. I think such an influential community
 being involved with CMake will help push Kitware to realize how serious
 people are taking their products and maybe they'll make a move to
 professionalize them. By that I mean, CMake is a great tool but very
 inconsistent and somewhat messy and obscure in a lot of areas. Major work
 needs to be done here to polish everything and make it feel organized and
 professional. You can claim portability all day but you have to do it
 right. Right now I feel CMake is 60% there. I say that because that 40% I
 had to implement via CMake scripts over the course of several months,
 resulting in a couple thousand lines of CMake code (to handle transitive
 include dependencies, compiler-agnostic features such as PCH and warning
 levels, private/public include directories, and other things).

While a 60% estimation may sound a bit harsh, I have to admit that
my own rating wouldn't be too far off either, given that only
the *current* stable version can be stated to be relatively up to speed
with shockingly mundane build (and more painfully, packaging) requirements.

Especially the haphazard way of variable-style configuration needs to
be reduced, in favour of more flexible property-style / helper function
APIs configuration spaces (the CMAKE_MFC_FLAG variable
or the - now improved - include_directories() thingy
would be particularly striking examples here).

OTOH implementing such a universal and flexible build system certainly
is no small feat, and every single soul out there should ask her/himself
which kind of all the critical fringe upstream work
(fixing exotic Find modules, etc.) they THEMSELVES failed to do recently.
Myself I certainly know of some parts where I have some upstream work
remaining to be done...
Not to mention that I'm sure that Kitware would love to be paid fairly
for certain peripheral (perhaps less so) areas to be implemented.

I also have a large number of rather clever (NOT! all this mostly shouldn't be
necessary given an ideal - whatever that means - build environment)
scripting parts to get everything packaged up the way God meant it to be.

One major part that I'm missing is some *builtin* dos2unix/unix2dos flags
of the file(COPY ...) commands (and perhaps configure_file()), BTW.
Currently all this is emulated manually in a very painful way,
whereas many major SCM tools have quite flexible d2u handling builtin...


/rant
(had to put this tag here for my admittedly less specific reply)


BTW, I currently have an updated version of the community-maintained
(see related tracker item) PCH support Module within my vcproj2cmake repo
(since there are very obvious usage synergies), and I plan to keep it current.
Of course I'm fully aware that you'd like to see improved CMake-builtin
support instead...

Andreas Mohr
--

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://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] Secret precompiled header support?

2012-05-15 Thread Eric Noulard
2012/5/15 Robert Dailey rcdailey.li...@gmail.com:

 On Tue, May 15, 2012 at 7:34 AM, Dave Abrahams d...@boostpro.com wrote:

 For me, no.  I'm trying to make a transition to CMake in a community
 where this is being seen as a problematic limitation.


 I actually was reading over the boost modularization discussion, but I
 didn't spend enough time there to understand what this whole process is for.
 I'm assuming this is being setup so users can download pieces of boost
 individually and only use the parts they want. I'm glad that Boost is making
 a real effort to use CMake. I think such an influential community being
 involved with CMake will help push Kitware to realize how serious people are
 taking their products and maybe they'll make a move to professionalize
 them.

I could not resist a troll like that.
No offense but saying that CMake has to address such and such
limitation/weirdiness seems ok to me,
but going down to infer that no serious people do currently use
CMake is a little hard to read...

...and... I'm not speaking for myself since
I'm not considering myself as a serious guy anyway :-]

All that said I can witness that serious patches are more than usually
welcome :-)

-- 
Erk
Le gouvernement représentatif n'est pas la démocratie --
http://www.le-message.org
--

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://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] Secret precompiled header support?

2012-05-15 Thread David Cole
On Tue, May 15, 2012 at 2:14 PM, Eric Noulard eric.noul...@gmail.comwrote:

 2012/5/15 Robert Dailey rcdailey.li...@gmail.com:
 
  On Tue, May 15, 2012 at 7:34 AM, Dave Abrahams d...@boostpro.com
 wrote:
 
  For me, no.  I'm trying to make a transition to CMake in a community
  where this is being seen as a problematic limitation.
 
 
  I actually was reading over the boost modularization discussion, but I
  didn't spend enough time there to understand what this whole process is
 for.
  I'm assuming this is being setup so users can download pieces of boost
  individually and only use the parts they want. I'm glad that Boost is
 making
  a real effort to use CMake. I think such an influential community being
  involved with CMake will help push Kitware to realize how serious people
 are
  taking their products and maybe they'll make a move to professionalize
  them.

 I could not resist a troll like that.
 No offense but saying that CMake has to address such and such
 limitation/weirdiness seems ok to me,
 but going down to infer that no serious people do currently use
 CMake is a little hard to read...

 ...and... I'm not speaking for myself since
 I'm not considering myself as a serious guy anyway :-]

 All that said I can witness that serious patches are more than usually
 welcome :-)

 --
 Erk
 Le gouvernement représentatif n'est pas la démocratie --
 http://www.le-message.org
 --

 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://www.cmake.org/mailman/listinfo/cmake



I can't resist either: how much would you pay for a Professional Edition
of 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://www.cmake.org/mailman/listinfo/cmake

[CMake] CPack DEB depends bug fix

2012-05-15 Thread Jess Morecroft
Hi all,

I experienced problems recently trying to use the CPack DEB packager
with components and wanted to share my solution (thanks partly to Eric
Noulard). The problem was with dependency generation in the Debian
control file using the CPACK_DEBIAN_PACKAGE_SHLIBS flag. Dependencies
would be generated, however each component would be incorrectly
assigned all previously processed components' dependencies on top of
its own. This would occur regardless of whether the user explicitly
set any (additional) dependencies via CPACK_DEBIAN_PACKAGE_DEPENDS.

eg. 3 components,
   1 has dependencies A, B, C, 3
   2 has dependencies D, E, F, 3
   3 has dependencies G
relevant config:
set(CPACK_COMPONENTS_IGNORE_GROUPS TRUE)
set(CPACK_DEB_COMPONENT_INSTALL TRUE)
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS TRUE)

We have no way of expressing dependencies between components for the
purposes of Debian packaging (so far as I know) so 1 and 2 depending
on 3 is not achievable. That aside, if processed 1 then 2, then 3, the
resultant package 1 would depend on A, B, C, package 2 (incorrectly)
on A, B, C, D, E, F and package 3 (incorrectly) on A, B, C, D, E, F,
G.

To fix I patched the CPackDeb.cmake script as follows, introducing new
per-component user-defined dependency variable
CPACK_DEB_component_PACKAGE_DEPENDS, which should be used over
CPACK_DEBIAN_PACKAGE_DEPENDS if components are being used.

214,218c214,226
 IF (CPACK_DEBIAN_PACKAGE_DEPENDS)
   SET (CPACK_DEBIAN_PACKAGE_DEPENDS
${CPACK_DEBIAN_PACKAGE_AUTO_DEPENDS},
${CPACK_DEBIAN_PACKAGE_DEPENDS})
 ELSE (CPACK_DEBIAN_PACKAGE_DEPENDS)
   SET (CPACK_DEBIAN_PACKAGE_DEPENDS
${CPACK_DEBIAN_PACKAGE_AUTO_DEPENDS})
 ENDIF (CPACK_DEBIAN_PACKAGE_DEPENDS)
---
 IF(CPACK_DEB_PACKAGE_COMPONENT)
   IF (CPACK_DEB_${CPACK_DEB_PACKAGE_COMPONENT}_PACKAGE_DEPENDS)
 SET (CPACK_DEBIAN_PACKAGE_DEPENDS 
 ${CPACK_DEBIAN_PACKAGE_AUTO_DEPENDS}, 
 ${CPACK_DEB_${CPACK_DEB_PACKAGE_COMPONENT}_PACKAGE_DEPENDS})
   ELSE (CPACK_DEB_${CPACK_DEB_PACKAGE_COMPONENT}_PACKAGE_DEPENDS)
 SET (CPACK_DEBIAN_PACKAGE_DEPENDS 
 ${CPACK_DEBIAN_PACKAGE_AUTO_DEPENDS})
   ENDIF (CPACK_DEB_${CPACK_DEB_PACKAGE_COMPONENT}_PACKAGE_DEPENDS)
 ELSE (CPACK_DEB_PACKAGE_COMPONENT)
   IF (CPACK_DEBIAN_PACKAGE_DEPENDS)
 SET (CPACK_DEBIAN_PACKAGE_DEPENDS 
 ${CPACK_DEBIAN_PACKAGE_AUTO_DEPENDS}, ${CPACK_DEBIAN_PACKAGE_DEPENDS})
   ELSE (CPACK_DEBIAN_PACKAGE_DEPENDS)
 SET (CPACK_DEBIAN_PACKAGE_DEPENDS 
 ${CPACK_DEBIAN_PACKAGE_AUTO_DEPENDS})
   ENDIF (CPACK_DEBIAN_PACKAGE_DEPENDS)
 ENDIF (CPACK_DEB_PACKAGE_COMPONENT)

This config then will do the trick, also allowing 1 and 2's dependency
on 3 to be expressed:

set(CPACK_COMPONENTS_IGNORE_GROUPS TRUE)
set(CPACK_DEB_COMPONENT_INSTALL TRUE)
set(CPACK_DEB_1_PACKAGE_DEPENDS myproject-3)
set(CPACK_DEB_2_PACKAGE_DEPENDS myproject-3)
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS TRUE)

I shall submit a bug report with advised patch in the next few days.

Incidentally, I did stumble across another bug with the Debian
packager unable to deal with components not containing any exe or lib
files. Fortunately my final project layout avoided this scenario, but
you've been warned!

Regards,
Jess
--

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://www.cmake.org/mailman/listinfo/cmake


[CMake] How to deal with pre built 3rd party libs?

2012-05-15 Thread Totte Karlsson

Hi,
I have a project that depends on 3rd party dll's (libxml2).

Is there a 'best practice' to deal with associated files, .h, .lib .dll of such 
within a CMake project?


My library needs to link to the 3rd party lib, and needs its dll for execution 
(obviously), so I feel the need for copying this DLL to my libs 'install/bin' 
folder, so that any of my executables can run, without getting a '...dll not found'.


-totte

--

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://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] How to deal with pre built 3rd party libs?

2012-05-15 Thread John Drescher
 I have a project that depends on 3rd party dll's (libxml2).

 Is there a 'best practice' to deal with associated files, .h, .lib .dll of
 such within a CMake project?

 My library needs to link to the 3rd party lib, and needs its dll for
 execution (obviously), so I feel the need for copying this DLL to my libs
 'install/bin' folder, so that any of my executables can run, without getting
 a '...dll not found'.



I wrote cmake macros to generate a batch file containing cmake -e
commands to copy the dlls to each configuration. This I run as a
target in my projects.

John
--

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://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] How to deal with pre built 3rd party libs?

2012-05-15 Thread Leif Walsh
Look at things involving the IMPORTED property of add_library. You probably 
want to check the headers in to your repo. Or use or create a 
FindLibXml2.cmake. 

Or if you are compiling libxml2 as part of your build process, look at the 
ExternalProject module. 

Sent from my iPhone

On May 15, 2012, at 17:18, John Drescher dresche...@gmail.com wrote:

 I have a project that depends on 3rd party dll's (libxml2).
 
 Is there a 'best practice' to deal with associated files, .h, .lib .dll of
 such within a CMake project?
 
 My library needs to link to the 3rd party lib, and needs its dll for
 execution (obviously), so I feel the need for copying this DLL to my libs
 'install/bin' folder, so that any of my executables can run, without getting
 a '...dll not found'.
 
 
 
 I wrote cmake macros to generate a batch file containing cmake -e
 commands to copy the dlls to each configuration. This I run as a
 target in my projects.
 
 John
 --
 
 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://www.cmake.org/mailman/listinfo/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://www.cmake.org/mailman/listinfo/cmake


[Cmake-commits] CMake branch, master, updated. v2.8.8-154-ge78483c

2012-05-15 Thread Kitware Robot
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project CMake.

The branch, master has been updated
   via  e78483c08e1f7753509afa4d4aab94274cd6b861 (commit)
  from  0977250ba0dabbefc6eab5a7bf18bd6b4a04258f (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e78483c08e1f7753509afa4d4aab94274cd6b861
commit e78483c08e1f7753509afa4d4aab94274cd6b861
Author: Kitware Robot kwro...@kitware.com
AuthorDate: Wed May 16 00:01:03 2012 -0400
Commit: Kitware Robot kwro...@kitware.com
CommitDate: Wed May 16 00:01:03 2012 -0400

CMake Nightly Date Stamp

diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake
index 6bc7631..a8c6e04 100644
--- a/Source/CMakeVersion.cmake
+++ b/Source/CMakeVersion.cmake
@@ -2,5 +2,5 @@
 SET(CMake_VERSION_MAJOR 2)
 SET(CMake_VERSION_MINOR 8)
 SET(CMake_VERSION_PATCH 8)
-SET(CMake_VERSION_TWEAK 20120515)
+SET(CMake_VERSION_TWEAK 20120516)
 #SET(CMake_VERSION_RC 1)

---

Summary of changes:
 Source/CMakeVersion.cmake |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)


hooks/post-receive
-- 
CMake
___
Cmake-commits mailing list
Cmake-commits@cmake.org
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-commits