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 <volo.z...@gmail.com> 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 
> <bill.hoff...@kitware.com>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
>> bill.hoff...@kitware.com
>> 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
--

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

Reply via email to