Re: [CMake] cmake out of source build writes build files at source dirs?
Hi Claus, If you didn't already, please post this to http://cmake.org/Bug instead. The CMake people usually don't take bug reports from this list. Bo. Den 28-07-2010 20:34, Claus Klein skrev: Today, I discovered than in the special case of a substituted PROJECT_SOURCE_DIR, all build files for subdir packages are created in PROJECT_SOURCE_DIR and not at the PROJECT_BINARY_DIR. I use windows cmd shell subst w: z:/some/deep/path/to/source/dir Than I create a new build dir: cd /d w:/ mkdir build cd build cmake .. after that, all subdirs of the source dir are created as w:/buildsubdir1 w:/buildsubdir2 ... filled with the cmake build files. I tested cmake 2.8.0, 2.8.1 and 2.8.2 version. all have the same behaviour! The created project builds fine too. It seems that the PROJECT_BINARY_DIR and the subdir paths are concatenated without a path separator. Claus ___ 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 Bo Thorsen. Monty Program AB. -- MariaDB: MySQL replacement Community developed. Feature enhanced. Backward compatible. ___ 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] Create NSIS installer with debug and release targets
Den 15-07-2010 13:48, Martin Santa María skrev: I'm trying to create an NSIS installer that contains both release and I assume this is about NSIS with CPack? debug targets. I'm using CMake 2.6 and Visual Studio and the installer always contains the Build version I select in Visual Studio. Has anyone any idea how to force the install of both release and debug targets? I don't think you can do this with CPack. It can only install a single build type. I'd love to see someone fix this, though. It would be great to also have, for example, 32 and 64 bit in the same package. One option you have is to use CPack to build the first version of your installer, and built it manually from that point. NSIS can without problems do what you want. But you can't keep the NSIS files up to date using CPack if you want to build a single installer with both types. What you could do instead is to build the RelWithDebInfo and ship that. You can make a component with the debug files, if necessary. Bo. ___ 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] FindXdmf.cmake
Den 14-07-2010 22:24, Dr. X skrev: Hi All, I am building an application requiring Xdmf library. Is there a FindXdmf.cmake that I can use to locate the corresponding library? I don't find it in Modules/. Thanks a lot. There is a FindXdmf.cmake from Visit http://portal.nersc.gov/svn/visit/branches/bonnell/SIZET/src/CMake/ which is very much tied with Visit package. Hi Dr. X, If you can't find it, your best approach will be to try and create one for cmake. You can probably start from the Visit package, and clean it up and generalize it. Bo Thorsen. Monty Program AB. -- MariaDB: MySQL replacement Community developed. Feature enhanced. Backward compatible. ___ 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 examples
Den 10-07-2010 00:05, David Cole skrev: On Fri, Jul 9, 2010 at 5:54 PM, Chris Hillery chillery-cm...@lambda.nu mailto:chillery-cm...@lambda.nu wrote: [...] On Fri, Jul 9, 2010 at 4:37 AM, Bo Thorsen b...@askmonty.org mailto:b...@askmonty.org wrote: [...] To sum it up, I'm looking for real life advice on what you guys have done with ctest. This information seem almost completely missing on the net, where all searches on ctest leads to useless presentation on ctest features. Nice analysis! Thanks for taking the time to write this up and send it along to the mailing list. I agree. This was exactly what I asked for. Thanks a lot. Bo Thorsen. Monty Program AB. -- MariaDB: MySQL replacement Community developed. Feature enhanced. Backward compatible. ___ 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 examples
Den 09-07-2010 19:03, Eric Noulard skrev: 2010/7/9 Bo Thorsenb...@askmonty.org: Hi people, I have converted a set of applications to cmake and cpack, and now have my eyes set on ctest. I'd like to hear if someone here has some good advice, or links to good advice, on how to structure tests. I'm searching for help on how to put different tests into what executables. On how to handle multiple tests on each classes, on how to best structure the test of the static libraries (all of those are part of the source tree) that are linked in to the application. And on how to test classes from the main application itself. I have read the ctest FAQ, documentation etc. and still don't know anything that help me write the actual test code. From the looks of it, ctest only provides the framework to run a test, no help is given to write the code of the tests themselves, is this right? I have previously been using cppunit, and it looks like this will still be useful. Yes you are right. CTest is helping for running tests using Test Driver. CTest is useful for continuous integration if you use it with CDash and for that part (from my point of view) it's useful if do not have test at all, because you may monitor build breakage on various platform. It helps even more if the tests application (which may be written using cppunit) is built using CMake and/or is linked with the library your are building (with CMake ...) in an add_test(NAME TestName COMMAND TestProg) TestProg (the Test Driver) may be built from an add_executable(TestProg TestProg.c) target_link_libraries(TestProg TheTestedLib) or it may be a custom script (Python or anything you like) or it may be a custom script which has been configured at CMake time using configure_file To sum it up, I'm looking for real life advice on what you guys have done with ctest. This information seem almost completely missing on the net, where all searches on ctest leads to useless presentation on ctest features. Real life usually depends on your life but... Speaking for myself on two small projects (C and/or C++) I do use simple (C or C++) test driver applications for basic unit test and some python scripts for integration tests. My [compiled C/C++] test drivers simply return 0 if the test is successfull and something else if not. CTest understand that out-of-the-box which makes it easy to see unit test breakage using a simple make test. My Python script is driving several interacting applications (from 2 up to 10) which are part of the build, in the same way the python script return non zero value on error. Since the whole testsuite may be running for a long time I'm using CTest during development in order to easily select test to be run on a particular area using ctest -Rregex = Run tests matching regular expression. I have my own naming rules for tests name which makes it easy to use. I'm not using any unit test framework but I think there has already been some discussion about mixed CMake/CTest CppUnit usage on this list. Now I really cannot ensure that those advices will be as good for you as they are too me :-) It is certainly helpful. And together with Davids reply, I have a good clear picture of CTest. It matches what I had come up with myself, but it's good to know I hadn't missed some opportunity. Thanks for you help. Bo Thorsen. Monty Program AB. -- MariaDB: MySQL replacement Community developed. Feature enhanced. Backward compatible. ___ 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] Install PDB files
Den 08-07-2010 21:56, Rolf Eike Beer skrev: Am Thursday 08 July 2010 schrieb Bo Thorsen: Den 07-07-2010 19:43, Rolf Eike Beer skrev: Am Wednesday 07 July 2010 schrieb Patrick Spendrin: we're currently thinking about setting up a symbol server for our project, and cannot find out how to install the pdb file together with the install command (or in another way). Did somebody do this already? Is there only the way to fetch the pdb files by hand? We have currently an ugly macro that searches for the PDB in all possible places (e.g. foo for NMake, foo/Release, foo/Debug, foo/RelWithDebInfo, and foo/MinSizeRel for MSVC) and installs them. To make a long story short: this sucks. There are people who have written better macros for this. The idea is to get the full path of a known target file - an exe for example - and replace the filename on it. Try googling for this, I don't have a link at hand. Yes, that's also in the macro. I haven't written it, but IIRC there were problems with CMAKE_RUNTIME_OUTPUT_DIRECTORY, different MSVC versions, NMake or GUI and whatnot. Anyway, I still tend to see that as crap. IMHO there should be a simple way to get the location of those files or better providing a simple version to install them. When someone adds this please keep in mind that gcc also has the possibility to strip the debugging symbols of an object to a different file. This should be taken care of here, too. I doubt that's a problem with .pdb files :) Of course, but when we have a function to get those debug symbols for more than one compiler that would be of general use. I propose an option to the install command, something like: INSTALL(TARGET foo ARCHIVE lib RUNTIME bin LIBRARY lib DEBUG_SYMBOLS dbg ) Then you have people who want .map files, .exp files etc. You can't make a positive list and solve the actual problem. I have a bug report with this particular problem here: http://www.cmake.org/Bug/view.php?id=10940 Ehm, that one doen't look very related or do I miss something? It should be exactly what you want, but maybe I didn't explain it properly in the bug report. With my suggestion, you could write INSTALL(FILES ${CPACK_BUILD_DIR}/targetname.pdb ...) I don't believe in the suggestion to add a special DEBUG target on the INSTALL(TARGET .. command, as others will need other files, and they can't all be covered. A generic solution is needed instead. Bo Thorsen. Monty Program AB. -- MariaDB: MySQL replacement Community developed. Feature enhanced. Backward compatible. ___ 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 examples
Hi people, I have converted a set of applications to cmake and cpack, and now have my eyes set on ctest. I'd like to hear if someone here has some good advice, or links to good advice, on how to structure tests. I'm searching for help on how to put different tests into what executables. On how to handle multiple tests on each classes, on how to best structure the test of the static libraries (all of those are part of the source tree) that are linked in to the application. And on how to test classes from the main application itself. I have read the ctest FAQ, documentation etc. and still don't know anything that help me write the actual test code. From the looks of it, ctest only provides the framework to run a test, no help is given to write the code of the tests themselves, is this right? I have previously been using cppunit, and it looks like this will still be useful. To sum it up, I'm looking for real life advice on what you guys have done with ctest. This information seem almost completely missing on the net, where all searches on ctest leads to useless presentation on ctest features. Cheers, Bo Thorsen. Monty Program AB. -- MariaDB: MySQL replacement Community developed. Feature enhanced. Backward compatible. ___ 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] Copy two files into one file
Hi all, Is there an elegant way of copying two files into one? Right now, I have this: ADD_CUSTOM_COMMAND(OUTPUT privilege_tables.sql COMMAND copy /b ${CMAKE_CURRENT_SOURCE_DIR}/system_tables.sql + ${CMAKE_CURRENT_SOURCE_DIR}/tables_fix.sql fix_privilege_tables.sql DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/system_tables.sql ${CMAKE_CURRENT_SOURCE_DIR}/tables_fix.sql) That's hardly elegant and it doesn't work :( The problem with this is that the Windows copy command wants \ instead of /. So, one of two fixes are possible for me: Either there is a much cleaner way to do this, or I have to replace / with \ in the path. If I have to do the replacement, is there a better way to do this than to use the STRING command with a char replace? Cheers, Bo Thorsen. Monty Program AB. -- MariaDB: MySQL replacement Community developed. Feature enhanced. Backward compatible. ___ 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] Copy two files into one file
Den 09-07-2010 16:48, Michael Hertling skrev: On 07/09/2010 03:48 PM, Bo Thorsen wrote: Hi all, Is there an elegant way of copying two files into one? Right now, I have this: ADD_CUSTOM_COMMAND(OUTPUT privilege_tables.sql COMMAND copy /b ${CMAKE_CURRENT_SOURCE_DIR}/system_tables.sql + ${CMAKE_CURRENT_SOURCE_DIR}/tables_fix.sql fix_privilege_tables.sql DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/system_tables.sql ${CMAKE_CURRENT_SOURCE_DIR}/tables_fix.sql) That's hardly elegant and it doesn't work :( The problem with this is that the Windows copy command wants \ instead of /. So, one of two fixes are possible for me: Either there is a much cleaner way to do this, or I have to replace / with \ in the path. If I have to do the replacement, is there a better way to do this than to use the STRING command with a char replace? Look at the following CMakeLists.txt: CMAKE_MINIMUM_REQUIRED(VERSION 2.8 FATAL_ERROR) PROJECT(CONCAT C) FILE(WRITE ${CMAKE_BINARY_DIR}/f1.c.in void f1(void){}\n) FILE(WRITE ${CMAKE_BINARY_DIR}/f2.c.in void f2(void){}\n) FILE(WRITE ${CMAKE_BINARY_DIR}/main.c int main(void){f1(); f2(); return 0;}\n ) FILE(WRITE ${CMAKE_BINARY_DIR}/concat.cmake FILE(READ \${SRC1} S1) FILE(READ \${SRC2} S2) FILE(WRITE \${DST} \${S1}\${S2}) ) ADD_CUSTOM_COMMAND( OUTPUT f.c COMMAND ${CMAKE_COMMAND} -D SRC1=${CMAKE_BINARY_DIR}/f1.c.in -D SRC2=${CMAKE_BINARY_DIR}/f2.c.in -D DST=${CMAKE_BINARY_DIR}/f.c -P ${CMAKE_BINARY_DIR}/concat.cmake DEPENDS ${CMAKE_BINARY_DIR}/f1.c.in ${CMAKE_BINARY_DIR}/f2.c.in ) ADD_EXECUTABLE(main main.c f.c) Does this also work with binary files? From the documentation on FILE, this isn't really clear to me. Bo. ___ 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] Install PDB files
Den 07-07-2010 19:43, Rolf Eike Beer skrev: Am Wednesday 07 July 2010 schrieb Patrick Spendrin: Hello everybody, we're currently thinking about setting up a symbol server for our project, and cannot find out how to install the pdb file together with the install command (or in another way). Did somebody do this already? Is there only the way to fetch the pdb files by hand? We have currently an ugly macro that searches for the PDB in all possible places (e.g. foo for NMake, foo/Release, foo/Debug, foo/RelWithDebInfo, and foo/MinSizeRel for MSVC) and installs them. To make a long story short: this sucks. There are people who have written better macros for this. The idea is to get the full path of a known target file - an exe for example - and replace the filename on it. Try googling for this, I don't have a link at hand. When someone adds this please keep in mind that gcc also has the possibility to strip the debugging symbols of an object to a different file. This should be taken care of here, too. I doubt that's a problem with .pdb files :) I propose an option to the install command, something like: INSTALL(TARGET foo ARCHIVE lib RUNTIME bin LIBRARY lib DEBUG_SYMBOLS dbg ) Then you have people who want .map files, .exp files etc. You can't make a positive list and solve the actual problem. I have a bug report with this particular problem here: http://www.cmake.org/Bug/view.php?id=10940 Bo Thorsen. Monty Program AB. -- MariaDB: MySQL replacement Community developed. Feature enhanced. Backward compatible. ___ 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] Propagating variable to toplevel parent
Den 07-07-2010 12:34, Mathieu Malaterre skrev: Hi there, I am wondering if I am missing anything here. How would one propagate a variable across subdirectories in cmake ? I thought that a simple CACHE variable would do the trick, but using cmake 2.8.1 I had to do the following trick list(APPEND v 42) # make sure to actually update the CACHE variable: set(v ${v} CACHE INTERNAL toto) My goal is that at the end of the toplevel cmakelists.txt file, cmake would have collected a list of installation path. http://www.cmake.org/pipermail/cmake/2010-May/036743.html Bo Thorsen. Monty Program AB. -- MariaDB: MySQL replacement Community developed. Feature enhanced. Backward compatible. ___ 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] Bug fix requests for the *next* release of CMake...
Den 05-07-2010 20:31, David Cole skrev: If you have a particular issue that you think should be fixed for inclusion in 2.8.3, please bring it up now. Ideally, each issue will be discussed as needed on the mailing list to come to any consensus about what should be done to fix it, and then an entry in the bug tracker may be used to keep it on the radar screen, and to track activity related to it. Patches are always welcome. Patches that include testing of any new features, or tests that prove a bug is really fixed on the dashboards, basically any patch with testing is preferred over a patch with no testing. Also, if you are *adding* code, then you also probably need to add *tests* of that code, so that the coverage percentage stays as is or rises. I have added a feature request to have the WiX CPack generator patch included. It's here: http://public.kitware.com/Bug/view.php?id=10939 I didn't write the bug, but I am considering a switch from NSIS to WiX for more power in the installer. Please discuss issues here as needed, and add notes to existing issues in the bug tracker that you are interested in seeing fixed for 2.8.3 -- we will be looking at the mailing list and activity in the bug tracker to help prioritize the bug fixes that will occur in the next several weeks. I have added a note for 2.8.3. Cheers, Bo Thorsen. Monty Program AB. -- MariaDB: MySQL replacement Community developed. Feature enhanced. Backward compatible. ___ 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] cpack -C
Den 01-07-2010 15:39, Bo Thorsen skrev: When I give an argument to -C, can this be used in the INSTALL commands? Not possible :( I have added a feature request here: http://public.kitware.com/Bug/view.php?id=10940 Bo Thorsen. Monty Program AB. -- MariaDB: MySQL replacement Community developed. Feature enhanced. Backward compatible. ___ 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] CPack custom page
Den 28-06-2010 10:42, Bo Thorsen skrev: Hi people, I'm trying to build a custom NSIS page that's shown at the end of the installer, after all files have been installed. The purpose is to set up a Windows service. I can do the code for installing the service, but I'm having some problems adding the custom page for it. And searching the net haven't given me any decent hits. Some pages say I should just hack the template file, but that doesn't give any clue what to put in the file. Can one of you point to example code that adds a custom page, please? No takers, so I figured it out myself. Here is the patch necessary for my CMakeLists.txt: +# Use our own NSIS template +set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/win/cmake ${CMAKE_MODULE_PATH}) I have copied the NSIS.template.in file to the directory win/cmake. The patch below adds a page to the installer just before the files are copied. The page asks the user if he wants to install MariaDB as a service. After the files are installed, the installer code sets up the service, if the user checked the checkbox on the page. The patch is against the NSIS.template.in from cmake 2.8.0. --- \Program Files (x86)\CMake 2.8\share\cmake-2.8\Modules\NSIS.template.in 2010-03-16 18:52:34.0 +0100 +++ win\cmake\NSIS.template.in 2010-06-30 11:55:34.936755500 +0200 @@ -19,6 +19,10 @@ Var ADD_TO_PATH_CURRENT_USER Var INSTALL_DESKTOP Var IS_DEFAULT_INSTALLDIR + + Var INSTALL_AS_SERVICE + Var INSTALL_AS_SERVICE_CHECKBOX + ; ;Include Modern UI @@ -27,6 +31,10 @@ ;Default installation folder InstallDir $programfil...@cpack_package_install_directory@ +;Include the nsDialogs package + !include nsDialogs.nsh + !include LogicLib.nsh + ; ;General @@ -383,7 +391,35 @@ Pop $1 Pop $0 FunctionEnd - + +Function InstallServicePage +!insertmacro MUI_HEADER_TEXT Service Setup Run MariaDB automatically. + +nsDialogs::Create /NOUNLOAD 1018 +Pop $0 + +${If} $0 == error +Abort +${EndIf} + +${NSD_CreateLabel} 0u 0u 100% 9u Should MariaDB be installed as a service? +Pop $0 + +${NSD_CreateCheckBox} 0u 14u 100% 16u Yes, please install the service. +Pop $INSTALL_AS_SERVICE_CHECKBOX +GetFunctionAddress $0 ServiceCheckBoxClicked +nsDialogs::OnClick /NOUNLOAD $INSTALL_AS_SERVICE_CHECKBOX $0 + +${NSD_CreateLabel} 0u 30u 100% 35u If this option is checked, this installer will add MariaDB to the list of services and start it. + Pop $0 + +nsDialogs::Show +FunctionEnd + +Function ServiceCheckBoxClicked +${NSD_GetState} $INSTALL_AS_SERVICE_CHECKBOX $INSTALL_AS_SERVICE +FunctionEnd + ; ; Uninstall sutff ; @@ -557,6 +593,8 @@ @CPACK_NSIS_PAGE_COMPONENTS@ + Page custom InstallServicePage + !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_PAGE_FINISH @@ -718,6 +756,12 @@ @CPACK_NSIS_EXTRA_INSTALL_COMMANDS@ + ${If} $INSTALL_AS_SERVICE == ${BST_CHECKED} + ;MessageBox MB_OK Install the service + nsExec::Exec '$INSTDIR\bin\mysqld.exe --install @cpack_package_n...@-@CPACK_PACKAGE_VERSION@' + nsExec::Exec 'net start @cpack_package_n...@-@CPACK_PACKAGE_VERSION@' + ${EndIf} + SectionEnd Section -Add to path @@ -818,6 +862,9 @@ @CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS@ + nsExec::Exec 'net stop @cpack_package_n...@-@CPACK_PACKAGE_VERSION@' + nsExec::Exec '$INSTDIR\bin\mysqld.exe --remove @cpack_package_n...@-@CPACK_PACKAGE_VERSION@' + ;Remove files we installed. ;Keep the list of directories here in sync with the File commands above. @CPACK_NSIS_DELETE_FILES@ I hope this is helpful for others. Bo Thorsen. Monty Program AB. -- MariaDB: MySQL replacement Community developed. Feature enhanced. Backward compatible. ___ 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] Preserve tree structur for IDEs
Den 02-07-2010 10:36, Diablo 666 skrev: Hi, Date: Thu, 1 Jul 2010 15:03:13 +0200 Subject: Re: [CMake] Preserve tree structur for IDEs From: eric.noul...@gmail.com To: thediablo...@hotmail.de CC: cmake@cmake.org For grouping source in Visual Studio you may use source_group(name [REGULAR_EXPRESSION regex] [FILES src1 src2 ...]) thanks a lot! Works very fine after a few tries. I discovered one little problem: CMake automatically generates the folders Source files and Header files for source/header files that are not explicitly put into another folder. If one creates a folder Source files explicitly via source_group, one gets a broken Visual Studio solution file. This sounds like a bug that should be reported. Can you make a small self contained example and report it in the cmake bug tracker? Sending a mail about it tends to mean it's forgotten later. Bo Thorsen. Monty Program AB. -- MariaDB: MySQL replacement Community developed. Feature enhanced. Backward compatible. ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
[CMake] cpack -C
Hi good people, When I give an argument to -C, can this be used in the INSTALL commands? I have a generated file in buildtype/libmysqld.exp that I need in the installer, and I'm having a lot of problems figuring out how to do this properly. I have this line in a subdir CMakeLists.txt: INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}/libmysqld.exp DESTINATION Embedded/DLL COMPONENT embedded) In the top level CMakeLists.txt, it says this: IF(NOT CMAKE_BUILD_TYPE) SET(CMAKE_BUILD_TYPE RelWithDebInfo) ENDIF() When I run cpack the ${CMAKE_BUILD_TYPE} is expanded to nothing. Is there a variable that contains the contents of the -C argument? Bo Thorsen. Monty Program AB. -- MariaDB: MySQL replacement Community developed. Feature enhanced. Backward compatible. ___ 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] Extra cpack files
Hi all, Is it possible to add files to the NSIS installer? I'm currently modifying the NSIS template locally, but by putting the page code in another file, I could keep the differences smaller. I have put the NSIS file in a directory, but I'd like to have another file in there with my own NSIS code. The problem is that it needs to be copied to the _CPack_Packages directory by cpack. Bo Thorsen. Monty Program AB. -- MariaDB: MySQL replacement Community developed. Feature enhanced. Backward compatible. ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
[CMake] CPack custom page
Hi people, I'm trying to build a custom NSIS page that's shown at the end of the installer, after all files have been installed. The purpose is to set up a Windows service. I can do the code for installing the service, but I'm having some problems adding the custom page for it. And searching the net haven't given me any decent hits. Some pages say I should just hack the template file, but that doesn't give any clue what to put in the file. Can one of you point to example code that adds a custom page, please? Bo Thorsen. Monty Program AB. -- MariaDB: MySQL replacement Community developed. Feature enhanced. Backward compatible. ___ 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] customize cpack windows installer
Den 23-06-2010 23:39, Alexandre Gramfort skrev: I'm deploying a cmake project on windows and I have a few questions concerning the installer generated by cpack using NSIS - is it possible to remove the mention create desktop icon since the installer contains only command line tools? - is it possible to provide an installer that works even if the user does not have admin rights? - is it possible to add to the folder in the start menu a link that points to the web site of the project? Hi Alexandre, I recently started using CPack for the MariaDB installer, and it's been a kind-of bumpy ride so far. First of all, it's incredibly easy to build a simple installer with CPack and NSIS. But as soon as you step beyond the glorified zip file structure, it starts getting really hairy. I can't answer any of your questions, because I haven't tried to do those things. But I can tell you what I do when I try to find solutions to problems: 1) Search the net 2) Ask questions on the mailing list. One question per mail only! This looks like it gives the best answers, when answers are given. 3) Read the file ...\CMake 2.8\share\cmake-2.8\Modules\NSIS.template.in to try and figure out what happens and what you can or can't do. Be aware that NSIS is actually in some ways quite limited in what it can do. And the CPack template doesn't always provide the freedom I'd like to have. For example, just adding new functions or macros seem difficult (i might be wrong about this, though). An alternative to NSIS is to use CPack with the WiX patch. This can pretty much do everything you'd expect an installer system to do. But it means depending on an external CMake patch plus you have to write a very complicated .xsl file for it to do anything useful. Another thing: If you find the answers to your questions, please answer your own mail here on the list. Google results from answers on this list is certainly one of the more useful resources on the net. Bo Thorsen. Monty Program AB. -- MariaDB: MySQL replacement Community developed. Feature enhanced. Backward compatible. ___ 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] Data dir
Just to follow my own advice and give the answer to the question I sent here. The basic problem is this: Can you add a file to the installer that isn't uninstalled? Answer: No, this is impossible. Anything short of patching the CMake sourcecode is going to fail. Not even copying the NSIS template to the local directory and modify it is going to work. The workaround I use now installs my datafiles to a clean directory, which isn't used by MariaDB on runtime. It then checks if there are already database files in the target dir. If they are there, it gives a messagebox saying it's reusing the database files. If no files are there (or at least not the one file I check), the clean files are copied into position. On uninstall, I just put up a messagebox saying the database files are not deleted. I plan to investigate if it's possible to add pages to the uninstaller and ask the user if he/she wants to delete the files or not. But in the meantime this isn't an unreasonable workaround. To do this, I have removed my data component, so the clean database files are now in the unspecified group, which means the user can't avoid them. And then I added these lines to my CMakeLists.txt: # Handle the database files FILE(GLOB datafiles ${CMAKE_CURRENT_SOURCE_DIR}/win/data/mysql/*) INSTALL(FILES ${datafiles} DESTINATION data/clean/mysql) INSTALL(FILES win/data/maria_log.0001 win/data/maria_log_control DESTINATION data/clean) INSTALL(DIRECTORY win/data/test DESTINATION data/clean) SET(CPACK_NSIS_EXTRA_INSTALL_COMMANDS ${CPACK_NSIS_EXTRA_INSTALL_COMMANDS} IfFileExists '$INSTDIRdatamysqldb.frm' 0 CopyDatabaseFiles MessageBox MB_OK 'There are already database files present in the data directory. Clean database files are not written to the directory' GoTo EndCopyDatabaseFiles CopyDatabaseFiles: CopyFiles '$INSTDIRdataclean*' '$INSTDIRdata' EndCopyDatabaseFiles:) SET(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS ${CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS} MessageBox MB_OK 'This will not delete the database files in $INSTDIRdata') Another solution I'm considering is to write a CMake patch that can do this in a prettier way, but that's going to be a while from now, if ever. Bo. Den 09-06-2010 14:48, Bo Thorsen skrev: Den 09-06-2010 14:25, Yegor Yefremov skrev: I am working on a CPack/NSIS based installer for MariaDB. The early parts were really easy to do, but now it becomes more complicated. First problem: I have a set of files with the bootstrap MySQL/MariaDB database files. Some users might not want to install these, if they are installing to a set of database files that are already there. Have you already looked at this article: http://www.cmake.org/Wiki/CMake:Component_Install_With_CPack Yes, I already implemented this, and it works very well. However, I think it's too little. I guess I'm not really certain how the installer should actually work, which is one of the reasons I'm fishing for an answer. It think anything less than a page where the user has to answer this manually will be too subtle for the data dir. I'm happy with this on stuff like installing header files for installation. The reason I'm worried is if a user had a previous installation with the datafiles in there, and installs in the same directory, it might be easy to overwrite the files. I think a separate page with three options to choose from - install new files - use existing files in the installation directory - use data files in a separate location Or something like this. If someone already did something this advanced with CPack, it would be great to hear about it. I suspect that I'll have to work directly in the nsis module file to implement this. Anyway, components doesn't answer the uninstall problem. Bo Thorsen. Monty Program AB. Bo Thorsen. Monty Program AB. -- MariaDB: MySQL replacement Community developed. Feature enhanced. Backward compatible. ___ 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] Searching the mailing list archives
Den 22-06-2010 06:06, Michael Hertling skrev: On 06/22/2010 05:51 AM, Philip Boltt wrote: Hi, Is there a way to search the entire mailing list archive? The archive link (http://www.cmake.org/pipermail/cmake/) goes to a page that seems to require going into each month individually and searching the thread subjects? Search for anything on goole and add site:http://www.cmake.org/pipermail/cmake/; in the search field. For example, to search for cross-compiling, enter cross-compiling site:http://www.cmake.org/pipermail/cmake/; in the google search field, and you get this: http://www.google.dk/search?q=cross-compiling+site%3Ahttp%3A%2F%2Fwww.cmake.org%2Fpipermail%2Fcmake%2Fie=utf-8oe=utf-8aq=trls=org.mozilla:da:officialclient=firefox-a The site: tells google to only consider URLs that contain this. I also use this to search for something in another country - site:co.uk if I want something in Great Brittain. (Yes, I know some there also has other domains, but for some searches that's not a problem). http://www.cmake.org/Wiki/CMake_FAQ#Where_can_I_find_searchable_CMake_Mailing_Archives.3F I think my answer here could be appended to that list of options. Bo Thorsen. Monty Program AB. -- MariaDB: MySQL replacement Community developed. Feature enhanced. Backward compatible. ___ 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] One last try
Den 21-06-2010 09:02, Gerry Weaver skrev: [...] 1. Is cmake supposed to support Visual Studio 2008 out of the box? I have been using cmake and VS2008 for a while without any problems on XP, Vista and Windows 7. There must be something really odd in your setup. When upgrading to 2008, did you remove the old SDK? VS2008 comes with it's own SDK. Bo Thorsen. Monty Program AB. -- MariaDB: MySQL replacement Community developed. Feature enhanced. Backward compatible. ___ 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] CMake 2.8.2 RC 1 ready for testing!
Den 14-06-2010 17:24, David Cole skrev: I am happy to announce that CMake 2.8.2 has entered the release candidate stage! You can find the source and binaries here: http://www.cmake.org/files/v2.8/. Following is the list of changes in this release. (If you notice something missing please let me know and I will add it to the official release when 2.8.2 is finalized.) Changes in CMake 2.8.2 RC 1 (since CMake 2.8.1) [...] I was looking for the WiX patch in list and wondered why it isn't there. Is it not ready? It looks so simple that it shouldn't be a problem to include it. Bo Thorsen. Monty Program AB. -- MariaDB: MySQL replacement Community developed. Feature enhanced. Backward compatible. ___ 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] Data dir
Den 09-06-2010 14:25, Yegor Yefremov skrev: I am working on a CPack/NSIS based installer for MariaDB. The early parts were really easy to do, but now it becomes more complicated. First problem: I have a set of files with the bootstrap MySQL/MariaDB database files. Some users might not want to install these, if they are installing to a set of database files that are already there. Have you already looked at this article: http://www.cmake.org/Wiki/CMake:Component_Install_With_CPack Yes, I already implemented this, and it works very well. However, I think it's too little. I guess I'm not really certain how the installer should actually work, which is one of the reasons I'm fishing for an answer. It think anything less than a page where the user has to answer this manually will be too subtle for the data dir. I'm happy with this on stuff like installing header files for installation. The reason I'm worried is if a user had a previous installation with the datafiles in there, and installs in the same directory, it might be easy to overwrite the files. I think a separate page with three options to choose from - install new files - use existing files in the installation directory - use data files in a separate location Or something like this. If someone already did something this advanced with CPack, it would be great to hear about it. I suspect that I'll have to work directly in the nsis module file to implement this. Anyway, components doesn't answer the uninstall problem. Bo Thorsen. Monty Program AB. -- MariaDB: MySQL replacement Community developed. Feature enhanced. Backward compatible. ___ 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] x64 possible using Cmake2.8.1 for VC2010Express + Windows7.1SDK ??
Den 01-06-2010 18:00, Schnurlinger Burli skrev: (2) Cmake produces a fairly usable .sln-file when I choose “Specify native compilers” in the beginning of the CMake project generation and let C++ point to ( I couldn`t find any devenv.exe ) I don't know about the rest, but I can tell you the reason here. Express Edition doesn't have the devenv command. It's a command used to build solution files on the command line. With EE, you have to use the IDE or nmake. Bo Thorsen. Monty Program AB. -- MariaDB: MySQL replacement Community developed. Feature enhanced. Backward compatible. ___ 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] Error in generated nmake files on Windows
Hi all, I have as simple a CMakeLists.txt as possible: ADD_EXECUTABLE(comp_err comp_err.c) I did these two commands: $ set CMAKE_BUILD_TYPE=RelWithDebInfo $ cmake -G NMake Makefiles I got this: Building C object extra/CMakeFiles/comp_err.dir/comp_err.c.obj comp_err.c Linking C executable comp_err.exe LINK : fatal error LNK1146: no argument specified with option '/machine:' LINK failed. with 2 NMAKE : fatal error U1077: 'C:\Program Files (x86)\CMake 2.8\bin\cmake.exe' : return code '0x' Stop. NMAKE : fatal error U1077: 'C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe' : return code '0x2' Stop. NMAKE : fatal error U1077: 'C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe' : return code '0x2' Stop. Is it something I'm doing wrong, or should I report a bug on this? I'm on a 64 bit Windows 7 with Visual C++ 2008 Express Edition. Bo. ___ 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] Error in generated nmake files on Windows
Den 24-05-2010 15:42, Michael Wild skrev: On 24. May, 2010, at 15:24 , Bo Thorsen wrote: Hi all, I have as simple a CMakeLists.txt as possible: ADD_EXECUTABLE(comp_err comp_err.c) I did these two commands: $ set CMAKE_BUILD_TYPE=RelWithDebInfo $ cmake -G NMake Makefiles I got this: Building C object extra/CMakeFiles/comp_err.dir/comp_err.c.obj comp_err.c Linking C executable comp_err.exe LINK : fatal error LNK1146: no argument specified with option '/machine:' LINK failed. with 2 NMAKE : fatal error U1077: 'C:\Program Files (x86)\CMake 2.8\bin\cmake.exe' : return code '0x' Stop. NMAKE : fatal error U1077: 'C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe' : return code '0x2' Stop. NMAKE : fatal error U1077: 'C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe' : return code '0x2' Stop. Is it something I'm doing wrong, or should I report a bug on this? I'm on a 64 bit Windows 7 with Visual C++ 2008 Express Edition. Bo. Is it really just this single line or are you eliding the PROJECT command? That one is required for anything to work Sorry, I should mentioned that. It's a sub dir in the MariaDB structure. I have uncommented pretty much everything except the project line and the add_executable. Bo. ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
[CMake] CPack, optional files and windows service
Hi everyone, I'm currently working on creating a windows installer for MariaDB (MySQL replacement, see http://www.mariadb.org). It's going quite well, and the installer seems to be working. I'm quite amazed at how simple it has been so far :) I have two things I'm working on that are not so easy to do, and I haven't found any links online to documentation on how to do this. I hope some of you can help me with this or send me the links I couldn't find. 1) I have to make some of the files optional. When uninstalling the MariaDB server, it should ask if the user wants to delete the database files are keep them. Same on installing, since there might already be database files there. I can't figure out how to make CPack ask if it should write/delete these files. Putting the files in a separate component is not enough - the user has to make the decision conciously. Any ideas? 2) The database server should be installed as a Windows service. Again, the user should probably be asked about this, but this might be a component. Are there any examples on how to register a service using cpack, and how to create start menu links for starting and stopping the service? I hope you have some good ideas on how to do this. If you only have some of the answer, just give me that and I'll work with it. Cheers, Bo Thorsen, Monty Program AB. ___ 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