Re: [CMake] CMake Coverage broken with Ninja
Hi Brad, thanks for that information. It is great to see that you are working on this. Could you already verify if this problem is also the cause for the coverage issue? On 09/05/2017 01:31 PM, Brad King wrote: > On 09/02/2017 03:14 AM, Gerhard Gappmeier wrote: >> This is quite annoying, inconsistent with Makefiles and was already >> reported once here: https://cmake.org/Bug/print_bug_page.php?bug_id=13894 >> AFAIK this was never fixed. > Discussion of that issue is now here: > > https://gitlab.kitware.com/cmake/cmake/issues/13894 > > We made a serious attempt to fix it, but ran into a major problem > described here: > > https://gitlab.kitware.com/cmake/cmake/issues/13894#note_233789 > > Fixing it requires a feature in Ninja: > > https://github.com/ninja-build/ninja/issues/1251 > > I posted a proposal to their list about it but got no response: > > https://groups.google.com/forum/#!topic/ninja-build/yJvs7u0n2iA > > --- > > One may use out-of-source builds to get absolute paths to the files > in the main source tree. > > -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
Re: [CMake] CMake Coverage broken with Ninja
Hi Haocheng, thanks for helping. I guess this has to do with another issue. The Ninja generator generates different paths then the default Unix Makefile generator. This leads to the following behavior in normal build operations: I introduced a warning in the printf line to demonstrate this. With Makefiles: mkdir bld && cd bld && cmake .. Build inside Vim using ":make" [ 50%] Building C object CMakeFiles/demo.dir/main.c.o /home/gergap/tmp/demo/main.c: In function ‘main’: /home/gergap/tmp/demo/main.c:5:12: warning: format ‘%i’ expects a matching ‘int’ argument [-Wformat=] printf("Hello World %i\n"); ^ [100%] Linking C executable demo [100%] Built target demo Press ENTER or type command to continue as you can see the warning message contains the absolute path, so parsing the errors works for Vim (Emacs, or whatever tool), and you can jump to the error location. Now the same with Ninja: mkdir bld && cd bld && cmake -GNinja .. Build inside Vim using ":make" (use ":set makeprg=ninja" first) cd into build dir '/home/gergap/tmp/demo/bld/../bld'... executing ninja... [1/2] Building C object CMakeFiles/demo.dir/main.c.o ../main.c: In function ‘main’: ../main.c:5:12: warning: format ‘%i’ expects a matching ‘int’ argument [-Wformat=] printf("Hello World %i\n"); ^ [2/2] Linking C executable demo cd back /home/gergap/tmp/demo/bld Press ENTER or type command to continue As you can see now the paths are relative to the build folder, thus jumping to the error location only works when Vim has the build folder set as working dir, and this is typically not the case. This is quite annoying, inconsistent with Makefiles and was already reported once here: https://cmake.org/Bug/print_bug_page.php?bug_id=13894 AFAIK this was never fixed. Now I suspect this to be also the reason for the coverage issues. I hope this helps. On 09/01/2017 04:09 PM, Haocheng Liu wrote: > > > On Fri, Sep 1, 2017 at 9:41 AM, Gerhard Gappmeier > <gerhard.gappme...@ascolab.com <mailto:gerhard.gappme...@ascolab.com>> > wrote: > > Hi Haocheng, > > `chcp` seems to be a Windows command. > I'm talking about Linux, which is UTF-8 by default: > > $> locale > LANG=en_US.utf8 > LC_CTYPE="en_US.utf8" > LC_NUMERIC="en_US.utf8" > LC_TIME="en_US.utf8" > LC_COLLATE="en_US.utf8" > LC_MONETARY="en_US.utf8" > LC_MESSAGES="en_US.utf8" > LC_PAPER="en_US.utf8" > LC_NAME="en_US.utf8" > LC_ADDRESS="en_US.utf8" > LC_TELEPHONE="en_US.utf8" > LC_MEASUREMENT="en_US.utf8" > LC_IDENTIFICATION="en_US.utf8" > LC_ALL= > > any ideas for the Linux platform? > > Hum, I tried your example, the problem is > that ${CMAKE_BUILD_DIRECTORY}/testing is missing a main.c file. If I > create a fake file and the coverage reports 100%. I've Cc Brad King > since He is most familiar with Ninja related issues. > > > mit freundlichen Grüßen / best regards > > *Gerhard Gappmeier* > ascolab GmbH - automation systems communication laboratory > Tel.: +49 911 569846 203 <tel:+49%20911%20569846203> > Fax: +49 911 569846 400 <tel:+49%20911%20569846400> > Web: http://www.ascolab.com > GPG-KeyId: 7A78B0A7 > GPG-Fingerprint: A964 56A2 32E9 A537 AB7E EBD6 8D09 0D72 7A78 B0A7 > > -- > *ascolab GmbH* > Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß > Sitz der Gesellschaft: An der Kaufleite 34 • 90562 Kalchreuth • > Germany > Registernummer: HRB 9360 > Registergericht: Amtsgericht Fürth > > On 09/01/2017 02:49 PM, Haocheng Liu wrote: >> chcp 65001 > > > > > -- > Best regards > Haocheng > > Haocheng LIU > Kitware, Inc. > R Engineer > 21 Corporate Drive > Clifton Park, NY 12065-8662 > Phone: 518-881-4421 <tel:%28518%29%20881-4421> -- 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
Re: [CMake] CMake Coverage broken with Ninja
Hi Haocheng, `chcp` seems to be a Windows command. I'm talking about Linux, which is UTF-8 by default: $> locale LANG=en_US.utf8 LC_CTYPE="en_US.utf8" LC_NUMERIC="en_US.utf8" LC_TIME="en_US.utf8" LC_COLLATE="en_US.utf8" LC_MONETARY="en_US.utf8" LC_MESSAGES="en_US.utf8" LC_PAPER="en_US.utf8" LC_NAME="en_US.utf8" LC_ADDRESS="en_US.utf8" LC_TELEPHONE="en_US.utf8" LC_MEASUREMENT="en_US.utf8" LC_IDENTIFICATION="en_US.utf8" LC_ALL= any ideas for the Linux platform? mit freundlichen Grüßen / best regards *Gerhard Gappmeier* ascolab GmbH - automation systems communication laboratory Tel.: +49 911 569846 203 Fax: +49 911 569846 400 Web: http://www.ascolab.com GPG-KeyId: 7A78B0A7 GPG-Fingerprint: A964 56A2 32E9 A537 AB7E EBD6 8D09 0D72 7A78 B0A7 -- *ascolab GmbH* Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß Sitz der Gesellschaft: An der Kaufleite 34 • 90562 Kalchreuth • Germany Registernummer: HRB 9360 Registergericht: Amtsgericht Fürth On 09/01/2017 02:49 PM, Haocheng Liu wrote: > chcp 65001 -- 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
[CMake] CMake Coverage broken with Ninja
hi all, just recently I discovered that our coverage builds on CDash don't work anymore. By analyzing the problem I found out that this is related to Ninja generator. I don't know when the problem was introduced but it still exists with CMake 3.9.1. (GCC and gcov are version 4.9.4, but this is not important) I attached a simple test program to reproduce the problem. $> tar xf demo.tar.gz $> cd demo $> mkdir bld $> cmake -GNinja .. $> ninja Nightly ... Configure project Each . represents 1024 bytes of output . Size of output: 0K Build project Each symbol represents 1024 bytes of output. '!' represents an error and '*' a warning. . Size of output: 0K 0 Compiler errors 0 Compiler warnings Test project /home/gergap/tmp/cmaketest/bld Start 1: mytest 1/1 Test #1: mytest ... Passed0.00 sec 100% tests passed, 0 tests failed out of 1 Total Test time (real) = 0.00 sec Performing coverage Processing coverage (each . represents one file): . Accumulating results (each . represents one file): .Cannot find file: /home/gergap/tmp/cmaketest/bld/Testing/main.c Covered LOC: 0 Not covered LOC: 0 Total LOC: 0 Percentage Coverage: 0.00% ... When using make instead everything works as expected. $> tar xf demo.tar.gz $> cd demo $> mkdir bld $> cmake .. $> make Nightly Configure project Each . represents 1024 bytes of output . Size of output: 0K Build project Each symbol represents 1024 bytes of output. '!' represents an error and '*' a warning. . Size of output: 0K 0 Compiler errors 0 Compiler warnings Test project /home/gergap/tmp/cmaketest/bld Start 1: mytest 1/1 Test #1: mytest ... Passed0.00 sec 100% tests passed, 0 tests failed out of 1 Total Test time (real) = 0.00 sec Performing coverage Processing coverage (each . represents one file): . Accumulating results (each . represents one file): . Covered LOC: 3 Not covered LOC: 0 Total LOC: 3 Percentage Coverage: 100.00% Is this problem known? Are there any fixes/workaround available? -- mit freundlichen Grüßen / best regards *Gerhard Gappmeier* ascolab GmbH - automation systems communication laboratory Tel.: +49 911 569846 203 Fax: +49 911 569846 400 Web: http://www.ascolab.com GPG-KeyId: 7A78B0A7 GPG-Fingerprint: A964 56A2 32E9 A537 AB7E EBD6 8D09 0D72 7A78 B0A7 -- *ascolab GmbH* Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß Sitz der Gesellschaft: An der Kaufleite 34 • 90562 Kalchreuth • Germany Registernummer: HRB 9360 Registergericht: Amtsgericht Fürth demo.tar.gz Description: application/gzip -- 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
[CMake] Idea: CMake IRC Bot
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hi CMake Devs, maybe this idea is not new or you even have something like that, so please let me know. Wouldn't it be cool to have an IRC bot for cmake which we could use to control builds and get build notifications? What I'm thinking of is this: * for each project on CDash you can configure an IRC channel, by default # or #-ci. * you can trigger a build manually or periodically on a given branch. - build []: one shot build if no inteval is given, periodic otherwise where type is: Continuous, Nightly, Experimental - list: lists all registered build configurations - remove : for removing a configured build config * getting notifications posted in the project channel: FAILED (w=50) , similar to emails a link for the CDash website can also be posted to view the results in detail. Of course many more commands would be possible. The possibilities of using IRC are endless: E.g. you could integrate a build-status script in TMUX statusbar to show a nice icon for your project status. I think the main things that are missing at the moment, except for the obvious IRC code are: * a communication channels between CDash and the build machines, so that CDash can trigger the builds (I can remember a discussion that something like that was planned, but I don't know the current status of this) Why not use also IRC commands between CDash (build-master) and the build-slaves? * a framework which does the initial cloning of configured projects, checkout the right branch, submodule init/sync/update, and call cmake. This needs to be done before "make Continuous" works. We created some BASH scripts for this in our company, but I feel this is something that needs a more generic solution and almost everybody needs that. This should also be able to report some Git checkout errors, e.g. if a Git submodule reference is invalid. What do you think? - -- mit freundlichen Grüßen / best regards *Gerhard Gappmeier* ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG-KeyId: 5AAC50C4 GPG-Fingerprint: 967A 15F1 2788 164D CCA3 6C46 07CD 6F82 5AAC 50C4 - -- *ascolab GmbH* Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß Sitz der Gesellschaft: Am Weichselgarten 7 • 91058 Erlangen • Germany Registernummer: HRB 9360 Registergericht: Amtsgericht Fürth -BEGIN PGP SIGNATURE- Version: GnuPG v2 iEYEARECAAYFAlXpTpgACgkQB81vglqsUMRDLgCfco6/hYYm/dYZYIoOBHN3asHr sX8AmwdpCSk+sjrWd91n/h0+2tpqv3UY =eYO/ -END PGP SIGNATURE- -- 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
Re: [CMake] E-Mail Notification of CDash is not working anymore
thx for the reply and sorry for the late response. I've checked this, and except for one I believe the settings are correct. What I don't understand is what this is for? The CDash server has a local git clone and can access all commits, so I don't understand what this credential is for when using git. I've the E-Mail address configured for the credential which is used also for git author info. Is this correct? What is CDash doing with this credential info? On Friday, January 23, 2015 03:03:08 PM Julien Jomier wrote: Hi Gerhard, Can you check that the Repository Credentials associated with the user for a given project is matching the git commits information (email I suppose)? http://yourCDashURL/manageProjectRoles.php?projectid=yourProjectId Julien On 23/01/2015 14:51, Gerhard Gappmeier wrote: Hi I'm actually not sure since when this is broken, but I'm pretty sure that it worked already. Actually I'm using CDash 2.2.3. When I configure the project susbcription to send emails on when my checkins are causing problems in any sections of the dashboard and notification in the user settings to email checkins I don't get any email when a new commit breaks the build. If I change email checkins to all emails then I get emails. So email sending works in general. However, most developers want to get emails only for the commits which they have broken, and not for all emails. The git commits contains correct author information with email, so that's not the problem. Any ideas what could be missing in the configuration? or is this maybe a known bug? -- mit freundlichen Grüßen / best regards Gerhard Gappmeier ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG-KeyId: 5AAC50C4 GPG-Fingerprint: 967A 15F1 2788 164D CCA3 6C46 07CD 6F82 5AAC 50C4 -- ascolab GmbH Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß Sitz der Gesellschaft: Am Weichselgarten 7 • 91058 Erlangen • Germany Registernummer: HRB 9360 Registergericht: Amtsgericht Fürth -- mit freundlichen Grüßen / best regards Gerhard Gappmeier ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG-KeyId: 5AAC50C4 GPG-Fingerprint: 967A 15F1 2788 164D CCA3 6C46 07CD 6F82 5AAC 50C4 -- ascolab GmbH Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß Sitz der Gesellschaft: Am Weichselgarten 7 • 91058 Erlangen • Germany Registernummer: HRB 9360 Registergericht: Amtsgericht Fürth -- 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
[CMake] E-Mail Notification of CDash is not working anymore
Hi I'm actually not sure since when this is broken, but I'm pretty sure that it worked already. Actually I'm using CDash 2.2.3. When I configure the project susbcription to send emails on when my checkins are causing problems in any sections of the dashboard and notification in the user settings to email checkins I don't get any email when a new commit breaks the build. If I change email checkins to all emails then I get emails. So email sending works in general. However, most developers want to get emails only for the commits which they have broken, and not for all emails. The git commits contains correct author information with email, so that's not the problem. Any ideas what could be missing in the configuration? or is this maybe a known bug? -- mit freundlichen Grüßen / best regards Gerhard Gappmeier ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG-KeyId: 5AAC50C4 GPG-Fingerprint: 967A 15F1 2788 164D CCA3 6C46 07CD 6F82 5AAC 50C4 -- ascolab GmbH Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß Sitz der Gesellschaft: Am Weichselgarten 7 • 91058 Erlangen • Germany Registernummer: HRB 9360 Registergericht: Amtsgericht Fürth-- 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
[CMake] CTest XML format
Hi all, we want to archive our unittest results, code coverage etc. when we release a product. Therefor we want to store the generated XML files in TestLink. However when we need to look at the results again we need to display them somehow. So I have some questions regarding the format: 1.) I found this link: http://public.kitware.com/Wiki/CDash:XML What is missing for me at the moment is a description of the Measurement Value field in Test.xml My files contain values using encoding=Base64 and compression=gzip. I base64 decoded these values and tried to gunzip, but it is not a valid gzip file. I also tried pure deflate, but also no success. So how are these values encoded/compressed in detail? 2.) Is there a way to re-import these values later on into CDash for inspection? 3.) Is there another GUI for inspecting these files? (Configure, Build and Test.xml) 4.) Do you know of any import filter for TestLink, so that the results could be directly be shown inside TestLink? http://testlink.org/ regards, Gerhard. -- 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
Re: [CMake] CTest XML format
Hi, I was able to figure out my first question. The first two bytes of the binary data was 78 9C. This is the file header of Zlib data with default compression. So by adding the correct gzip header manually you can decompress it. Assume the base64 data from XML is saved in ~/test.base64 you can unpack the data this way: base64 -d ~/test.base64 ~/test.bin printf \x1f\x8b\x08\x00\x00\x00\x00\x00 | cat - ~/test.bin | gzip -dc Am 17.11.2014 11:20, schrieb Gerhard Gappmeier: Hi all, we want to archive our unittest results, code coverage etc. when we release a product. Therefor we want to store the generated XML files in TestLink. However when we need to look at the results again we need to display them somehow. So I have some questions regarding the format: 1.) I found this link: http://public.kitware.com/Wiki/CDash:XML What is missing for me at the moment is a description of the Measurement Value field in Test.xml My files contain values using encoding=Base64 and compression=gzip. I base64 decoded these values and tried to gunzip, but it is not a valid gzip file. I also tried pure deflate, but also no success. So how are these values encoded/compressed in detail? 2.) Is there a way to re-import these values later on into CDash for inspection? 3.) Is there another GUI for inspecting these files? (Configure, Build and Test.xml) 4.) Do you know of any import filter for TestLink, so that the results could be directly be shown inside TestLink? http://testlink.org/ regards, Gerhard. -- 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
[CMake] Problem with CPack components
Hi, I'm generating deb packages for a project using CPack. This project contains a lot of libraries which are used the build the final applications. Because I don't want to distribute the headers and static libraries in the package, but only the executable I tried to use the components to filter what should be included in the package. (like documented here: http://www.cmake.org/Wiki/CMake:Component_Install_With_CPack) However it doesn't work for me. CPack always includes all components. For reproducing this I created a every simple project with just two dummy install targets (no source, no compilation necessary). To reproduce this please do the following: mkdir cpacktest cd cpacktest touch foo.txt touch bar.txt and create the following CMakeLists.txt: project(cpacktest) cmake_minimum_required(VERSION 2.8) # project version info set(MAJOR_VERSION 1) set(MINOR_VERSION 0) set(PATCH_VERSION 0) # create some dummy install targets for testing components install(FILES foo.txt DESTINATION bin COMPONENT applications) install(FILES bar.txt DESTINATION bin COMPONENT libraries) #{{{ Debian package generation ### # IF(EXISTS ${CMAKE_ROOT}/Modules/CPack.cmake) INCLUDE(InstallRequiredSystemLibraries) SET(CPACK_SET_DESTDIR on) SET(CPACK_PACKAGING_INSTALL_PREFIX /tmp) SET(CPACK_GENERATOR DEB) SET(CPACK_PACKAGE_DESCRIPTION CPack Component Test) SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY Testing filtering for CPack components) SET(CPACK_PACKAGE_VENDOR ACME Inc.) SET(CPACK_PACKAGE_CONTACT i...@acme.com) SET(CPACK_PACKAGE_VERSION_MAJOR ${MAJOR_VERSION}) SET(CPACK_PACKAGE_VERSION_MINOR ${MINOR_VERSION}) SET(CPACK_PACKAGE_VERSION_PATCH ${PATCH_VERSION}) SET(CPACK_PACKAGE_FILE_NAME ${CMAKE_PROJECT_NAME}_${MAJOR_VERSION}.${MINOR_VERSION}. ${CPACK_PACKAGE_VERSION_PATCH}) SET(CPACK_SOURCE_PACKAGE_FILE_NAME ${CMAKE_PROJECT_NAME}_${MAJOR_VERSION}.${MINOR_VERSION}. ${CPACK_PACKAGE_VERSION_PATCH}) SET(CPACK_DEBIAN_COMPONENT_INSTALL ON) SET(CPACK_DEBIAN_PACKAGE_DEPENDS libcrack2 (= 2.9.1), libqt5core5a (= 5.3.0), libqt5widgets5 (= 5.3.0), libqt5gui5 (= 5.3.0)) SET(CPACK_DEBIAN_PACKAGE_PRIORITY optional) SET(CPACK_DEBIAN_PACKAGE_SECTION kde) SET(CPACK_DEBIAN_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR}) # only pack the applications component, leave out all other components SET(CPACK_COMPONENTS_ALL applications) INCLUDE(CPack) ENDIF(EXISTS ${CMAKE_ROOT}/Modules/CPack.cmake) ### # #}}} Building the package: mkdir bld cd bld cmake -DCMAKE_INSTALL_PREFIX=/usr .. cpack This will build the deb package. Or alternatively use this for creating a TGZ cpack -G TGZ Result: The created packages contain both foo.txt and bar.txt. Expected Result: The package should contain only foo.txt I don't know if this is a bug, or if something is missing here in my CMakeLists.txt. I hope you can help me. -- mit freundlichen Grüßen / best regards Gerhard Gappmeier ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG-KeyId: 5AAC50C4 GPG-Fingerprint: 967A 15F1 2788 164D CCA3 6C46 07CD 6F82 5AAC 50C4 -- ascolab GmbH Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß Sitz der Gesellschaft: Am Weichselgarten 7 • 91058 Erlangen • Germany Registernummer: HRB 9360 Registergericht: Amtsgericht Fürth -- 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
Re: [CMake] Problem with CPack components
Hi all, I debugged the generation process and found out the problems. (using latest git master, cmake 3.0) 1.) It's named CPACK_DEB_COMPONENT_INSTALL and not CPACK_DEBIAN_COMPONENT_INSTALL! This is a little bit confusing, because all other Debian variables start with CPACK_DEBIAN_* But the wiki states CPACK_GENNAME_COMPONENT_INSTALL, where GENAME is DEB and not DEBIAN. This could be made a little bit clearer to avoid confusion. 2.) set(CPACK_COMPONENTS_ALL_IN_ONE_PACKAGE 1) is required to create a single package. 3.) For Archive installers TGZ, ZIP, etc. the variable CPACK_ARCHIVE_COMPONENT_INSTALL must be used, and not CPACK_TGZ_COMPONENT_INSTALL, or CPACK_ZIP_COMPONENT_INSTALL. This is wrong in the wiki. Here is a working version of my example: project(cpacktest) cmake_minimum_required(VERSION 2.8) # project version info set(MAJOR_VERSION 1) set(MINOR_VERSION 0) set(PATCH_VERSION 0) # create some dummy install targets for testing components install(FILES foo.txt DESTINATION bin COMPONENT applications) install(FILES bar.txt DESTINATION bin COMPONENT libraries) #{{{ Debian package generation ### # IF(EXISTS ${CMAKE_ROOT}/Modules/CPack.cmake) INCLUDE(InstallRequiredSystemLibraries) SET(CPACK_SET_DESTDIR on) SET(CPACK_PACKAGING_INSTALL_PREFIX /tmp) SET(CPACK_GENERATOR DEB) SET(CPACK_PACKAGE_DESCRIPTION CPack Component Test) SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY Testing filtering for CPack components) SET(CPACK_PACKAGE_VENDOR ACME Inc.) SET(CPACK_PACKAGE_CONTACT i...@acme.com) SET(CPACK_PACKAGE_VERSION_MAJOR ${MAJOR_VERSION}) SET(CPACK_PACKAGE_VERSION_MINOR ${MINOR_VERSION}) SET(CPACK_PACKAGE_VERSION_PATCH ${PATCH_VERSION}) SET(CPACK_PACKAGE_FILE_NAME ${CMAKE_PROJECT_NAME}_${MAJOR_VERSION}.${MINOR_VERSION}. ${CPACK_PACKAGE_VERSION_PATCH}) SET(CPACK_SOURCE_PACKAGE_FILE_NAME ${CMAKE_PROJECT_NAME}_${MAJOR_VERSION}.${MINOR_VERSION}. ${CPACK_PACKAGE_VERSION_PATCH}) SET(CPACK_ARCHIVE_COMPONENT_INSTALL ON) SET(CPACK_DEB_COMPONENT_INSTALL ON) SET(CPACK_DEBIAN_PACKAGE_DEPENDS libcrack2 (= 2.9.1), libqt5core5a (= 5.3.0), libqt5widgets5 (= 5.3.0), libqt5gui5 (= 5.3.0)) SET(CPACK_DEBIAN_PACKAGE_PRIORITY optional) SET(CPACK_DEBIAN_PACKAGE_SECTION kde) SET(CPACK_DEBIAN_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR}) set(CPACK_COMPONENTS_ALL_IN_ONE_PACKAGE 1) # only pack the applications component, leave out all other components SET(CPACK_COMPONENTS_ALL applications) INCLUDE(CPack) ENDIF(EXISTS ${CMAKE_ROOT}/Modules/CPack.cmake) ### # #}}} Now, that this is correct it also works with cmake 2.8.12. regards, Gerhard. PS: The best documentation is always source code. Open Source rules! On Thursday, July 10, 2014 09:35:56 AM Gerhard Gappmeier wrote: Hi, I'm generating deb packages for a project using CPack. This project contains a lot of libraries which are used the build the final applications. Because I don't want to distribute the headers and static libraries in the package, but only the executable I tried to use the components to filter what should be included in the package. (like documented here: http://www.cmake.org/Wiki/CMake:Component_Install_With_CPack) However it doesn't work for me. CPack always includes all components. For reproducing this I created a every simple project with just two dummy install targets (no source, no compilation necessary). To reproduce this please do the following: mkdir cpacktest cd cpacktest touch foo.txt touch bar.txt and create the following CMakeLists.txt: project(cpacktest) cmake_minimum_required(VERSION 2.8) # project version info set(MAJOR_VERSION 1) set(MINOR_VERSION 0) set(PATCH_VERSION 0) # create some dummy install targets for testing components install(FILES foo.txt DESTINATION bin COMPONENT applications) install(FILES bar.txt DESTINATION bin COMPONENT libraries) #{{{ Debian package generation ### # IF(EXISTS ${CMAKE_ROOT}/Modules/CPack.cmake) INCLUDE(InstallRequiredSystemLibraries) SET(CPACK_SET_DESTDIR on) SET(CPACK_PACKAGING_INSTALL_PREFIX /tmp) SET(CPACK_GENERATOR DEB) SET(CPACK_PACKAGE_DESCRIPTION CPack Component Test) SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY Testing filtering for CPack components) SET(CPACK_PACKAGE_VENDOR ACME Inc.) SET(CPACK_PACKAGE_CONTACT i...@acme.com) SET(CPACK_PACKAGE_VERSION_MAJOR ${MAJOR_VERSION}) SET(CPACK_PACKAGE_VERSION_MINOR ${MINOR_VERSION}) SET(CPACK_PACKAGE_VERSION_PATCH ${PATCH_VERSION}) SET(CPACK_PACKAGE_FILE_NAME ${CMAKE_PROJECT_NAME}_${MAJOR_VERSION}.${MINOR_VERSION}.-- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki
[CMake] Suppressing -rdynamic in toolchain file
Hi I'm trying to use -ffunction-sections -fdata-sections as C_FLAGS and -Wl,--gc- sections when cross-compiling for my ARM Linux target. The gc-sections option does not work because CMake adds the -rdynamic flag which exports all symbols, also the unused ones. I already figured out that I can suppress this be setting set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS ) This work is the CMakeLists.txt files, but it does not work from a toolchain file. But I want to configure this in my toolchain file, because this setting is specific for this single target. It is not an option add this as generic setting for all targets. I also tried this: set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS CACHE INTERNAL FORCE) But this does not work either. I believe this is a problem of the order how CMake files are processed. It looks like the toolchain file is processed first and then /usr/share/cmake/Modules/Platform/Linux-GNU.cmake which overwrites the toolchain settings (just a guess) BTW: I had similar problems with settings CMAKE_C_FLAGS, etc. from the toochain file. # this does not work SET(CMAKE_C_FLAGS -Wall -Wextra -std=gnu99 -fdata-sections -ffunction- sections) # with CACHE FORCE it does work SET(CMAKE_C_FLAGS -Wall -Wextra -std=gnu99 -fdata-sections -ffunction- sections CACHE INTERNAL c compiler flags FORCE) I'm not sure if this was intended. And for CMAKE_SHARED_LIBRARY_LINK_C_FLAGS this does not work either, as explained above. I hope somebody can clarify how this options can be configured properly the CMake way. PS: I'm using cmake version 2.8.12.2 -- mit freundlichen Grüßen / best regards Gerhard Gappmeier ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG-KeyId: 5AAC50C4 GPG-Fingerprint: 967A 15F1 2788 164D CCA3 6C46 07CD 6F82 5AAC 50C4 -- ascolab GmbH Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß Sitz der Gesellschaft: Am Weichselgarten 7 • 91058 Erlangen • Germany Registernummer: HRB 9360 Registergericht: Amtsgericht Fürth signature.asc Description: This is a digitally signed message part. -- 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://www.cmake.org/mailman/listinfo/cmake
[CMake] extract GNU build-id
Hi all, I want to extract the GNU build-id which is creates by the linker using -Wl,--build-id. In a BASH script I can do it this way: BUILD_ID=`readelf -n demo.debug | grep Build ID: | sed -e 's/.*\([a-f0-9]\{40\}\).*/\1/g'` But I'm not sure I can do that with CMake. Actually I'm working on a cmake file which provides me split_debug_info and install_debug_info functions. That's what I have currently, but as you can see in the TODOs some parts are missing at the moment. # find path to git executable find_program(OBJCOPY objcopy) find_program(STRIP strip) set(SYMBOLDIR /mnt/symbols) function(split_debug_info _target) get_target_property(filename ${_target} LOCATION) add_custom_target(splitdebug COMMAND ${OBJCOPY} --only-keep-debug ${filename} ${filename}.debug COMMAND ${STRIP} -g ${filename}) endfunction() function(install_debug_info _target) get_target_property(filename ${_target} LOCATION) get_filename_component(basename ${filename}.debug NAME) # TODO: get BUILDID from ${filename}.debug SET(BUILDID 1234567890) STRING(SUBSTRING ${BUILDID} 0 2 BUILDIDPREFIX) STRING(SUBSTRING ${BUILDID} 2 38 BUILDIDSUFFIX) # install file in product structure add_custom_target(installdebugsymbols COMMAND ${CMAKE_COMMAND} -E copy ${filename}.debug ${SYMBOLDIR}/${PRODUCTNAME}/${VERSION}/${basename}) # create symlink in /mnt/symbols/.build-id/nn/.debug # TODO: ln -s ${SYMBOLDIR}/${PRODUCTNAME}/${VERSION}/${basename} # ${SYMBOLDIR}/.build-id/${BUILDIDPREFIX}/${BUILDIDSUFFIX}.debug endfunction() -- mit freundlichen Grüßen / best regards *Gerhard Gappmeier* ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG-KeyId: 5AAC50C4 GPG-Fingerprint: 967A 15F1 2788 164D CCA3 6C46 07CD 6F82 5AAC 50C4 -- *ascolab GmbH* Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß Sitz der Gesellschaft: Am Weichselgarten 7 . 91058 Erlangen . Germany Registernummer: HRB 9360 Registergericht: Amtsgericht Fürth signature.asc Description: OpenPGP digital signature -- 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://www.cmake.org/mailman/listinfo/cmake
[CMake] Building a MS COM Dll with Cmake
Hi I'm working on a project which is completely portable, except of one COM wrapper Dll which should be built only on windows. To be consistent with the other parts I also want to build this COM Dll using CMake like I do we the rest of the project. However I don't know how to do this MS magic with CMake. 1.) How do I add a MIDL buildstep? VS normally creates a Typelibrary (TLB) from the IDL file and links this as resource into the DLL. This is necesarry later on for Dll registration. 2.) Also the foo_i.c and foo.h files are generated from foo.idl by the midl compiler which must be compiled with the project. 3.) There are additional rgs-files (registry resources) to add. How do I do that? 4.) Also the version info must be compiled into the dll. Based on a .rc file which includes all vendor info. So set_target_properties VERSION would not be sufficient. It would be great if somebody has an example for a simple COM Dll project. I hope this is possible. -- mit freundlichen Grüßen / best regards *Gerhard Gappmeier* ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG-KeyId: 5AAC50C4 GPG-Fingerprint: 967A 15F1 2788 164D CCA3 6C46 07CD 6F82 5AAC 50C4 -- *ascolab GmbH* Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß Sitz der Gesellschaft: Am Weichselgarten 7 . 91058 Erlangen . Germany Registernummer: HRB 9360 Registergericht: Amtsgericht Fürth ___ 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] Setting special visual studio options from CMake
Hi, for one project I need to set special linker options in Visual Studio. I tried this: SET(CMAKE_SHARED_LINKER_FLAGS ${CMAKE_SHARED_LINKER_FLAGS} /BASE:0x6100 /DYNAMICBASE:NO /FIXED) but the generated project now shows my options in the Additional options section, and still shows the default settings like /DYNAMICBASE in the advanced section. It compiles and links without error, but I don't think the result is correct. Any ideas how these settings could be set from CMake? -- mit freundlichen Grüßen / best regards *Gerhard Gappmeier* ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG-KeyId: 5AAC50C4 GPG-Fingerprint: 967A 15F1 2788 164D CCA3 6C46 07CD 6F82 5AAC 50C4 -- *ascolab GmbH* Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß Sitz der Gesellschaft: Am Weichselgarten 7 . 91058 Erlangen . Germany Registernummer: HRB 9360 Registergericht: Amtsgericht Fürth ___ 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] Sporadic mail sending issues
I'm working on trunk now and the SendEmail error seems to be fixed now. At least it did not show up the whole day. Thx a lot. On Friday 14 January 2011 17:49:33 Gerhard Gappmeier wrote: Thx, I'll give it a try on monday, it's getting late here already ;-) Have a nice weekend. Am 14.01.2011 17:26, schrieb David Cole: I've inquired of the other CDash developers, and Zach Mullen made email related enhancements in svn revision 2827 in the trunk of the CDash code base. Maybe you could try running with an svn trunk on a test server to see if it resolves your issue? HTH, David On Fri, Jan 14, 2011 at 7:32 AM, David Cole david.c...@kitware.com wrote: Maybe you could post this on the CDash mailing list? On Fri, Jan 14, 2011 at 3:48 AM, Gerhard Gappmeier gerhard.gappme...@ascolab.com wrote: Hello From time to time I have the problem that I see such errors in the CDash Error Log. The overall mail sending works and the users all have mail addresses configured, so how can this happen? I don't really understand this error message. * The users exist * The users all have configured mails * I can only configured global mail address in the user profile - is there a project specific mail configuration somewhere? ... Warning reported on 2011-01-14 09:24:01 for build #145 (SendEmail): User: Matthias Picard is not registered (or has no email) for the project 3 Warning reported on 2011-01-14 09:24:01 for build #145 (SendEmail): User: Benjamin Riker is not registered (or has no email) for the project 3 ...(names changed) -- Gerhard Gappmeier ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG Key Id: 5AAC50C4 GPG Fingerprint: 967A 15F1 2788 164D CCA3 6C46 07CD 6F82 5AAC 50C4 -- ascolab GmbH Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß Sitz der Gesellschaft: Am Weichselgarten 7 . 91058 Erlangen . Germany Registernummer: HRB 9360 Registergericht: Amtsgericht Fürth ___ 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 -- Gerhard Gappmeier ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG Key Id: 5AAC50C4 GPG Fingerprint: 967A 15F1 2788 164D CCA3 6C46 07CD 6F82 5AAC 50C4 -- ascolab GmbH Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß Sitz der Gesellschaft: Am Weichselgarten 7 . 91058 Erlangen . Germany Registernummer: HRB 9360 Registergericht: Amtsgericht Fürth ___ 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] ctest crashes with HTTPS drop method
Hi I tried to change the drop method from HTTP to HTTPS today, because I want to secure my server before I make it world accessible. However ctest crashes with segmentation fault. The apache server uses a self-signed certificate, maybe this causes the problem. How can I add this to the trust list? Does ctest have a trust list somewhere? I tried to add add it to /etc/ssl/certs, but this seems not to work. The coredump does not help a lot without debug symbols, but at least it shows the function that crashes: Core was generated by `ctest -D Experimental -VV'. Program terminated with signal 11, Segmentation fault. #0 0xb71ab900 in engine_unlocked_finish ()---Type return to continue, or q return to quit--- (gdb) bt #0 0xb71ab900 in engine_unlocked_finish () from /usr/lib/libcrypto.so.1.0.0 The output using -VV looks like this if it helps: ... Close file: CoverageLog-0.xml Covered LOC: 2154 Not covered LOC: 2823 Total LOC: 4977 Percentage Coverage: 43.28% UpdateCTestConfiguration from :/home/gergap/work/buildbot/sidusttng/build/DartConfiguration.tcl Parse Config file:/home/gergap/work/buildbot/sidusttng/build/DartConfiguration.tcl Submit files (using https) Using HTTP submit method Drop site:https://cdash.ascolab.com/CDash/submit.php?project=sidusttng Upload file: /home/gergap/work/buildbot/sidusttng/build/Testing/20110118-1644/Build.xml to https://cdash.ascolab.com/CDash/submit.php?project=sidusttngFileName=ws- gergap___Linux-c%2B%2B___20110118-1644- Experimental___XML___Build.xmlMD5=e27e48db416631db7f44d7e91e5f174f Size: 963 Segmentation fault (core dumped) Some version infos: gergap@ws-gergap ~ $ ctest --version ctest version 2.8.3 gergap@ws-gergap ~ $ eix -I -c openssl [I] dev-libs/openssl (1.0.0c@12/07/2010): full-strength general purpose cryptography library (including SSL v2/v3 and TLS v1) gergap@ws-gergap ~ $ uname -a Linux ws-gergap 2.6.36-gentoo-r1 #1 SMP PREEMPT Wed Dec 8 09:41:17 CET 2010 i686 Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz GenuineIntel GNU/Linux -- Gerhard Gappmeier ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG Key Id: 5AAC50C4 GPG Fingerprint: 967A 15F1 2788 164D CCA3 6C46 07CD 6F82 5AAC 50C4 -- ascolab GmbH Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß Sitz der Gesellschaft: Am Weichselgarten 7 . 91058 Erlangen . Germany Registernummer: HRB 9360 Registergericht: Amtsgericht Fürth ___ 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] ctest crashes with HTTPS drop method
Hi David, I compiled it using the Gentoo package manager: emerge cmake Gentoo compiles (almost) everything from source. But I did not do a manual cmake+make. Using ldd I can see that ctest is linked against openssl, so that should not be the problem. The coredump even shows that it crashes when the openssl function engine_unlocked_finish is called. Maybe I've time tomorrow to compile a debug version myself to get a better callstack. On Tuesday, January 18, 2011 06:59:43 pm David Cole wrote: Did you build ctest yourself, or are you using Kitware's pre-built binaries? The Kitware pre-built binaries do not have OpenSSL linked in. Therefore, you cannot submit via https with the pre-built binaries. If you built it yourself, you need to make sure the CMAKE_USE_OPENSSL option is ON. It's OFF by default. HTH, David On Tue, Jan 18, 2011 at 12:04 PM, Gerhard Gappmeier gerhard.gappme...@ascolab.com wrote: Hi I tried to change the drop method from HTTP to HTTPS today, because I want to secure my server before I make it world accessible. However ctest crashes with segmentation fault. The apache server uses a self-signed certificate, maybe this causes the problem. How can I add this to the trust list? Does ctest have a trust list somewhere? I tried to add add it to /etc/ssl/certs, but this seems not to work. The coredump does not help a lot without debug symbols, but at least it shows the function that crashes: Core was generated by `ctest -D Experimental -VV'. Program terminated with signal 11, Segmentation fault. #0 0xb71ab900 in engine_unlocked_finish ()---Type return to continue, or q return to quit--- (gdb) bt #0 0xb71ab900 in engine_unlocked_finish () from /usr/lib/libcrypto.so.1.0.0 The output using -VV looks like this if it helps: ... Close file: CoverageLog-0.xml Covered LOC: 2154 Not covered LOC: 2823 Total LOC: 4977 Percentage Coverage: 43.28% UpdateCTestConfiguration from :/home/gergap/work/buildbot/sidusttng/build/DartConfiguration.tcl Parse Config file:/home/gergap/work/buildbot/sidusttng/build/DartConfiguration.tcl Submit files (using https) Using HTTP submit method Drop site:https://cdash.ascolab.com/CDash/submit.php?project=sidusttng Upload file: /home/gergap/work/buildbot/sidusttng/build/Testing/20110118-1644/Build.xm l to https://cdash.ascolab.com/CDash/submit.php?project=sidusttngFileName=ws- gergap___Linux-c%2B%2B___20110118-1644-Experimental___XML___Build.xmlMD5 =e27e48db416631db7f44d7e91e5f174fSize: 963 Segmentation fault (core dumped) Some version infos: gergap@ws-gergap ~ $ ctest --version ctest version 2.8.3 gergap@ws-gergap ~ $ eix -I -c openssl [I] dev-libs/openssl (1.0.0c@12/07/2010): full-strength general purpose cryptography library (including SSL v2/v3 and TLS v1) gergap@ws-gergap ~ $ uname -a Linux ws-gergap 2.6.36-gentoo-r1 #1 SMP PREEMPT Wed Dec 8 09:41:17 CET 2010 i686 Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz GenuineIntel GNU/Linux -- Gerhard Gappmeier ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG Key Id: 5AAC50C4 GPG Fingerprint: 967A 15F1 2788 164D CCA3 6C46 07CD 6F82 5AAC 50C4 -- ascolab GmbH Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß Sitz der Gesellschaft: Am Weichselgarten 7 . 91058 Erlangen . Germany Registernummer: HRB 9360 Registergericht: Amtsgericht Fürth ___ 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 -- mit freundlichen Grüßen / best regards *Gerhard Gappmeier* ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG Key Id: 5AAC50C4 GPG Fingerprint: 967A 15F1 2788 164D CCA3 6C46 07CD 6F82 5AAC 50C4 -- *ascolab GmbH* Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß Sitz der Gesellschaft: Am Weichselgarten 7 . 91058 Erlangen . Germany Registernummer: HRB 9360 Registergericht: Amtsgericht Fürth ___ 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] ctest and git submodules
Hi David, with 2.8.3 the submodule update works. Thx. On Wednesday 12 January 2011 18:43:41 you wrote: Are you using CMake 2.8.3? If not, you should upgrade. There were some improvements made w.r.t. ctest_update and git repos in that release. I think the submodule update was one of them... HTH, David On Wed, Jan 12, 2011 at 12:16 PM, Gerhard Gappmeier gerhard.gappme...@ascolab.com wrote: Hi, my project is stored in a git repo with submodules. I'm wondering if ctest is updating also the submodules when running ctest Nightly|Continuous etc. or just the main repo. I believe not, unless I have some other problems with my test script. I could do a manual git pull git submodule init git submodule update before running ctest, but then ctest -D Continuous will do nothing because it doesn't detect the change anymore. Has anybody working ctest with git submodules? -- Gerhard Gappmeier ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG Key Id: 5AAC50C4 GPG Fingerprint: 967A 15F1 2788 164D CCA3 6C46 07CD 6F82 5AAC 50C4 -- ascolab GmbH Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß Sitz der Gesellschaft: Am Weichselgarten 7 . 91058 Erlangen . Germany Registernummer: HRB 9360 Registergericht: Amtsgericht Fürth ___ 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 -- Gerhard Gappmeier ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG Key Id: 5AAC50C4 GPG Fingerprint: 967A 15F1 2788 164D CCA3 6C46 07CD 6F82 5AAC 50C4 -- ascolab GmbH Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß Sitz der Gesellschaft: Am Weichselgarten 7 . 91058 Erlangen . Germany Registernummer: HRB 9360 Registergericht: Amtsgericht Fürth ___ 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] Sporadic mail sending issues
Hello From time to time I have the problem that I see such errors in the CDash Error Log. The overall mail sending works and the users all have mail addresses configured, so how can this happen? I don't really understand this error message. * The users exist * The users all have configured mails * I can only configured global mail address in the user profile - is there a project specific mail configuration somewhere? ... Warning reported on 2011-01-14 09:24:01 for build #145 (SendEmail): User: Matthias Picard is not registered (or has no email) for the project 3 Warning reported on 2011-01-14 09:24:01 for build #145 (SendEmail): User: Benjamin Riker is not registered (or has no email) for the project 3 ...(names changed) -- Gerhard Gappmeier ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG Key Id: 5AAC50C4 GPG Fingerprint: 967A 15F1 2788 164D CCA3 6C46 07CD 6F82 5AAC 50C4 -- ascolab GmbH Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß Sitz der Gesellschaft: Am Weichselgarten 7 . 91058 Erlangen . Germany Registernummer: HRB 9360 Registergericht: Amtsgericht Fürth ___ 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] Sporadic mail sending issues
Thx, I'll give it a try on monday, it's getting late here already ;-) Have a nice weekend. Am 14.01.2011 17:26, schrieb David Cole: I've inquired of the other CDash developers, and Zach Mullen made email related enhancements in svn revision 2827 in the trunk of the CDash code base. Maybe you could try running with an svn trunk on a test server to see if it resolves your issue? HTH, David On Fri, Jan 14, 2011 at 7:32 AM, David Cole david.c...@kitware.com wrote: Maybe you could post this on the CDash mailing list? On Fri, Jan 14, 2011 at 3:48 AM, Gerhard Gappmeier gerhard.gappme...@ascolab.com wrote: Hello From time to time I have the problem that I see such errors in the CDash Error Log. The overall mail sending works and the users all have mail addresses configured, so how can this happen? I don't really understand this error message. * The users exist * The users all have configured mails * I can only configured global mail address in the user profile - is there a project specific mail configuration somewhere? ... Warning reported on 2011-01-14 09:24:01 for build #145 (SendEmail): User: Matthias Picard is not registered (or has no email) for the project 3 Warning reported on 2011-01-14 09:24:01 for build #145 (SendEmail): User: Benjamin Riker is not registered (or has no email) for the project 3 ...(names changed) -- Gerhard Gappmeier ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG Key Id: 5AAC50C4 GPG Fingerprint: 967A 15F1 2788 164D CCA3 6C46 07CD 6F82 5AAC 50C4 -- ascolab GmbH Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß Sitz der Gesellschaft: Am Weichselgarten 7 . 91058 Erlangen . Germany Registernummer: HRB 9360 Registergericht: Amtsgericht Fürth ___ 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 -- mit freundlichen Grüßen / best regards *Gerhard Gappmeier* ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG-KeyId: 5AAC50C4 GPG-Fingerprint: 967A 15F1 2788 164D CCA3 6C46 07CD 6F82 5AAC 50C4 -- *ascolab GmbH* Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß Sitz der Gesellschaft: Am Weichselgarten 7 . 91058 Erlangen . Germany Registernummer: HRB 9360 Registergericht: Amtsgericht Fürth ___ 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] ctest and git submodules
Hi, my project is stored in a git repo with submodules. I'm wondering if ctest is updating also the submodules when running ctest Nightly|Continuous etc. or just the main repo. I believe not, unless I have some other problems with my test script. I could do a manual git pull git submodule init git submodule update before running ctest, but then ctest -D Continuous will do nothing because it doesn't detect the change anymore. Has anybody working ctest with git submodules? -- Gerhard Gappmeier ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG Key Id: 5AAC50C4 GPG Fingerprint: 967A 15F1 2788 164D CCA3 6C46 07CD 6F82 5AAC 50C4 -- ascolab GmbH Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß Sitz der Gesellschaft: Am Weichselgarten 7 . 91058 Erlangen . Germany Registernummer: HRB 9360 Registergericht: Amtsgericht Fürth ___ 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] Submitting to CDash fails with error 417
Hi all, I've setup CDash locally using lighttpd and created a test project helloworld. I configured CTestConfig.txt to find my local CDash. When I now run make Nightly submitting the results fails. Did I forget some configuration? Maybe authentification options? Or does CDash just not work with lighttpd? CTestConfig.cmake: ## This file should be placed in the root directory of your project. ## Then modify the CMakeLists.txt file in the root directory of your ## project to incorporate the testing dashboard. ## # The following are required to uses Dart and the Cdash dashboard ## ENABLE_TESTING() ## INCLUDE(CTest) set(CTEST_PROJECT_NAME helloworld) set(CTEST_NIGHTLY_START_TIME 00:00:00 EST) set(CTEST_DROP_METHOD http) set(CTEST_DROP_SITE localhost) set(CTEST_DROP_LOCATION /CDash/submit.php?project=helloworld) set(CTEST_DROP_SITE_CDASH TRUE) Output from make Nightly: Site: lt-gergap.ascolab.com Build name: Linux- Determine Nightly Start Time Specified time: 00:00:00 EDT Create new tag: 20101108-0400 - Nightly Updating the repository: /home/gergap/work/helloworld/src Cannot find UpdateCommand configuration key. Configure project Each . represents 1024 bytes of output . Size of output: 0K Build project Each symbol represents 1024 bytes of output. '!' represents an error and '*' a warning. . Size of output: 4K 0 Compiler errors 0 Compiler warnings Test project /home/gergap/work/helloworld/bldRelease Start 1: SimpleTest 1/3 Test #1: SimpleTest ... Passed0.00 sec Start 2: NegativeTest 2/3 Test #2: NegativeTest . Passed0.00 sec Start 3: DoubleNegativeTest 3/3 Test #3: DoubleNegativeTest ... Passed0.00 sec 100% tests passed, 0 tests failed out of 3 Total Test time (real) = 0.01 sec Performing coverage Cannot find any coverage files. Ignoring Coverage request. Submit files (using http) Using HTTP submit method Drop site:http://localhost/CDash/submit.php?project=helloworld Error when uploading file: /home/gergap/work/helloworld/bldRelease/Testing/20101108-0400/Build.xml Error message was: The requested URL returned error: 417 Problems when submitting via HTTP Errors while running CTest make[3]: *** [CMakeFiles/Nightly] Error 65 make[2]: *** [CMakeFiles/Nightly.dir/all] Error 2 make[1]: *** [CMakeFiles/Nightly.dir/rule] Error 2 make: *** [Nightly] Error 2 Complete source for testing is available here: git clone git://github.com/gergap/helloworld.git -- mit freundlichen Grüßen / best regards *Gerhard Gappmeier* ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG Key Id: 5AAC50C4 GPG Fingerprint: 967A 15F1 2788 164D CCA3 6C46 07CD 6F82 5AAC 50C4 -- *ascolab GmbH* Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß Sitz der Gesellschaft: Am Weichselgarten 7 . 91058 Erlangen . Germany Registernummer: HRB 9360 Registergericht: Amtsgericht Fürth ___ 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] Fwd: Submitting to CDash fails with error 417
Hi Julien you were right. HTTP PUT didn't work. The line 'server.reject-expect-100-with-417 = disable' did the trick. No I can submit the results without error, but I still cannot see the result on the website. It still shows zero builds in all categories. Any ideas what can be missing? On Monday 08 November 2010 16:46:14 Julien Jomier wrote: Dear Gerhard, My guess is that your server is not supporting HTTP PUT protocol. I believe you have to explicitly enable the protocol for lighttpd. Let us know if that was the problem, Julien -- Forwarded message -- From: *Gerhard Gappmeier* gerhard.gappme...@ascolab.com mailto:gerhard.gappme...@ascolab.com Date: Mon, Nov 8, 2010 at 10:14 AM Subject: [CMake] Submitting to CDash fails with error 417 To: cmake@cmake.org mailto:cmake@cmake.org Hi all, I've setup CDash locally using lighttpd and created a test project helloworld. I configured CTestConfig.txt to find my local CDash. When I now run make Nightly submitting the results fails. Did I forget some configuration? Maybe authentification options? Or does CDash just not work with lighttpd? CTestConfig.cmake: ## This file should be placed in the root directory of your project. ## Then modify the CMakeLists.txt file in the root directory of your ## project to incorporate the testing dashboard. ## # The following are required to uses Dart and the Cdash dashboard ## ENABLE_TESTING() ## INCLUDE(CTest) set(CTEST_PROJECT_NAME helloworld) set(CTEST_NIGHTLY_START_TIME 00:00:00 EST) set(CTEST_DROP_METHOD http) set(CTEST_DROP_SITE localhost) set(CTEST_DROP_LOCATION /CDash/submit.php?project=helloworld) set(CTEST_DROP_SITE_CDASH TRUE) Output from make Nightly: Site: lt-gergap.ascolab.com http://lt-gergap.ascolab.com Build name: Linux- Determine Nightly Start Time Specified time: 00:00:00 EDT Create new tag: 20101108-0400 - Nightly Updating the repository: /home/gergap/work/helloworld/src Cannot find UpdateCommand configuration key. Configure project Each . represents 1024 bytes of output . Size of output: 0K Build project Each symbol represents 1024 bytes of output. '!' represents an error and '*' a warning. . Size of output: 4K 0 Compiler errors 0 Compiler warnings Test project /home/gergap/work/helloworld/bldRelease Start 1: SimpleTest 1/3 Test #1: SimpleTest ... Passed0.00 sec Start 2: NegativeTest 2/3 Test #2: NegativeTest . Passed0.00 sec Start 3: DoubleNegativeTest 3/3 Test #3: DoubleNegativeTest ... Passed0.00 sec 100% tests passed, 0 tests failed out of 3 Total Test time (real) = 0.01 sec Performing coverage Cannot find any coverage files. Ignoring Coverage request. Submit files (using http) Using HTTP submit method Drop site:http://localhost/CDash/submit.php?project=helloworld Error when uploading file: /home/gergap/work/helloworld/bldRelease/Testing/20101108-0400/Build.xml Error message was: The requested URL returned error: 417 Problems when submitting via HTTP Errors while running CTest make[3]: *** [CMakeFiles/Nightly] Error 65 make[2]: *** [CMakeFiles/Nightly.dir/all] Error 2 make[1]: *** [CMakeFiles/Nightly.dir/rule] Error 2 make: *** [Nightly] Error 2 Complete source for testing is available here: git clone git://github.com/gergap/helloworld.git http://github.com/gergap/helloworld.git -- mit freundlichen Grüßen / best regards *Gerhard Gappmeier* ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG Key Id: 5AAC50C4 GPG Fingerprint: 967A 15F1 2788 164D CCA3 6C46 07CD 6F82 5AAC 50C4 -- *ascolab GmbH* Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß Sitz der Gesellschaft: Am Weichselgarten 7 . 91058 Erlangen . Germany Registernummer: HRB 9360 Registergericht: Amtsgericht Fürth ___ Powered by www.kitware.com http://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 -- Phone: 1-518-836-2174 Ext: 304 -- mit freundlichen Grüßen / best regards *Gerhard Gappmeier* ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG Key Id: 5AAC50C4 GPG Fingerprint: 967A 15F1 2788 164D CCA3 6C46 07CD 6F82 5AAC 50C4 -- *ascolab GmbH* Geschäftsführer: Gerhard Gappmeier, Matthias Damm
Re: [CMake] help with learning add_library
Hi this three lines should do the job: CMakeLists.txt: project(learnCMAKE) add_definitions(-DXXX -DYYY -DSAMPLE=5) add_library(learnCMAKE file1.c file2.c) To build static libraries: mkdir bldStatic cd bldStatic cmake -DBUILD_SHARED_LIBS=off -DCMAKE_BUILD_TYPE=Release .. make cd ,, To build shared libraries: mkdir bldDynamic cd bldDynamic cmake -DBUILD_SHARED_LIBS=on -DCMAKE_BUILD_TYPE=Release .. make cd .. On Saturday 06 November 2010 17:26:11 luxInteg wrote: Greetings, I am learning cmake. I have a question on using add_library. in my project(learnCMAKE). The latter has:- ---a) 2 source files file1.c file2.c ---b) the envar {CFLAGS} set ---c) need to generate libLearnCMAKE.so and libLearnCMAKE.a ---d) need to add preprocessor agruments -DXXX to CFLAGS in the compilation of the source files before liberies are archived like so:- gcc ${CFLAGS} -DDINT /path/to/file1.c gcc ${CFLAGS} -DDINT /path/to/file2.c gcc ${CFLAGS} -DDLONG /path/to/file1.c gcc ${CFLAGS} -DDLONG /path/to/file2.c How can this be achived in a marco or whatever with add_library ? Help would be appreciated sincerely lux-integ ___ 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 -- mit freundlichen Grüßen / best regards *Gerhard Gappmeier* ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG Key Id: 5AAC50C4 GPG Fingerprint: 967A 15F1 2788 164D CCA3 6C46 07CD 6F82 5AAC 50C4 -- *ascolab GmbH* Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß Sitz der Gesellschaft: Am Weichselgarten 7 . 91058 Erlangen . Germany Registernummer: HRB 9360 Registergericht: Amtsgericht Fürth ___ 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] help with learning add_library
Hi again, I'v forgotten the envar question in the mail before. If you really want to set additional options from outside CMakeLists.txt you can do this: add_defintions($ENV{CFLAGS}) using $ENV{} you can access any environment variable. On Saturday 06 November 2010 17:26:11 luxInteg wrote: Greetings, I am learning cmake. I have a question on using add_library. in my project(learnCMAKE). The latter has:- ---a) 2 source files file1.c file2.c ---b) the envar {CFLAGS} set ---c) need to generate libLearnCMAKE.so and libLearnCMAKE.a ---d) need to add preprocessor agruments -DXXX to CFLAGS in the compilation of the source files before liberies are archived like so:- gcc ${CFLAGS} -DDINT /path/to/file1.c gcc ${CFLAGS} -DDINT /path/to/file2.c gcc ${CFLAGS} -DDLONG /path/to/file1.c gcc ${CFLAGS} -DDLONG /path/to/file2.c How can this be achived in a marco or whatever with add_library ? Help would be appreciated sincerely lux-integ ___ 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 -- mit freundlichen Grüßen / best regards *Gerhard Gappmeier* ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG Key Id: 5AAC50C4 GPG Fingerprint: 967A 15F1 2788 164D CCA3 6C46 07CD 6F82 5AAC 50C4 -- *ascolab GmbH* Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß Sitz der Gesellschaft: Am Weichselgarten 7 . 91058 Erlangen . Germany Registernummer: HRB 9360 Registergericht: Amtsgericht Fürth ___ 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] Using gcov/lcov and valgrind with cmake
Thanks for your answer. I also made some progress meanwhile. One reason why coverage didn't work was ccache :-( Now it basically works, but only when settings the CFLAGS and LDFLAGS manually in the CMakeLists.txt. I expected this would be done automatically when using NightlyCoverage... I prepared a new tutorial with my current state of work and uploaded it to g...@github.com:gergap/helloworld.git Maybe we can complete this together so that everybody who starts with cmake/ctest/cpack has a complete but simple example. What do you think? What I would like to integrate are the following features: * Compilation on Windows/Linux, maybe Mac (I can't test that) * Unit test execution - with optional coverage analysis integrated lcov html output generation would be great - optional valgrind/purify memchecks * Doxygen API generation * Package generation for windows (NSIS) and Linux(STGZ, RPM, DEB, ...) * Automatic build using a git hook - Integration with buildbot - or with CDash Am 04.11.2010 19:28, schrieb Ben Boeckel: Gerhard Gappmeier gerhard.gappme...@ascolab.com wrote: Hi all, I'm trying to figure out how to use gcov and maybe also lcov with cmake. I know it works using ctest, I've seen that in several wiki entries, but I could not find one single example on how to use it. The wiki only shows the commandline args for GCC, but no cmake examples. I attached a simple hello world project with two tests (ADD_TEST) which work. I tried to add the ctest_coverage and ctest_memcheck commands but I can't get them working. Maybe somebody can complete this example. IMO a new section about gcov and valgrind should be added to http://www.cmake.org/cmake/help/cmake_tutorial.html This would help a lot of people. Hi, I have a setup for doing something that you might be looking for. In the top-level CMakeLists.txt[1], I add some options to build with coverage. I also have a couple of macros[2] which make generating testing targets much nicer[3]. These macros do not assume CTest is enabled nor conflict with it. AFAIK they are gcov-specific, but another option could be added to use lcov instead. Similar with valgrind. If you have any questions or suggestions, feel free to ask. --Ben [1]http://git.benboeckel.net/?p=chasmd.git;a=blob;f=CMakeLists.txt [2]http://git.benboeckel.net/?p=chasmd.git;a=blob;f=cmake/test.cmake [3]http://git.benboeckel.net/?p=chasmd.git;a=blob;f=test/libchasm/CMakeLists.txt ___ 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 -- mit freundlichen Grüßen / best regards *Gerhard Gappmeier* ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG-Key: http://www.ascolab.com/gpg/gg.asc -- *ascolab GmbH* Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß Sitz der Gesellschaft: Am Weichselgarten 7 • 91058 Erlangen • Germany Registernummer: HRB 9360 Registergericht: Amtsgericht Fürth ___ 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] Using gcov/lcov and valgrind with cmake
Hi David and Cole, I don't understand how it should help to add this to CMakeCache.txt. This file is only temp file and is not checked in the repo. Can the MEMORY_CHECK options also be set in the CMakeLists.txt? I have the coverage test working at the moment using this construct in the CMakeLists.txt: # enable coverage analysis using GCC and GCOV IF (CMAKE_COMPILER_IS_GNUCC) SET(CMAKE_C_FLAGS -g -O0 -Wall -fprofile-arcs -ftest-coverage) SET(CMAKE_CXX_FLAGS -g -O0 -Wall -fprofile-arcs -ftest-coverage) SET(CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS} -fprofile-arcs -ftest-coverage -lgcov) ENDIF() It works, but I'm not sure if this is the right Cmake way to do that. You can checkout the complete example using git clone git://github.com/gergap/helloworld.git Any help is appreciated to complete this helloworld cmake tutorial. Am 05.11.2010 13:39, schrieb David Cole: Bill means your CMakeCache.txt file, not your CMakeLists.txt file. (Pretty sure...) :-) On Fri, Nov 5, 2010 at 8:30 AM, Bill Lorensen bill.loren...@gmail.com wrote: Try adding these (with proper paths) to your CMakeLists.txt file: CMAKE_BUILD_TYPE:STRING=Debug COVERAGE_COMMAND:FILEPATH=/usr/bin/gcov CMAKE_C_FLAGS:STRING=-g -O0 -fprofile-arcs -ftest-coverage CMAKE_CXX_FLAGS:STRING=-g -O0 -fprofile-arcs -ftest-coverage CTEST_MEMORYCHECK_COMMAND:FILEPATH=/usr/bin/valgrind) CTEST_MEMORYCHECK_COMMAND_OPTIONS:STRING=--trace-children=yes --quiet --tool=memcheck --leak-check=yes --show-reachable=yes --num-callers=100 --verbose --demangle=yes On Wed, Nov 3, 2010 at 9:11 AM, Gerhard Gappmeier gerhard.gappme...@ascolab.com wrote: Hi all, I'm trying to figure out how to use gcov and maybe also lcov with cmake. I know it works using ctest, I've seen that in several wiki entries, but I could not find one single example on how to use it. The wiki only shows the commandline args for GCC, but no cmake examples. I attached a simple hello world project with two tests (ADD_TEST) which work. I tried to add the ctest_coverage and ctest_memcheck commands but I can't get them working. Maybe somebody can complete this example. IMO a new section about gcov and valgrind should be added to http://www.cmake.org/cmake/help/cmake_tutorial.html This would help a lot of people. -- mit freundlichen Grüßen / best regards *Gerhard Gappmeier* ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG Key Id: 5AAC50C4 GPG Fingerprint: 967A 15F1 2788 164D CCA3 6C46 07CD 6F82 5AAC 50C4 -- *ascolab GmbH* Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß Sitz der Gesellschaft: Am Weichselgarten 7 . 91058 Erlangen . Germany Registernummer: HRB 9360 Registergericht: Amtsgericht Fürth ___ 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 -- mit freundlichen Grüßen / best regards *Gerhard Gappmeier* ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG-Key: http://www.ascolab.com/gpg/gg.asc -- *ascolab GmbH* Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß Sitz der Gesellschaft: Am Weichselgarten 7 • 91058 Erlangen • Germany Registernummer: HRB 9360 Registergericht: Amtsgericht Fürth ___ 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] Using gcov/lcov and valgrind with cmake
Sorry, I meant David and Bill ;-) Am 05.11.2010 13:39, schrieb David Cole: Bill means your CMakeCache.txt file, not your CMakeLists.txt file. (Pretty sure...) :-) On Fri, Nov 5, 2010 at 8:30 AM, Bill Lorensen bill.loren...@gmail.com wrote: Try adding these (with proper paths) to your CMakeLists.txt file: CMAKE_BUILD_TYPE:STRING=Debug COVERAGE_COMMAND:FILEPATH=/usr/bin/gcov CMAKE_C_FLAGS:STRING=-g -O0 -fprofile-arcs -ftest-coverage CMAKE_CXX_FLAGS:STRING=-g -O0 -fprofile-arcs -ftest-coverage CTEST_MEMORYCHECK_COMMAND:FILEPATH=/usr/bin/valgrind) CTEST_MEMORYCHECK_COMMAND_OPTIONS:STRING=--trace-children=yes --quiet --tool=memcheck --leak-check=yes --show-reachable=yes --num-callers=100 --verbose --demangle=yes On Wed, Nov 3, 2010 at 9:11 AM, Gerhard Gappmeier gerhard.gappme...@ascolab.com wrote: Hi all, I'm trying to figure out how to use gcov and maybe also lcov with cmake. I know it works using ctest, I've seen that in several wiki entries, but I could not find one single example on how to use it. The wiki only shows the commandline args for GCC, but no cmake examples. I attached a simple hello world project with two tests (ADD_TEST) which work. I tried to add the ctest_coverage and ctest_memcheck commands but I can't get them working. Maybe somebody can complete this example. IMO a new section about gcov and valgrind should be added to http://www.cmake.org/cmake/help/cmake_tutorial.html This would help a lot of people. -- mit freundlichen Grüßen / best regards *Gerhard Gappmeier* ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG Key Id: 5AAC50C4 GPG Fingerprint: 967A 15F1 2788 164D CCA3 6C46 07CD 6F82 5AAC 50C4 -- *ascolab GmbH* Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß Sitz der Gesellschaft: Am Weichselgarten 7 . 91058 Erlangen . Germany Registernummer: HRB 9360 Registergericht: Amtsgericht Fürth ___ 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 -- mit freundlichen Grüßen / best regards *Gerhard Gappmeier* ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG-Key: http://www.ascolab.com/gpg/gg.asc -- *ascolab GmbH* Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß Sitz der Gesellschaft: Am Weichselgarten 7 • 91058 Erlangen • Germany Registernummer: HRB 9360 Registergericht: Amtsgericht Fürth ___ 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] EXECUTABLE_OUTPUT_PATH is empty in Nightly target
Hi when you checkout the tutorial you'll see that the NightlyMemcheck target does not work. (git clone git://github.com/gergap/helloworld.git) All tests fail because I'm using the EXECUTABLE_OUTPUT_PATH variable to find the test executable. e.g. ADD_TEST(SimpleTest ${EXECUTABLE_OUTPUT_PATH}/helloworld 5 3) This variable seems to be empty in Nightly and Experimental targets, though. So valgrind fails with an error that /helloworld cannot be found. Any ideas why EXECUTABLE_OUTPUT_PATH is empty and how to fix that? Am 05.11.2010 13:39, schrieb David Cole: Bill means your CMakeCache.txt file, not your CMakeLists.txt file. (Pretty sure...) :-) On Fri, Nov 5, 2010 at 8:30 AM, Bill Lorensen bill.loren...@gmail.com wrote: Try adding these (with proper paths) to your CMakeLists.txt file: CMAKE_BUILD_TYPE:STRING=Debug COVERAGE_COMMAND:FILEPATH=/usr/bin/gcov CMAKE_C_FLAGS:STRING=-g -O0 -fprofile-arcs -ftest-coverage CMAKE_CXX_FLAGS:STRING=-g -O0 -fprofile-arcs -ftest-coverage CTEST_MEMORYCHECK_COMMAND:FILEPATH=/usr/bin/valgrind) CTEST_MEMORYCHECK_COMMAND_OPTIONS:STRING=--trace-children=yes --quiet --tool=memcheck --leak-check=yes --show-reachable=yes --num-callers=100 --verbose --demangle=yes On Wed, Nov 3, 2010 at 9:11 AM, Gerhard Gappmeier gerhard.gappme...@ascolab.com wrote: Hi all, I'm trying to figure out how to use gcov and maybe also lcov with cmake. I know it works using ctest, I've seen that in several wiki entries, but I could not find one single example on how to use it. The wiki only shows the commandline args for GCC, but no cmake examples. I attached a simple hello world project with two tests (ADD_TEST) which work. I tried to add the ctest_coverage and ctest_memcheck commands but I can't get them working. Maybe somebody can complete this example. IMO a new section about gcov and valgrind should be added to http://www.cmake.org/cmake/help/cmake_tutorial.html This would help a lot of people. -- mit freundlichen Grüßen / best regards *Gerhard Gappmeier* ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG Key Id: 5AAC50C4 GPG Fingerprint: 967A 15F1 2788 164D CCA3 6C46 07CD 6F82 5AAC 50C4 -- *ascolab GmbH* Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß Sitz der Gesellschaft: Am Weichselgarten 7 . 91058 Erlangen . Germany Registernummer: HRB 9360 Registergericht: Amtsgericht Fürth ___ 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 -- mit freundlichen Grüßen / best regards *Gerhard Gappmeier* ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG-Key: http://www.ascolab.com/gpg/gg.asc -- *ascolab GmbH* Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß Sitz der Gesellschaft: Am Weichselgarten 7 • 91058 Erlangen • Germany Registernummer: HRB 9360 Registergericht: Amtsgericht Fürth ___ 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] Using gcov/lcov and valgrind with cmake
Hi all, I'm trying to figure out how to use gcov and maybe also lcov with cmake. I know it works using ctest, I've seen that in several wiki entries, but I could not find one single example on how to use it. The wiki only shows the commandline args for GCC, but no cmake examples. I attached a simple hello world project with two tests (ADD_TEST) which work. I tried to add the ctest_coverage and ctest_memcheck commands but I can't get them working. Maybe somebody can complete this example. IMO a new section about gcov and valgrind should be added to http://www.cmake.org/cmake/help/cmake_tutorial.html This would help a lot of people. -- mit freundlichen Grüßen / best regards *Gerhard Gappmeier* ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG Key Id: 5AAC50C4 GPG Fingerprint: 967A 15F1 2788 164D CCA3 6C46 07CD 6F82 5AAC 50C4 -- *ascolab GmbH* Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß Sitz der Gesellschaft: Am Weichselgarten 7 . 91058 Erlangen . Germany Registernummer: HRB 9360 Registergericht: Amtsgericht Fürth helloworld.tar.gz Description: application/compressed-tar ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
[CMake] Howto remove artificial CMake dependencies
Hi When generating Makefiles, VS projects or Eclipse CDT projects CMake creates artificial dependencies to CMakeLists.txt to be able to recreate the projects when something changes. This is good for developers, but not so good for the users (also developers). We are making portable SDKs and libraries that we distribute also with source so that the customer is able to tune and recompile it. So we want to create projects without this dependencies that we can ship to the customer. We don't want to force our customers to install CMake, what would be an additional burden for them. And the customers don't need to recreate this projects because they are just using the libs. If they really need the add new files, they would do it with their native IDEs. Is it possible to create projects without this dependencies to CMake? -- mit freundlichen Grüßen / best regards *Gerhard Gappmeier* ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG-Key: http://www.ascolab.com/gpg/gg.asc -- *ascolab GmbH* Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß Sitz der Gesellschaft: Am Weichselgarten 7 • 91058 Erlangen • Germany Registernummer: HRB 9360 Registergericht: Amtsgericht Fürth signature.asc Description: OpenPGP digital signature ___ 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] Qt 4.4.3 + VS 2008 Images don't load.
Hi Dr. Schröder, this doesn't sound like a cmake problem, more like a Qt problem :-) Anyway, Qt implements image format codecs using plugins. To be precise this depends on how you compiled Qt. Check if you have to right Qt Plugins on the machine where you encounter this problem. More on plugins you can read on http://doc.trolltech.com/4.4/plugins- howto.html I hioe this helps you. -- mit freundlichen Grüßen / best regards Gerhard Gappmeier ascolab GmbH - automation system communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG-Key: http://www.ascolab.com/gpg/gg.asc Am 25.10.2008 um 19:20 schrieb Dr. Schröder: Hi there, I'm using Qt 4.4.3 Open Source edition with Visual Studio 2008 and Cmake 2.6 Whenever I try to load an Image in my Application it doesn't load. It does not matter if I load it from a resource file or from the harddisc. It does not matter which format it has (I tried a few). It does not matter if I load it to a QPixmap or a QImage. There is simply nothing loaded afterwards. The weirdest thing about this is, that everything works fine on the PC I compile the program (Vista 64bit, VS 32bit). If I link the Image by using the Qt resource system everything is fine. I can put the Executable anywhere and the Image is loaded. If I put it to my WinXP laptop, the program runs fine, but no Image is loaded. Any Suggestions? Thx in advance, Patrick CMakeLists.txt: # Zunaechst einige Makros. Daran sollte sich niemand stoeren, # sie dienen dazu eine saubere Verzeichnisstruktur aufzubauen. # Ich empfehle beim setzen des Projektnamens weiter zu lesen. SET (UI_OUT_DIR ./src/ui) SET (MOC_OUT_DIR ./src/moc) SET (RSC_OUT_DIR ./src/rsc) # QT4_WRAP_UI(outfiles inputfile ... ) MACRO (QT4_WRAP_UI_OUT outfiles ) FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${UI_OUT_DIR}) FOREACH (it ${ARGN}) GET_FILENAME_COMPONENT(it ${it} ABSOLUTE) GET_FILENAME_COMPONENT(outfile ${it} NAME_WE) SET(outfile ${CMAKE_CURRENT_BINARY_DIR}/${UI_OUT_DIR}/ui_$ {outfile}.h) ADD_CUSTOM_COMMAND(OUTPUT ${outfile} COMMAND ${QT_UIC_EXECUTABLE} -o ${outfile} ${it} MAIN_DEPENDENCY ${infile}) SET(${outfiles} ${${outfiles}} ${outfile}) ENDFOREACH (it) ENDMACRO (QT4_WRAP_UI_OUT) # QT4_WRAP_CPP(outfiles inputfile ... ) MACRO (QT4_WRAP_CPP_OUT outfiles ) FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${MOC_OUT_DIR}) FOREACH (it ${ARGN}) GET_FILENAME_COMPONENT(it ${it} ABSOLUTE) GET_FILENAME_COMPONENT(outfile ${it} NAME_WE) SET(outfile ${CMAKE_CURRENT_BINARY_DIR}/${MOC_OUT_DIR}/moc_${outfile}.cpp) ADD_CUSTOM_COMMAND(OUTPUT ${outfile} COMMAND ${QT_MOC_EXECUTABLE} -o ${outfile} ${it} DEPENDS ${it}) SET(${outfiles} ${${outfiles}} ${outfile}) ENDFOREACH(it) ENDMACRO (QT4_WRAP_CPP_OUT) # QT4_ADD_STATIC_RESOURCES(outfiles inputfile ... ) MACRO (QT4_ADD_STATIC_RESOURCES outfiles ) FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${RSC_OUT_DIR}) FOREACH (it ${ARGN}) GET_FILENAME_COMPONENT(outfilename ${it} NAME_WE) GET_FILENAME_COMPONENT(infile ${it} ABSOLUTE) GET_FILENAME_COMPONENT(rc_path ${infile} PATH) SET(outfile ${CMAKE_CURRENT_BINARY_DIR}/${RSC_OUT_DIR}/qrc_${outfilename}.cpp) # parse file for dependencies FILE(READ ${infile} _RC_FILE_CONTENTS) STRING(REGEX MATCHALL file[^]* _RC_FILES $ {_RC_FILE_CONTENTS}) SET(_RC_DEPENDS) FOREACH(_RC_FILE ${_RC_FILES}) STRING(REGEX REPLACE ^file _RC_FILE ${_RC_FILE}) SET(_RC_DEPENDS ${_RC_DEPENDS} ${rc_path}/${_RC_FILE}) ENDFOREACH(_RC_FILE) ADD_CUSTOM_COMMAND(OUTPUT ${outfile} COMMAND ${QT_RCC_EXECUTABLE} ARGS -name ${outfilename} -o ${outfile} ${infile} MAIN_DEPENDENCY ${infile} DEPENDS ${_RC_DEPENDS}) SET(${outfiles} ${${outfiles}} ${outfile}) ENDFOREACH (it) ENDMACRO (QT4_ADD_STATIC_RESOURCES) # Der Name des Projekts PROJECT( ProjektName ) # Die verwendete CMake Version (gibt eine Fehlermeldung, wenn nicht gesetzt) cmake_minimum_required(VERSION 2.6) # Mithilfe von SET() kann man Variablen definieren, oder ihre Definition aendern. # Hier definieren wir alle Quelldateien zur spaeteren Verwendung. SET( PROJEKTNAME_SRCS ./src/main.cpp ./src/MainWindow.cpp ) # Man muss die Header Dateien eigentlich nicht separat definieren, es dient nur der # Uebersicht SET( PROJEKTNAME_HEADERS # in dem Beispielprojekt gibt es nur einen Header und der wird als naechstes angegeben ) # Hier werden alle Header Dateien spezifiziert, die zu MOC_ files umgewandelt werden sollen. # Typischerweise alle, die Q_OBJECT enthalten. SET( PROJEKTNAME_MOC_HDRS ./src/MainWindow.h ) # Die .ui Dateien SET( PROJEKTNAME_UIS ./ui/MainWindow.ui ) # und letztendlich die Ressource Datei SET( PROJEKTNAME_RCS ./rsc/ProjektName.qrc ) # Warnungen aktivieren # ADD_DEFINITIONS( -Wall ) # Qt Module, die geladen werden sollen
[CMake] CMake problem on Solaris with suncc
Hi all, I try to build my program with cmake on Solaris using cc (suncc). The problem is when activating -xtarget=ultra -xarch=v9 I get linker errors wrong ELF class: ELFCLASS64. I created a simple hello world example to reproduce the problem. It consists of a simple hello-library and a test program that links against it. Both should be compiled with the same settings, so I don't understand why this linker error occurs. Does cmake configure any 32bit settings that may conflict with xarch=v9 ? Output: Scanning dependencies of target helloworld [100%] Building CXX object test/CMakeFiles/helloworld.dir/main.cpp.o /home/sag/OPC.UA/hello/test/main.cpp, line 1: Warning: Last line in file /home/sag/OPC.UA/hello/hello/hello.h is not terminated with a newline. 1 Warning(s) detected. Linking CXX executable helloworld ld: fatal: file CMakeFiles/helloworld.dir/main.cpp.o: wrong ELF class: ELFCLASS64 ld: fatal: File processing errors. No output written to helloworld *** Error code 1 The following command caused the error: cd /home/sag/OPC.UA/hello/build/test /home/sag/cmake-2.6.2-SunOS- sparc/bin/cmake -E cmake_link_script CMakeFiles/helloworld.dir/link.txt -- verbose= make: Fatal error: Command failed for target `test/helloworld' Current working directory /home/sag/OPC.UA/hello/build *** Error code 1 The following command caused the error: make -f test/CMakeFiles/helloworld.dir/build.make test/CMakeFiles/helloworld.dir/build make: Fatal error: Command failed for target `test/CMakeFiles/helloworld.dir/all' Current working directory /home/sag/OPC.UA/hello/build *** Error code 1 The following command caused the error: make -f CMakeFiles/Makefile2 all make: Fatal error: Command failed for target `all' -- mit freundlichen Grüßen / best regards Gerhard Gappmeier ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG-Key: http://www.ascolab.com/gpg/gg.asc hello.tar.gz Description: application/compressed-tar ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
[CMake] howto INSTALL PDB files
Hi, INSTALL(TARGETS ...) doesn't copy the pdb files with debug information (Visual Studio/Windows) along with the executable. Is there a cmake option to change this, or do I need to create a manual install rule for that? -- mit freundlichen Grüßen / best regards Gerhard Gappmeier ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG-Key: http://www.ascolab.com/gpg/gg.asc ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] CMake problem on Solaris with suncc
Hi this was a good tip to configure the compiler using the environment variables. I just changed -m64 to the old xtarget settings, because this is to new for my compiler. I removed all compiler settings from the CMakeLists.txt and now it seems to work, except from the assembler. Now I'm using this environment. #!/bin/bash # configure compiler CC=/home/local/opt/SUNWspro.11/bin/cc CXX=/home/local/opt/SUNWspro.11/bin/CC CPP=$CXX CFLAGS=-xtarget=ultra -xarch=v9 CXXFLAGS=-xtarget=ultra -xarch=v9 LDFLAGS=-xarch=v9 # configure cmake PATH=$PATH:/home/sag/cmake-2.6.2-SunOS-sparc/bin export PATH CC CXX CPP CFLAGS CXXFLAGS LDFLAGS When compiling the assembler file I now get the error /usr/ccs/bin/as: /path/to/file/platforms/linux/cas32.s, line 7: error: cannot use v8plus instructions in a non-v8plus target binary because it seems not to evaluate the CFLAGS with arch=v9 Is there any other environment variable that is passed to the assembler? On Monday 27 October 2008 13:52:01 you wrote: Here is the environment I enforce on solaris to build with cmake/solaris/suncc64 : export LINKFLAGS=-m64 ; export CFLAGS=-m64 ; export CPPFLAGS=-m64; export CC=/opt/SUNWspro/bin/suncc ; export CPP=/opt/SUNWspro/bin/suncc; export CXX=/opt/SUNWspro/bin/sunCC -- mit freundlichen Grüßen / best regards Gerhard Gappmeier ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG-Key: http://www.ascolab.com/gpg/gg.asc ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] CMake problem on Solaris with suncc
Hi, CMakeCache.txt is not the problem. I do out-of-source builds and completely remove the build folder before each build CMAKE_ASM_FLAGS sounds good and I found some references in the internet about it. But this seems not to be used anymore. If you do a grep in cmake/Modules for ASMFLAGS or ASM_FLAGS you'll get no hits. I found this line in CMakeASMCompiler.cmake of the generated files. SET(CMAKE_ASM_COMPILER_ARG1 ) How is this variable set? On Monday 27 October 2008 15:52:37 Hendrik Sattler wrote: Bill Hoffman schrieb: You have to start with an empty cache. Re-run cmake with no CMakeCache.txt. Then make sure the CMAKE_C_FLAGS are correct. Shouldn't that be CMAKE_ASM_FLAGS if the .s file has the language property set to ASM? HS ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake -- mit freundlichen Grüßen / best regards Gerhard Gappmeier ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG-Key: http://www.ascolab.com/gpg/gg.asc ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Compiling assembler files with C code
Hi, thx a lot, this works. Hendrik Sattler schrieb: Gerhard Gappmeier schrieb: Hi all, I want to compile an assembler file with my C sources. A simple example how to compile this on the command line looks like that: gcc cas32test.c cas32.s -o cas32test --- project(cas C) enable_language(ASM) set_property(SOURCE cas32.s PROPERTY LANGUAGE ASM) add_executable(cas32test cas32test.c cas32.s) --- That should be it. HS ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake signature.asc Description: OpenPGP digital signature ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
[CMake] Compiling assembler files with C code
Hi all, I want to compile an assembler file with my C sources. A simple example how to compile this on the command line looks like that: gcc cas32test.c cas32.s -o cas32test If I add the assembler source files *.s to a CMakeLists.txt this files get ignored. I googled already a lot, but found only incomplete examples. Can somebody provide me a hello world like sample that works, so that I can see what exactly needs to be done? I attached a simple hello world program with one dummy assembler file and a base CMakeLists.txt. Would be great if somebody can make that compiling with cmake. -- mit freundlichen Grüßen / best regards Gerhard Gappmeier ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG-Key: http://www.ascolab.com/gpg/gg.asc hello.tar.gz Description: application/compressed-tar ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
[CMake] Proposal for changing the visual studio generator
Hello, I have a proposal to change the Visual Studio Generator. The current version 2.4.8 works like this: 1.) CMake generates hardcoded paths for OutputFile, PDB File, Addition Library Directories etc. e.g. OutputDirectory=Debug (or Release, etc. depending on the config) OutputFile=D:\work\cmake-2.4.8\build\bin\Debug\cmake.exe 2.) OutputDirectory does not contain a directory, it's used like a ConfigurationName. Code Snippet (cmLocalVisualStudio7Generator.cxx): 0463 fout \t\tConfiguration\n 0464 \t\t\tName=\ configName | this-PlatformName \\n 0465 \t\t\tOutputDirectory=\ configName \\n; 3.) OutputFile contains a hardcoded path, that always contains the configurationname (Debug|Release|...). Code Snippet (cmLocalVisualStudio7Generator.cxx): 0882 temp = this-ExecutableOutputPath; 0883 temp += configName; 0884 temp += /; 0885 temp += targetNameFull; 0886 fout \t\t\t\tOutputFile=\ 0887 this-ConvertToXMLOutputPathSingle(temp.c_str()) \\n; The problem is that this hardcoded paths are very unflexible. It should better use the macros that are used when you generate a projects using the wizard. My Proposal: 1.) Use the normal macros like its done by the wizard. OutputDirectory=$(SolutionDir)$(ConfigurationName) OutputFile=$(OutDir)\$(ProjectName).exe Use this $(OutDir) also for pdb, manifest, etc. This resolves to the same path as the hardcoded ones. But you can easily change the output dir in the project by just changing this single OutputDirectory, that's what it was intended for. 2.) Using SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/mypath) or SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/mypath) it should be possible to replace the default value of OutputDirectory. This way you can easily change the output directory from CMakeLists.txt and it's not necassary to change it afterwards in the VS Project. This way you can get rid of the autogenerated Debug/Release folders if you don't want them, but also keeps the current behaviour, or better the Visual Studio default behavior as long as you don't overwrite the output paths. -- mit freundlichen Grüßen / best regards *Gerhard Gappmeier* ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG-Key: http://www.ascolab.com/gpg/gg.asc -- *ascolab GmbH* Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß Sitz der Gesellschaft: Am Weichselgarten 7 • 91058 Erlangen • Germany Registernummer: HRB 9360 Registergericht: Amtsgericht Fürth ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Proposal for changing the visual studio generator
Hi Joshua, your solution is a good workaround. Thanks. This workd for me too: IF (CMAKE_GENERATOR MATCHES Visual Studio) SET_TARGET_PROPERTIES(${TargetName} PROPERTIES PREFIX ../bin) ENDIF(CMAKE_GENERATOR MATCHES Visual Studio) Nevertheless I think my proposal makes sense anyway, because it would work more like Visual Studio was intended for and more like a CMake user would expect. setting EXECUTABLE_OUTPUT_PATH should work without using such workarounds. Beside this I personly would prefer a path like yourpath/bin/yourapp.exe and not yourpath/Debug/../bin/yourapp.exe ;-) r as I understand, this is not possible with the current version of CMake. This has worked for me. IF (CMAKE_GENERATOR MATCHES Visual Studio) SET_TARGET_PROPERTIES(${TargetName} PROPERTIES PREFIX ../) SET_TARGET_PROPERTIES(${TargetName} PROPERTIES DEBUG_POSTFIX -D) ENDIF(CMAKE_GENERATOR MATCHES Visual Studio) Josh -- mit freundlichen Grüßen / best regards *Gerhard Gappmeier* ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG-Key: http://www.ascolab.com/gpg/gg.asc -- *ascolab GmbH* Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß Sitz der Gesellschaft: Am Weichselgarten 7 • 91058 Erlangen • Germany Registernummer: HRB 9360 Registergericht: Amtsgericht Fürth ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
[CMake] howto disable debug and release folders for MSVC
Hi Is it possible to disable the generation of Debug/ and Release/ folders for the MSVC Generator? My app builds into a defined folder structure /builddir/bin/MyApp /builddir/bin/plugins/MyPlugin1 /builddir/bin/plugins/MyPlugin2 This works perfectly on linux and windows commandline with nmake. But we also have Windows developers which want to use Visual Studio projects. When using the Visual Studio Generator it produces a structure like this. /builddir/bin/Debug/MyApp /builddir/bin/Release/MyApp /builddir/bin/plugins/Debug/MyPlugin1 /builddir/bin/plugins/Release/MyPlugin1 /builddir/bin/plugins/Debug/MyPlugin2 /builddir/bin/plugins/Release/MyPlugin2 Normally the app searches its plugins in AppPath/plugins. But with this structure it would have to search in AppPath/../plugins/{Debug| Release}. So the app cannot find the plugins. I'm using out-source builds where I have different build folders for different configurations anyway so generating Debug/Release folders for each subproject is unnecessary. thanks -- _ / ___/ There are only 10 types of people in the world. / / ___ ___ ___ __ __ Those who understand binary \ \_\ // _ / _ |/ _ |/ // / and those who don't. \___/ \__^// __// __/ \_, / /_/ /_/ /___/ ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake