Hi,
I have a script where I tell ctest how to build my xcode project using
xcodebuild and send the results to our dashboard. However, I have noticed that
ctest_build is much much slower than when I am building my project manually
with Xcode or xcodebuild. For some of my projects, it can be as much as 10
times slower. (~1 hour)
Here is the script:
set (CTEST_DASHBOARD_ROOT "/Volumes/Data/SomeProject")
set (CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}")
set (CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}/build/")
set (CTEST_SITE "SomeSiteName")
set (CTEST_BUILD_NAME "SomeBuildName")
set (CTEST_NOTES_FILES "${CTEST_SCRIPT_DIRECTORY}/${CTEST_SCRIPT_NAME}")
set (CTEST_UPDATE_COMMAND "svn")
set (CTEST_CMAKE_GENERATOR "Xcode")
set (CTEST_PROJECT_NAME "SomeProjectName")
set (CTEST_BUILD_CONFIGURATION "Debug")
set (CTEST_TEST_TIMEOUT 800)
set (CTEST_BUILD_COMMAND "xcodebuild -project MyProject.bsproj -target
MyTarget -configuration Debug clean build")
ctest_start (Experimental)
ctest_build (BUILD ${CTEST_BINARY_DIRECTORY})
ctest_test (BUILD ${CTEST_BINARY_DIRECTORY})
ctest_submit ()
After profiling the ctest process, I have obtained the following results:
ctest version 2.8.2.20100817-gb3998
0.0% 100.0% ctest main
0.0% 100.0% ctest cmCTest::Run(std::vector<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >,
std::allocator<std::basic_string<char, std::char_traits<char>,
std::allocator<char> > > >&, std::basic_string<char, std::char_traits<char>,
std::allocator<char> >*)
0.0% 100.0% ctest cmCTestScriptHandler::ProcessHandler()
0.0% 100.0% ctest
cmCTestScriptHandler::RunConfigurationScript(std::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, bool)
0.0% 100.0% ctest
cmCTestScriptHandler::ReadInScript(std::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&)
0.0% 100.0% ctest cmMakefile::ReadListFile(char const*, char const*,
std::basic_string<char, std::char_traits<char>, std::allocator<char> >*, bool)
0.0% 100.0% ctest cmMakefile::ExecuteCommand(cmListFileFunction const&,
cmExecutionStatus&)
0.0% 100.0% ctest
cmCommand::InvokeInitialPass(std::vector<cmListFileArgument,
std::allocator<cmListFileArgument> > const&, cmExecutionStatus&)
0.0% 100.0% ctest
cmCTestBuildCommand::InitialPass(std::vector<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >,
std::allocator<std::basic_string<char, std::char_traits<char>,
std::allocator<char> > > > const&, cmExecutionStatus&)
0.0% 100.0% ctest
cmCTestHandlerCommand::InitialPass(std::vector<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >,
std::allocator<std::basic_string<char, std::char_traits<char>,
std::allocator<char> > > > const&, cmExecutionStatus&)
0.0% 100.0% ctest cmCTestBuildHandler::ProcessHandler()
0.0% 100.0% ctest cmCTestBuildHandler::RunMakeCommand(char const*,
int*, char const*, int, std::basic_ofstream<char, std::char_traits<char> >&)
0.0% 100.0% ctest cmCTestBuildHandler::ProcessBuffer(char const*,
int, unsigned long&, unsigned long, std::basic_ofstream<char,
std::char_traits<char> >&, std::deque<char, std::allocator<char> >*)
0.0% 100.0% ctest cmCTestBuildHandler::ProcessSingleLine(char
const*)
0.0% 100.0% ctest cmsys::RegularExpression::find(char const*)
0.0% 100.0% ctest cmsys::regtry(char const*, char const**,
char const**, char const*)
0.5% 100.0% ctest cmsys::regmatch(char const*)
The size of the build output is 7763KB. There are no compiler errors or
warnings. ctest_test is about as fast as running the unit tests myself in
Xcode. The problem really seems to be only with ctest_build.
Thanks,
Pascal
_______________________________________________
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