[cmake-developers] [CMake 0013222]: The CMake functions: check_function_exists(), the check_library_exists(), and the find_package() fail
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 ?
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
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
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
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
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
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?
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?
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?
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 ...)
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?
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?
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/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?
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
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?
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?
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?
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
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