Hi, If it turns out to be usefull for you. We could also consider creating a dedicated github project to avoid code duplication. That way you would be able to either add it as a git submodule to your project or checkout this new small project at configure time [1]
Hth Jc [1] http://cmake.3232098.n2.nabble.com/is-it-possible-to-download-CMake-modules-at-configure-time-td7583968.html On Wed, Apr 24, 2013 at 5:32 PM, Volo Zyko <[email protected]> wrote: > Hi Jean-Christophe, > > Thanks for the suggestion. We'll definitely consider it. > > -- > Volo Zyko > > On Thu, Apr 25, 2013 at 12:23 AM, Jean-Christophe Fillion-Robin < > [email protected]> wrote: > >> Hi Volo, >> >> If you are doing some topological sorting to build your >> library/executable in the right order. Instead of using CMake based >> solution, you could may be rely on a C++ approach ? This is what we are >> doing in CTK. We are using a small prog named ctkDependencyGraph that we >> build at configure time. >> See [1-4] >> >> [1] >> http://www.commontk.org/index.php/Documentation/BuildSystem_Description >> [2] https://github.com/commontk/CTK/blob/master/CMakeLists.txt#L691-717 >> [3] >> https://github.com/commontk/CTK/blob/master/CMake/ctkFunctionGenerateDGraphInput.cmake >> [4] >> https://github.com/commontk/CTK/blob/master/CMake/ctkMacroValidateBuildOptions.cmake#L127-150 >> >> >> >> On Wed, Apr 24, 2013 at 5:13 PM, Volo Zyko <[email protected]> wrote: >> >>> We have executables and libraries and a lot of custom targets (the >>> project is organized so that we export headers during the build - not the >>> best idea in the world). However, I finished (more or less) the script for >>> building time stats from the cmake's trace and we (with my colleague) found >>> the slowest part. In our cmake scripts we have a bunch of sub-projects >>> which produce libraries and also we have an utility function with which we >>> define dependencies between those sub-projects. Then we define executables >>> and build a list of libraries in a right order (from more dependent to less >>> dependent) using sub-project's dependencies. This list is necessary for >>> linking the executables. So, it appears that the slowest part is the >>> function that builds the list of libraries. Basically there is nothing >>> wrong with that cmake function, it just intensively works with strings. :( >>> >>> And here is where I put my script: >>> https://code.google.com/p/cmake-profile-stats/ Comments are welcome. >>> >>> Also it looks like there are few bugs in the trace functionality of >>> cmake; especially how callstack changes when cmake process foreach and >>> if/else calls. I just didn't investigate them and I cannot provide more >>> details. Sorry. >>> >>> -- >>> Volo Zyko >>> >>> On Wed, Apr 24, 2013 at 10:14 PM, Bill Hoffman <[email protected] >>> > wrote: >>> >>>> On 4/24/2013 3:07 PM, Volo Zyko wrote: >>>> >>>>> Hi, >>>>> >>>>> We use Makefiles on Linux and MacOS. Windows is not our target >>>>> platform. >>>>> From what we see Linux is the fastest. We made few attempts of building >>>>> our project on Windows in VS but it was very-very slow and definitely >>>>> cmake generates too many project files for VS. For us it was 500+ >>>>> projects in a workspace which is too much for Visual Studio. :( >>>>> >>>> Chances are you have too many high level targets in your project. What >>>> types of targets do you have? Are they all executables and libraries or >>>> are you using custom targets to do something? That might be a source of >>>> your performance issues as well. >>>> >>>> -Bill >>>> >>>> >>>> -- >>>> Bill Hoffman >>>> Kitware, Inc. >>>> 28 Corporate Drive >>>> Clifton Park, NY 12065 >>>> [email protected] >>>> http://www.kitware.com >>>> 518 881-4905 (Direct) >>>> 518 371-3971 x105 >>>> Fax (518) 371-4573 >>>> >>>> -- >>>> >>>> Powered by www.kitware.com >>>> >>>> Visit other Kitware open-source projects at http://www.kitware.com/** >>>> opensource/opensource.html<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<http://www.cmake.org/Wiki/CMake_FAQ> >>>> >>>> Follow this link to subscribe/unsubscribe: >>>> http://www.cmake.org/mailman/**listinfo/cmake<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 >>> >> >> >> >> -- >> +1 919 869 8849 >> > > > -- +1 919 869 8849
-- 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
