Re: [CMake] Need advice for unit test structure
On Thu, May 21, 2009 at 12:00 AM, Robert Dailey wrote: > On Wed, May 20, 2009 at 9:38 PM, Philip Lowman wrote: > >> On Wed, May 20, 2009 at 9:40 PM, Robert Dailey wrote: >> > I'm still looking to figure out how a single project can be configured >> to generate multiple executables. Can anyone clarify? >> >> A Visual Studio project file is limited to one target (executable, >> library, etc.) as far as I know. If this is what you're asking. >> >> At work what we do is clump our unit tests for each class (in a library) >> into a single unit test executable. In this way we minimize the number of >> executables linked and the number of tests that run and show up in Visual >> Studio. >> >> We use gtest but the same principals apply with cxxtest, cppunit, etc. > > > This idea would work perfectly if I did not have compile time unit tests. > For example, some unit tests pass if they fail to compile, or pass if they > compile successfully. It's the former case that makes this idea impossible > to use. > Ah yes, I'm sorry I forgot that part of the thread. So these are the two solutions people have come up with for this: 1. Selectively enable the failure tests only during nightly builds 2. Try to keep the failure tests isolated from the rest of your projects by giving them names that put them on the bottom of the list of projects (zz_foo_fail) I don't have an example of this, but it might be possible to have your test run a script which configures and builds a small CMake test project which compiles against your current code. This test project would of course fail to compile by design. Then you could monitor for this failure and expect it? -- Philip Lowman ___ 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] Need advice for unit test structure
On Wed, May 20, 2009 at 9:38 PM, Philip Lowman wrote: > On Wed, May 20, 2009 at 9:40 PM, Robert Dailey wrote: > > I'm still looking to figure out how a single project can be configured to > generate multiple executables. Can anyone clarify? > > A Visual Studio project file is limited to one target (executable, library, > etc.) as far as I know. If this is what you're asking. > > At work what we do is clump our unit tests for each class (in a library) > into a single unit test executable. In this way we minimize the number of > executables linked and the number of tests that run and show up in Visual > Studio. > > We use gtest but the same principals apply with cxxtest, cppunit, etc. This idea would work perfectly if I did not have compile time unit tests. For example, some unit tests pass if they fail to compile, or pass if they compile successfully. It's the former case that makes this idea impossible to use. ___ 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] Abuse of find_package COMPONENTS, or not?
On Wed, May 20, 2009 at 10:51 AM, Marcel Loose wrote: > Hi Denis, > > Kind of you to let me decide ;-) > > But seriously, I posted this question, because I wanted to know whether > this is the CMake-way of doing things. Not because I like to write the > macro that way. > > In the end, maybe a larger community might want to use this macro. If > so, then it would really help if it adheres to some (unwritten) > standards. I suggest you avoid using COMPONENTS unless you're dealing with a package which is broken up into several components at least one of which is optional. I agree with Denis and Adolfo that you should use a variable to differentiate between the single and multithreaded versions of the library. If you start using a list where you should be using a boolean, the end user is just going to end up being confused. You're also going to manufacture additional error conditions that you'll have to handle in your code. If for some reason your goal is concurrent searching for single and multithreaded libraries so a user can use either in the same project (not sure why anyone would want to do this but I don't even know what FFTW stands for) you're far better off searching for both, i.e. FOO_ST_LIBRARY & FOO_MT_LIBRARY and then choosing which gets set in FOO_LIBRARIES via a boolean. -- Philip Lowman ___ 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] Need advice for unit test structure
On Wed, May 20, 2009 at 9:40 PM, Robert Dailey wrote: > I'm still looking to figure out how a single project can be configured to generate multiple executables. Can anyone clarify? A Visual Studio project file is limited to one target (executable, library, etc.) as far as I know. If this is what you're asking. At work what we do is clump our unit tests for each class (in a library) into a single unit test executable. In this way we minimize the number of executables linked and the number of tests that run and show up in Visual Studio. We use gtest but the same principals apply with cxxtest, cppunit, etc. -- Philip Lowman ___ 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] Need advice for unit test structure
I'm still looking to figure out how a single project can be configured to generate multiple executables. Can anyone clarify? On Thu, Apr 9, 2009 at 1:30 PM, Robert Dailey wrote: > On Thu, Apr 9, 2009 at 12:59 PM, Paul Oppenheim (Poppy Linden) < > po...@lindenlab.com> wrote: >> >> I don't have that particular case, but I could support it. With my >> scenario each test is its own binary. This is normally messy, but because >> tests are built in sub-projects it's not noticeable in the main build. Each >> group of tests looks like one test in the main build, but are completely >> separate in the sub-build. > > > I don't see how you are forcing each CPP to result in an executable. Could > you explain? Also, if one source file fails to compile, will the rest of the > source files continue to compile or not? > ___ 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 and library output paths for multiple platforms
Hello, I am trying to configure and build a project, the project being ITK, on Windows using Visual Studio 9. I would like to create from a central source dir a build directory structure like bin / $(ConfigurationName) / $(PlatformName) with CMake (v 2.6.4), i.e. release and debug versions for multiple platforms. Unfortunately, ITK seems to use the deprecated EXECUTABLE_OUTPUT_PATH and LIBRARY_OUTPUT_PATH instead of RUNTIME_OUTPUT_DIRECTORY resp. ARCHIVE_OUTPUT_DIRECTORY, which defaults to {(ITK_BINARY_DIR}/bin. EXECUTABLE_OUTPUT_PATH and LIBRARY_OUTPUT_PATH don't appear in the cmake gui, so I can't edit them to reflect the chosen configuration and platform for a build. I know I can create a directory hierarchy above my binary dir to maintain different debug/release and platform versions, but still cmake creates a bin dir below the project root dir and either CMake or Visual Studio seem to add a Debug or Release (who ?) and I end up with a somewhat redundant structure. Ultimately, I need to migrate ITK into a larger solution (as in the Visual Studio sense) with a common bin dir under which I would like to have something like bin/Release/x86 and bin/Debug/x64. How can this be done with CMake ? And/or Visual Studio if necessary. Thanks, Nils __ Verschicken Sie SMS direkt vom Postfach aus - in alle deutschen und viele ausländische Netze zum gleichen Preis! https://produkte.web.de/webde_sms/sms ___ 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] name of the top level directory
2009/5/20 Jaroslav Gresula : > > Hi, > > can CPack generate a package (zip, bz2) whose file name differs from the > package top level directory name? > > For instance, when I set CPACK_PACKAGE_FILE_NAME to project-1.0.0.src, > then the name of the package is project-1.0.0.src.tar.bz2 and the top > level directory is project-1.0.0.src/. However, I want it to be > project-1.0.0/. Currently I don't know if you may "rename it" but at least you can suppress it: SET(CPACK_INCLUDE_TOPLEVEL_DIRECTORY 0) > I couldn't find any CPack variable that would allow to specify the top > level directory name. Any help would be appreciated. Neither do I but you have a look to the source in order to have a sharper idea :-) CMake/Source/CPack/cmCPackGenerator.[h|cxx] --> the root generator class CMake/Source/CPack/cmCPackZIPGenerator.[h|cxx] --> the ZIP specialized class. -- Erk ___ 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] CMake creates a wrong install_name for frameworks with empty INSTALL_NAME_DIR property on Mac OS X
Hi all If the property is empty, CMake just uses the library name as the install_name which is wrong. It should use .framework/ Versions//. I created a bug report with an attached fix: http://public.kitware.com/Bug/view.php?id=9054 Michael ___ 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] name of the top level directory
Hi, can CPack generate a package (zip, bz2) whose file name differs from the package top level directory name? For instance, when I set CPACK_PACKAGE_FILE_NAME to project-1.0.0.src, then the name of the package is project-1.0.0.src.tar.bz2 and the top level directory is project-1.0.0.src/. However, I want it to be project-1.0.0/. I couldn't find any CPack variable that would allow to specify the top level directory name. Any help would be appreciated. Thanks, -- Jarda http://jagpdf.com ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
[CMake] add_custom_command, MAIN_DEPENDENCY, multiple targets, and Visual Studio
I want to have the same file produce different output files and have the same MAIN_DEPENDENCY. project("My Prog") cmake_minimum_required(VERSION 2.6) add_custom_command(OUTPUT file1.obj MAIN_DEPENDENCY source.cpp COMMAND buildit -o file1.obj source.cpp COMMENT "Making file1 from source" ) add_custom_command(OUTPUT file2.obj MAIN_DEPENDENCY source.cpp COMMAND buildit -o file2.obj source.cpp COMMENT "Making file2 from source" ) set_source_files_properties(file1.obj file2.obj PROPERTIES EXTERNAL_OBJECT true # This is an object file not to be compiled, but only be linked. GENERATED true # Not an error if this file doesn't exist at the start of build. ) add_executable(prog1 source.cpp) add_executable(prog2 source.cpp) In Visual Studio I see this: Solution 'My Proj' + All Build - prog1 - Source Files source.cpp -> Outputs file1.obj CMakeLists.txt - prog2 - Source Files source.cpp -> Outputs file1.obj instead of file2.obj CMakeLists.txt + ZERO_CHECK Is it a limitation with Visual Studio or with CMake? Note that if I add file1.obj and file2.obj to the project I get this: Solution 'My Proj' + All Build - prog1 - Source Files source.cpp -> Outputs file1.obj CMakeLists.txt file1.obj-> no custom build step - prog2 - CMake Rules file2.obj.rule -> Outputs file2.obj - Source Files source.cpp -> Outputs file1.obj instead of file2.obj CMakeLists.txt file2.obj-> no custom build step + ZERO_CHECK Thanks, James ___ 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] Abuse of find_package COMPONENTS, or not?
Hi Denis, Kind of you to let me decide ;-) But seriously, I posted this question, because I wanted to know whether this is the CMake-way of doing things. Not because I like to write the macro that way. In the end, maybe a larger community might want to use this macro. If so, then it would really help if it adheres to some (unwritten) standards. Best regards, Marcel Loose. -Original Message- From: Denis Scherbakov To: cmake@cmake.org, Marcel Loose Subject: Re: [CMake] Abuse of find_package COMPONENTS, or not? Date: Wed, 20 May 2009 07:29:15 -0700 (PDT) > What do you mean with like FindBoost did? Can you be a bit > more > specific? Like set(FFTW_DO_SOMETHING ON) find_package(FindeFFTW) If you say that your components are mutually exclusive, then I'd rather use a flag than a component name. But you're the author, so you decide. Denis ___ 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 problems
Gheorghe Iancu wrote: compiler: VisualAge C++ Professional / C for AIX Compiler, Version 6 I don't think anyone has ever built CMake with that compiler before. The only testing we have on AIX is with VisualAge 9.0. See here: http://www.cdash.org/CDash/index.php?project=CMake for tested platforms. A new platform can become officially supported if someone helps us get it working initially and also starts submitting a nightly build to the dashboard. I got the following error: Let's focus on 2.6. There will be no more 2.4 patch releases. I also tryied with CMake cmake-2.6.4 and there it didn't pass a configure test: This is not actually a configure check. The "configure" script is just an alias for the "bootstrap" script. It's actually building a minimal CMake which will generate a build system for all of CMake. "/u/giancu/download/install/cmake-2.6.4/Source/cmMakefile.cxx", line 2586.14: 1540-0296 (S) A return value of type "cmsys::auto_ptr" cannot be initialized with an rvalue of type "cmsys::auto_ptr". This is our own auto_ptr implementation which is needed to work around lack of proper auto_ptr support on some compilers. The implementation defaults to standard C++ for unrecognized compilers. However, this old VisualAge compiler does not appear to be conformant enough to support it. We'll have to teach the implementation how to deal with this compiler. Please send me (off-list) the preprocessed output of the file being compiled when this error occurs. Thanks, -Brad ___ 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] Abuse of find_package COMPONENTS, or not?
> What do you mean with like FindBoost did? Can you be a bit > more > specific? Like set(FFTW_DO_SOMETHING ON) find_package(FindeFFTW) If you say that your components are mutually exclusive, then I'd rather use a flag than a component name. But you're the author, so you decide. Denis ___ 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] Abuse of find_package COMPONENTS, or not?
I think Dennis refers to setting cmake variables to define the use of multithreading, static, or debug libs (or single/double precision in your case). For example: set(Boost_USE_STATIC_LIBS ON) set(Boost_USE_MULTITHREADED ON) find_package( Boost ) I would also second the proposal of using such variables instead of components. cheers, Adolfo On Wed, May 20, 2009 at 4:21 PM, Marcel Loose wrote: > Hi Denis, > > What do you mean with like FindBoost did? Can you be a bit more > specific? > > Boost components are AFAIK independent of one another, and they're > definitely not mutually exclusive, which is the case in my propsed setup > of FindFFTW? > > For example: > > find_package(FFTW COMPONENTS single double) > > shoud be flagged as an error, because single and double are mutaully > exclusive. > > Best regards, > Marcel Loose. > > > -Original Message- > From: Marcel Loose > To: cmake@cmake.org > Subject: [CMake] Abuse of find_package COMPONENTS, or not? > Date: Wed, 20 May 2009 16:10:06 +0200 > > Hi all, > > I am busy writing a FindFFTW macro. Depending on whether you want to use > single or double precision you should include a different header file > and link to a different library. The same is true when using > parallelization like mpi or threads. > > Now I was considering to pass these options as COMPONENTS, since, AFAIK, > that's the only way to pass parameters to a FindXXX macro. > So, for example, the user of FindFFTW would do something like: > > find_package(FFTW COMPONENTS single threads) > > Do you guys consider this a good or a bad idea? If you think it's a bad > idea, do you have a suggestion how to do things differently? > > Best regards, > Marcel Loose. > > > > ___ > 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 > -- Adolfo Rodríguez Tsouroukdissian Robotics engineer PAL ROBOTICS S.L http://www.pal-robotics.com Tel. +34.93.414.53.47 Fax.+34.93.209.11.09 ___ 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] Abuse of find_package COMPONENTS, or not?
Hi Denis, What do you mean with like FindBoost did? Can you be a bit more specific? Boost components are AFAIK independent of one another, and they're definitely not mutually exclusive, which is the case in my propsed setup of FindFFTW? For example: find_package(FFTW COMPONENTS single double) shoud be flagged as an error, because single and double are mutaully exclusive. Best regards, Marcel Loose. -Original Message- From: Marcel Loose To: cmake@cmake.org Subject: [CMake] Abuse of find_package COMPONENTS, or not? Date: Wed, 20 May 2009 16:10:06 +0200 Hi all, I am busy writing a FindFFTW macro. Depending on whether you want to use single or double precision you should include a different header file and link to a different library. The same is true when using parallelization like mpi or threads. Now I was considering to pass these options as COMPONENTS, since, AFAIK, that's the only way to pass parameters to a FindXXX macro. So, for example, the user of FindFFTW would do something like: find_package(FFTW COMPONENTS single threads) Do you guys consider this a good or a bad idea? If you think it's a bad idea, do you have a suggestion how to do things differently? Best regards, Marcel Loose. ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Abuse of find_package COMPONENTS, or not?
> Do you guys consider this a good or a bad idea? If you > think it's a bad > idea, do you have a suggestion how to do things > differently? I would do like FindBoost did. Denis ___ 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] Abuse of find_package COMPONENTS, or not?
Hi all, I am busy writing a FindFFTW macro. Depending on whether you want to use single or double precision you should include a different header file and link to a different library. The same is true when using parallelization like mpi or threads. Now I was considering to pass these options as COMPONENTS, since, AFAIK, that's the only way to pass parameters to a FindXXX macro. So, for example, the user of FindFFTW would do something like: find_package(FFTW COMPONENTS single threads) Do you guys consider this a good or a bad idea? If you think it's a bad idea, do you have a suggestion how to do things differently? Best regards, Marcel Loose. ___ 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] Linking object file with executable
Ankit, You have to explain CMake how to handle "*.obj" files. Find emails how to add ASM support. They should help you. Regards. Dima 2009/5/20 ankit jain > > > 2009/5/20 Dmytro Ovdiienko > >> Hi Ankit. >> >> >> Did you try TARGET_LINK_LIBRARIES? >> >> TARGET_LINK_LIBRARIES( myexe ${myobj} ) > > > It gives error as myfile.obj.lib not found.. > Since it is not library it is not valid to give like this... > > Ankit > > >> >> >> 2009/5/19 ankit jain >> >>> Hi all, >>> >>> My Cmakelists contains: >>> >>> set(myobj ${CMAKE_CURRENT_SOURCE_DIR}/../objfolder/myfile.obj) >>> add_executable(myexe main.c ${myobj}) >>> >>> This myfile.obj object file is generated while building objfolder before >>> creating this executable >>> >>> Now on building this executable i got a warning: >>> >>> main.obj: warning: earlier declaration of a function f1() found in >>> myfile.obj: second definition ignored.. >>> >>> This means it is taking the f1() function from myfile.obj but i want f1() >>> function to be taken from main.obj.. >>> >>> What to do? >>> >>> Also it is imp. to link this myfile.obj file to myexe executable since >>> it depends on other functions of this object file.. >>> So this object file has to be there. >>> Just tell me how function f1() can be taken from main.c rahter than from >>> myfile.obj evenif it still gives warning as: >>> >>> myfile.obj:warning: earlier definition of function f1() found in main.c >>> (since if it takes f1() from main.c): second def. ignored >>> >>> Regards- >>> Ankit Jain >>> >>> >>> >>> ___ >>> Powered by www.kitware.com >>> >>> Visit other Kitware open-source projects at >>> http://www.kitware.com/opensource/opensource.html >>> >>> Please keep messages on-topic and check the CMake FAQ at: >>> http://www.cmake.org/Wiki/CMake_FAQ >>> >>> Follow this link to subscribe/unsubscribe: >>> http://www.cmake.org/mailman/listinfo/cmake >>> >> >> > ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Eclipse Generator and Configuration
Thanks Michael, I think it will do the trick until cmake add this feature... -Message d'origine- De : cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] De la part de Michael Jackson Envoyé : mercredi 20 mai 2009 15:23 À : cmake Objet : Re: [CMake] Eclipse Generator and Configuration Well, One way to "fix" the issue is to create 2 build directories (which is what all the other IDEs would do), one for Debug and One for Release then in the Eclipse Project when you create the configurations just point eclipse at each build directory for its configuration. This does necessitate the need to run CMake 2 times, once for each configuration, but does end up working very well. I do this manually for Makefiles on Linux, OS X, and MSYS/MinGW _ Mike Jackson mike.jack...@bluequartz.net BlueQuartz Softwarewww.bluequartz.net Principal Software Engineer Dayton, Ohio On May 20, 2009, at 9:13 AM, Pierre-Julien Villoud wrote: > Ok... Thanks for your answer. > I'm surprised this feature is not integrated yet in cmake since it's > very common to switch configuration when you're working with an IDE. > Now the IDE project files generators don't seem so interesting for > me... > > I have to add the custom target Debug and Release in which I call > cmake with the CMAKE_BUILD_TYPE corresponding to the configuration... > > Thanks anyway I will be looking closely to the future versions of > cmake ! > > -Message d'origine- > De : Jesper Eskilson [mailto:jesper.eskil...@iar.se] > Envoyé : mercredi 20 mai 2009 15:03 > À : Pierre-Julien Villoud > Cc : cmake@cmake.org > Objet : Re: [CMake] Eclipse Generator and Configuration > > Pierre-Julien Villoud wrote: >> Hello everyone, >> >> I'm trying to use the Eclipse CDT4 - MinGW Makefiles generator to >> generate the Eclipse project files. My problem is that it is not >> possible to choose the configuration (Debug or Release) from the >> Eclipse platform. Is there any way to make this possible or do I have >> to specify the configuration when I call cmake with the option >> -DCMAKE_BUILD_TYPE:STRING=xxx (xxx = Debug or Release). > > I believe you need to rerun CMake to switch configuration. > > I'd like to implement a revamped, GNU-make-only, Makefile-generator > for > CMake with support for selecting configuration at runtime. But day > does > not have enough hours, I'm afraid. > > -- > /Jesper > > ___ > 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 ___ 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] Eclipse Generator and Configuration
Well, One way to "fix" the issue is to create 2 build directories (which is what all the other IDEs would do), one for Debug and One for Release then in the Eclipse Project when you create the configurations just point eclipse at each build directory for its configuration. This does necessitate the need to run CMake 2 times, once for each configuration, but does end up working very well. I do this manually for Makefiles on Linux, OS X, and MSYS/MinGW _ Mike Jackson mike.jack...@bluequartz.net BlueQuartz Softwarewww.bluequartz.net Principal Software Engineer Dayton, Ohio On May 20, 2009, at 9:13 AM, Pierre-Julien Villoud wrote: Ok... Thanks for your answer. I'm surprised this feature is not integrated yet in cmake since it's very common to switch configuration when you're working with an IDE. Now the IDE project files generators don't seem so interesting for me... I have to add the custom target Debug and Release in which I call cmake with the CMAKE_BUILD_TYPE corresponding to the configuration... Thanks anyway I will be looking closely to the future versions of cmake ! -Message d'origine- De : Jesper Eskilson [mailto:jesper.eskil...@iar.se] Envoyé : mercredi 20 mai 2009 15:03 À : Pierre-Julien Villoud Cc : cmake@cmake.org Objet : Re: [CMake] Eclipse Generator and Configuration Pierre-Julien Villoud wrote: Hello everyone, I'm trying to use the Eclipse CDT4 - MinGW Makefiles generator to generate the Eclipse project files. My problem is that it is not possible to choose the configuration (Debug or Release) from the Eclipse platform. Is there any way to make this possible or do I have to specify the configuration when I call cmake with the option -DCMAKE_BUILD_TYPE:STRING=xxx (xxx = Debug or Release). I believe you need to rerun CMake to switch configuration. I'd like to implement a revamped, GNU-make-only, Makefile-generator for CMake with support for selecting configuration at runtime. But day does not have enough hours, I'm afraid. -- /Jesper ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Eclipse Generator and Configuration
Ok... Thanks for your answer. I'm surprised this feature is not integrated yet in cmake since it's very common to switch configuration when you're working with an IDE. Now the IDE project files generators don't seem so interesting for me... I have to add the custom target Debug and Release in which I call cmake with the CMAKE_BUILD_TYPE corresponding to the configuration... Thanks anyway I will be looking closely to the future versions of cmake ! -Message d'origine- De : Jesper Eskilson [mailto:jesper.eskil...@iar.se] Envoyé : mercredi 20 mai 2009 15:03 À : Pierre-Julien Villoud Cc : cmake@cmake.org Objet : Re: [CMake] Eclipse Generator and Configuration Pierre-Julien Villoud wrote: > Hello everyone, > > I'm trying to use the Eclipse CDT4 - MinGW Makefiles generator to > generate the Eclipse project files. My problem is that it is not > possible to choose the configuration (Debug or Release) from the > Eclipse platform. Is there any way to make this possible or do I have > to specify the configuration when I call cmake with the option > -DCMAKE_BUILD_TYPE:STRING=xxx (xxx = Debug or Release). I believe you need to rerun CMake to switch configuration. I'd like to implement a revamped, GNU-make-only, Makefile-generator for CMake with support for selecting configuration at runtime. But day does not have enough hours, I'm afraid. -- /Jesper ___ 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] Eclipse CDT generator
I'm giving the CDT backend another shot, following the instructions at http://www.cmake.org/Wiki/Eclipse_CDT4_Generator. I'm using a dual project setup with a build project and source project as described on the wiki. Is there a way to exclude the build project from being indexed? first, my project is fairly large (3000+ source code file), and the indexer is having enough problems indexing the source code once. Secondly, the dual project setup causes each file to appear twice in the Open Resource dialog, which is annoying. (Each resource is actually occurring three times, but the third time is probably my fault.) -- /Jesper ___ 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] Eclipse Generator and Configuration
Pierre-Julien Villoud wrote: Hello everyone, I'm trying to use the Eclipse CDT4 - MinGW Makefiles generator to generate the Eclipse project files. My problem is that it is not possible to choose the configuration (Debug or Release) from the Eclipse platform. Is there any way to make this possible or do I have to specify the configuration when I call cmake with the option -DCMAKE_BUILD_TYPE:STRING=xxx (xxx = Debug or Release). I believe you need to rerun CMake to switch configuration. I'd like to implement a revamped, GNU-make-only, Makefile-generator for CMake with support for selecting configuration at runtime. But day does not have enough hours, I'm afraid. -- /Jesper ___ 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] FIND_PATH finds two out of three?
On 19. May, 2009, at 17:58, e...@cs.bgu.ac.il wrote: I'm writing a program which is based on 3 external libs, Poco, ARToolKit and opencv, now the locations in the include folder is has followd: opencv headers are in /usr/include/opencv folder, Poco headers are in /usr/include/Poco folder and ARToolKit headers are in /usr/ include/AR folder. I'm trying to find the folder in which the headers resides, but only two are returned ok, here is the code: FIND_PATH(ARTK_INCLUDE_DIR ar.h /usr/include/AR /usr/local/include/AR) FIND_PATH(OPENCV_INCLUDE_DIR cv.h /usr/include/opencv /usr/local/ include/opencv) FIND_PATH(POCO_INCLUDE_DIR Poco.h /usr/include/Poco /usr/local/ include/Poco) MESSAGE(STATUS ${ARTK_INCLUDE_DIR}) MESSAGE(STATUS ${OPENCV_INCLUDE_DIR}) MESSAGE(STATUS ${POCO_INCLUDE_DIR}) and here is the output: -- /usr/include -- /usr/include/opencv -- /usr/include/Poco how can I fix this? thanks. Don't look for ar.h, but for AR/ar.h. The same holds for the others. And then do #include as described in the examples. The same holds for the other two libraries. Michael ___ 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] Linking object file with executable
2009/5/20 Dmytro Ovdiienko > Hi Ankit. > > > Did you try TARGET_LINK_LIBRARIES? > > TARGET_LINK_LIBRARIES( myexe ${myobj} ) It gives error as myfile.obj.lib not found.. Since it is not library it is not valid to give like this... Ankit > > > 2009/5/19 ankit jain > >> Hi all, >> >> My Cmakelists contains: >> >> set(myobj ${CMAKE_CURRENT_SOURCE_DIR}/../objfolder/myfile.obj) >> add_executable(myexe main.c ${myobj}) >> >> This myfile.obj object file is generated while building objfolder before >> creating this executable >> >> Now on building this executable i got a warning: >> >> main.obj: warning: earlier declaration of a function f1() found in >> myfile.obj: second definition ignored.. >> >> This means it is taking the f1() function from myfile.obj but i want f1() >> function to be taken from main.obj.. >> >> What to do? >> >> Also it is imp. to link this myfile.obj file to myexe executable since it >> depends on other functions of this object file.. >> So this object file has to be there. >> Just tell me how function f1() can be taken from main.c rahter than from >> myfile.obj evenif it still gives warning as: >> >> myfile.obj:warning: earlier definition of function f1() found in main.c >> (since if it takes f1() from main.c): second def. ignored >> >> Regards- >> Ankit Jain >> >> >> >> ___ >> Powered by www.kitware.com >> >> Visit other Kitware open-source projects at >> http://www.kitware.com/opensource/opensource.html >> >> Please keep messages on-topic and check the CMake FAQ at: >> http://www.cmake.org/Wiki/CMake_FAQ >> >> Follow this link to subscribe/unsubscribe: >> http://www.cmake.org/mailman/listinfo/cmake >> > > ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
[CMake] Eclipse Generator and Configuration
Hello everyone, I'm trying to use the Eclipse CDT4 - MinGW Makefiles generator to generate the Eclipse project files. My problem is that it is not possible to choose the configuration (Debug or Release) from the Eclipse platform. Is there any way to make this possible or do I have to specify the configuration when I call cmake with the option -DCMAKE_BUILD_TYPE:STRING=xxx (xxx = Debug or Release). Thanks ! PS : It's the same with CodeBlocks generator... Pierre-Julien ___ 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] Linking object file with executable
Hi Ankit. Did you try TARGET_LINK_LIBRARIES? TARGET_LINK_LIBRARIES( myexe ${myobj} ) 2009/5/19 ankit jain > Hi all, > > My Cmakelists contains: > > set(myobj ${CMAKE_CURRENT_SOURCE_DIR}/../objfolder/myfile.obj) > add_executable(myexe main.c ${myobj}) > > This myfile.obj object file is generated while building objfolder before > creating this executable > > Now on building this executable i got a warning: > > main.obj: warning: earlier declaration of a function f1() found in > myfile.obj: second definition ignored.. > > This means it is taking the f1() function from myfile.obj but i want f1() > function to be taken from main.obj.. > > What to do? > > Also it is imp. to link this myfile.obj file to myexe executable since it > depends on other functions of this object file.. > So this object file has to be there. > Just tell me how function f1() can be taken from main.c rahter than from > myfile.obj evenif it still gives warning as: > > myfile.obj:warning: earlier definition of function f1() found in main.c > (since if it takes f1() from main.c): second def. ignored > > Regards- > Ankit Jain > > > > ___ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Please keep messages on-topic and check the CMake FAQ at: > http://www.cmake.org/Wiki/CMake_FAQ > > Follow this link to subscribe/unsubscribe: > http://www.cmake.org/mailman/listinfo/cmake > ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Howto use targets from several directories in the install clause?
Hello Alexander, Thank you for your reply. I've made changes as you suggested. It works for now. But IMHO it is incorrect. Only DLL root project "knows" all details of installation but not sub-project. What if I have several projects based on the same sub-projects? They have different installation path. Regards. Dima 2009/5/19 Alexander Neundorf > On Tuesday 19 May 2009, Dmytro Ovdiienko wrote: > > Hi all, > > > > I'm trying to write install instruction for my main project (DLL) that > > consists from several projects (LIBs). This instruction should copy all > > public headers from all dependent targets to the destination directory. > > > > I expected to use following sample but it is erroneous: > > > > install ( > > TARGETS > > utils > > system > > types > > PUBLIC_HEADER DESTINATION > ${${PROJECT_NAME}_BINARY_DIR}/install/headers > > ) > > I think you have to write the install() command for a target in the > directory > where the target is created. I think installing them from a different > CMakeLists.txt is not supported. > > > Alex > ___ 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] doing simple math in cmake or useless foreach( RANGE )
Hi Nicolas, I second your opinion. I think CMake is a bit ambiguous in this sense. List indices are zero-based, which clearly shows a C++ implementation background. On the other hand, range intervals are closed both at the beginning and the end, which is not like C++, nor like, e.g., Python, but more like one-based languages like Fortran and Pascal. In cases like this I revert to something like this: LIST(LENGTH mylist count) WHILE(index LESS count) LIST(GET ${mylist} ${index} item) MATH(EXPR index "${index}+1") WHILE(index LESS count) Cumbersome, but it works. Best regards, Marcel Loose. -Original Message- From: Nicolas Desprès To: Hendrik Sattler Cc: cmake@cmake.org Subject: Re: [CMake] doing simple math in cmake or useless foreach( RANGE ) Date: Tue, 19 May 2009 23:38:05 -0300 On Tue, May 19, 2009 at 6:29 PM, Hendrik Sattler wrote: > > If that's not present, I do not understand how > LIST( LENGTH MYLIST COUNT ) > FOREACH ( index RANGE ${COUNT} ) > list ( GET MYLIST ${index} entry ) > > > will address non-present indexes in the list. I would the above statement > cover the range from 0 to COUNT-1 but it also cover COUNT itself like said in > the documentation. Does that actually make sense as the variable in the > documentation is called "total" but the loop count is "total+1"? > I also experienced this problem and I don't like this behavior. I'm more use to the traditional for (i = 0; i < n; ++i) instead of <= ___ 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] Install problems
Hi, I wanted to install CMake cmake-2.4.8 on an AIX powerpc (OS version 5.2) gmake version: GNU Make version 3.71, by Richard Stallman and Roland McGrath. compiler: VisualAge C++ Professional / C for AIX Compiler, Version 6 I got the following error: [ 15%] Built target cmzlib Scanning dependencies of target cmcurl [ 15%] Building C object Utilities/cmcurl/CMakeFiles/cmcurl.dir/strerror.o "/u/giancu/download/install/cmake-2.4.8/Utilities/cmcurl/strerror.c", line 45.1: 1506-343 (S) Redeclaration of curl_easy_strerror differs from previous declaration on line 1318 of "/u/giancu/download/install/cmake-2.4.8/Utilities/cmcurl/curl/curl.h". "/u/giancu/download/install/cmake-2.4.8/Utilities/cmcurl/strerror.c", line 45.1: 1506-050 (I) Return type "unsigned char*" in redeclaration is not compatible with the previous return type "const unsigned char*". "/u/giancu/download/install/cmake-2.4.8/Utilities/cmcurl/strerror.c", line 254.1: 1506-343 (S) Redeclaration of curl_multi_strerror differs from previous declaration on line 215 of "/u/giancu/download/install/cmake-2.4.8/Utilities/cmcurl/curl/multi.h". "/u/giancu/download/install/cmake-2.4.8/Utilities/cmcurl/strerror.c", line 254.1: 1506-050 (I) Return type "unsigned char*" in redeclaration is not compatible with the previous return type "const unsigned char*". "/u/giancu/download/install/cmake-2.4.8/Utilities/cmcurl/strerror.c", line 283.1: 1506-343 (S) Redeclaration of curl_share_strerror differs from previous declaration on line 1329 of "/u/giancu/download/install/cmake-2.4.8/Utilities/cmcurl/curl/curl.h". "/u/giancu/download/install/cmake-2.4.8/Utilities/cmcurl/strerror.c", line 283.1: 1506-050 (I) Return type "unsigned char*" in redeclaration is not compatible with the previous return type "const unsigned char*". gmake[2]: *** [Utilities/cmcurl/CMakeFiles/cmcurl.dir/strerror.o] Error 1 gmake[1]: *** [Utilities/cmcurl/CMakeFiles/cmcurl.dir/all] Error 2 gmake: *** [all] Error 2 I also tryied with CMake cmake-2.6.4 and there it didn't pass a configure test: "/u/giancu/download/install/cmake-2.6.4/Source/cmMakefile.cxx", line 2586.14: 1540-0296 (S) A return value of type "cmsys::auto_ptr" cannot be initialized with an rvalue of type "cmsys::auto_ptr". "/u/giancu/download/install/cmake-2.6.4/Source/cmMakefile.cxx", line 2586.14: 1540-0218 (I) The call does not match any parameter list for "auto_ptr::auto_ptr". "/u/giancu/download/install/cmake-2.6.4/Bootstrap.cmk/cmsys/auto_ptr.hxx", line 81.3: 1540-1283 (I) "cmsys::auto_ptr::auto_ptr(auto_ptr &)" is not a viable candidate. "/u/giancu/download/install/cmake-2.6.4/Source/cmMakefile.cxx", line 2586.14: 1540-0295 (I) A parameter of type "cmsys::auto_ptr &" cannot be initialized with an rvalue of type "cmsys::auto_ptr". "/u/giancu/download/install/cmake-2.6.4/Source/cmMakefile.cxx", line 2586.14: 1540-1290 (I) An rvalue cannot be converted to a reference to a non-const type. "/u/giancu/download/install/cmake-2.6.4/Bootstrap.cmk/cmsys/auto_ptr.hxx", line 108.3: 1540-1283 (I) "cmsys::auto_ptr::auto_ptr(auto_ptr &)" is not a viable candidate. "/u/giancu/download/install/cmake-2.6.4/Source/cmMakefile.cxx", line 2586.14: 1540-0295 (I) A parameter of type "cmsys::auto_ptr &" cannot be initialized with an rvalue of type "cmsys::auto_ptr". "/u/giancu/download/install/cmake-2.6.4/Source/cmMakefile.cxx", line 2586.14: 1540-1290 (I) An rvalue cannot be converted to a reference to a non-const type. "/u/giancu/download/install/cmake-2.6.4/Bootstrap.cmk/cmsys/auto_ptr.hxx", line 178.3: 1540-1283 (I) "cmsys::auto_ptr::auto_ptr(detail::auto_ptr_ref)" is not a viable candidate. "/u/giancu/download/install/cmake-2.6.4/Source/cmMakefile.cxx", line 2586.14: 1540-0295 (I) A parameter of type "cmsys::detail::auto_ptr_ref" cannot be initialized with an rvalue of type "cmsys::auto_ptr". "/u/giancu/download/install/cmake-2.6.4/Bootstrap.cmk/cmsys/auto_ptr.hxx", line 81.3: 1540-1283 (I) "cmsys::auto_ptr::auto_ptr(auto_ptr &)" is not a viable candidate. gmake: *** [cmMakefile.o] Error 1 ___ 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