[cmake-developers] [CMake 0015011]: problem to find non-standard ncurses.h location
The following issue has been SUBMITTED. == http://public.kitware.com/Bug/view.php?id=15011 == Reported By:hsk Assigned To: == Project:CMake Issue ID: 15011 Category: (No Category) Reproducibility:always Severity: minor Priority: normal Status: new == Date Submitted: 2014-07-09 07:14 EDT Last Modified: 2014-07-09 07:14 EDT == Summary:problem to find non-standard ncurses.h location Description: i have installed gnu ncurses (and several other libraries) under separate location; os: solaris10, compiler: sunstudio 12.2 building cmake 2.8.x worked using env \ CC=cc \ CFLAGS='-xtarget=ultra2 -xarch=sparcvis -xO4' \ CXX=CC \ CXXFLAGS='-xtarget=ultra2 -xarch=sparcvis -xO4' \ LDFLAGS='-L/var/imb/lib -R/var/imb/lib -L/usr/sfw/lib -R/usr/sfw/lib -s' \ CPPFLAGS=-I/var/imb/include \ ./bootstrap --prefix=/var/imb; gmake with cmake 3.0, the gmake step fails: cmake-3.0.0/Source/CursesDialog/form/form.h, line 46: cannot find include file: ncurses/ncurses.h and -I/var/imb/include must be explicitly added to CFLAGS / CXXFLAGS for ncurses.h to be found, i.e., i have to use env \ CC=cc \ CFLAGS='-xtarget=ultra2 -xarch=sparcvis -xO4 -I/var/imb/include' \ CXX=CC \ CXXFLAGS='-xtarget=ultra2 -xarch=sparcvis -xO4 -I/var/imb/include' \ LDFLAGS='-L/var/imb/lib -R/var/imb/lib -L/usr/sfw/lib -R/usr/sfw/lib -s' \ CPPFLAGS=-I/var/imb/include \ ./bootstrap --prefix=/var/imb; gmake imho, the value of CPPFLAGS should be honoured here == Issue History Date ModifiedUsername FieldChange == 2014-07-09 07:14 hskNew Issue == -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers
[cmake-developers] [patch] install cfbundles as directory
cfbundles are currently not installed as directory, but the binary from Contents/MacOS is directly installed to the destination. attached patch fixes the issue. thanks, tim From b021da36ec9c72cc6410a95ce81a177a87f6f232 Mon Sep 17 00:00:00 2001 From: Tim Blechmann t...@klingt.org Date: Wed, 9 Jul 2014 15:33:25 +0200 Subject: [PATCH] InstallTarget: install CFBundles with complete directory --- Source/cmInstallTargetGenerator.cxx | 14 ++ 1 file changed, 14 insertions(+) diff --git a/Source/cmInstallTargetGenerator.cxx b/Source/cmInstallTargetGenerator.cxx index 7a39f45..93c0d63 100644 --- a/Source/cmInstallTargetGenerator.cxx +++ b/Source/cmInstallTargetGenerator.cxx @@ -213,6 +213,20 @@ void cmInstallTargetGenerator::GenerateScriptForConfig(std::ostream os, filesFrom.push_back(from1); filesTo.push_back(to1); } +else if(this-Target-IsCFBundleOnApple()) + { + // Install the whole app bundle directory. + type = cmInstallType_DIRECTORY; + literal_args += USE_SOURCE_PERMISSIONS; + + std::string targetNameBase = targetName.substr(0, targetName.find_first_of(/)); + + std::string from1 = fromDirConfig + targetNameBase; + std::string to1 = toDir + targetNameBase; + + filesFrom.push_back(from1); + filesTo.push_back(to1); + } else { bool haveNamelink = false; -- 2.0.1 -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers
Re: [cmake-developers] NVidia Nsight Tegra (was: Who does CMake contract work?)
On 07/08/2014 08:46 AM, Tim Jenks wrote: I would also be interested in any information regarding nsight tegra solution generation using cmake. Did anything come of this thread? We ended up working with NVIDIA directly and have produced a draft of support for Nsight Tegra with Visual Studio. It is still a work in progress but I've attached the current draft patch series (they apply on master as of 487b6ccd, and perhaps more recent versions too). Limitations of the current draft are documented in patch 0004. With these patches and NVIDIA Nsight Tegra Visual Studio Edition installed, new generator variants are available: Visual Studio 12 2013 Tegra-Android Visual Studio 11 2012 Tegra-Android Visual Studio 10 2010 Tegra-Android A non-default Android NDK toolchain may be selected at the command-line, e.g. cmake -G Visual Studio 12 2013 Tegra-Android -T clang-3.4 ... or using a CMAKE_TOOLCHAIN_FILE that sets CMAKE_GENERATOR_TOOLSET. Feedback is welcome. Thanks, -Brad From 8d18af8606007cce32aa16b57becb51f8c1fa8be Mon Sep 17 00:00:00 2001 Message-Id: 8d18af8606007cce32aa16b57becb51f8c1fa8be.1402422416.git.brad.k...@kitware.com From: Brad King brad.k...@kitware.com Date: Tue, 10 Jun 2014 10:13:00 -0400 Subject: [PATCH 1/4] VS: Make MS-tool-specific options conditional Make blocks adding MS-tool-specific options conditional on a new MSTools boolean member of cmVisualStudio10TargetGenerator. Hard-code the member to true for now to preserve existing behavior. --- Source/cmVisualStudio10TargetGenerator.cxx | 200 + Source/cmVisualStudio10TargetGenerator.h | 1 + 2 files changed, 122 insertions(+), 79 deletions(-) diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index acf3930..aa6d00d 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -34,38 +34,50 @@ cmIDEFlagTable const* cmVisualStudio10TargetGenerator::GetClFlagTable() const { - cmLocalVisualStudioGenerator::VSVersion -v = this-LocalGenerator-GetVersion(); - if(v = cmLocalVisualStudioGenerator::VS12) -{ return cmVS12CLFlagTable; } - else if(v == cmLocalVisualStudioGenerator::VS11) -{ return cmVS11CLFlagTable; } - else -{ return cmVS10CLFlagTable; } + if(this-MSTools) +{ +cmLocalVisualStudioGenerator::VSVersion + v = this-LocalGenerator-GetVersion(); +if(v = cmLocalVisualStudioGenerator::VS12) + { return cmVS12CLFlagTable; } +else if(v == cmLocalVisualStudioGenerator::VS11) + { return cmVS11CLFlagTable; } +else + { return cmVS10CLFlagTable; } +} + return 0; } cmIDEFlagTable const* cmVisualStudio10TargetGenerator::GetLibFlagTable() const { - cmLocalVisualStudioGenerator::VSVersion -v = this-LocalGenerator-GetVersion(); - if(v = cmLocalVisualStudioGenerator::VS12) -{ return cmVS12LibFlagTable; } - else if(v == cmLocalVisualStudioGenerator::VS11) -{ return cmVS11LibFlagTable; } - else -{ return cmVS10LibFlagTable; } + if(this-MSTools) +{ +cmLocalVisualStudioGenerator::VSVersion + v = this-LocalGenerator-GetVersion(); +if(v = cmLocalVisualStudioGenerator::VS12) + { return cmVS12LibFlagTable; } +else if(v == cmLocalVisualStudioGenerator::VS11) + { return cmVS11LibFlagTable; } +else + { return cmVS10LibFlagTable; } +} + return 0; } cmIDEFlagTable const* cmVisualStudio10TargetGenerator::GetLinkFlagTable() const { - cmLocalVisualStudioGenerator::VSVersion -v = this-LocalGenerator-GetVersion(); - if(v = cmLocalVisualStudioGenerator::VS12) -{ return cmVS12LinkFlagTable; } - else if(v == cmLocalVisualStudioGenerator::VS11) -{ return cmVS11LinkFlagTable; } - else -{ return cmVS10LinkFlagTable; } + if(this-MSTools) +{ +cmLocalVisualStudioGenerator::VSVersion + v = this-LocalGenerator-GetVersion(); +if(v = cmLocalVisualStudioGenerator::VS12) + { return cmVS12LinkFlagTable; } +else if(v == cmLocalVisualStudioGenerator::VS11) + { return cmVS11LinkFlagTable; } +else + { return cmVS10LinkFlagTable; } +} + return 0; } static std::string cmVS10EscapeXML(std::string arg) @@ -115,6 +127,7 @@ cmVisualStudio10TargetGenerator(cmTarget* target, this-GlobalGenerator-CreateGUID(this-Name.c_str()); this-GUID = this-GlobalGenerator-GetGUID(this-Name.c_str()); this-Platform = gg-GetPlatformName(); + this-MSTools = true; this-BuildFileStream = 0; } @@ -501,7 +514,10 @@ void cmVisualStudio10TargetGenerator::WriteProjectConfigurationValues() configType += /ConfigurationType\n; this-WriteString(configType.c_str(), 2); -this-WriteMSToolConfigurationValues(*i); +if(this-MSTools) + { + this-WriteMSToolConfigurationValues(*i); + } this-WriteString(/PropertyGroup\n, 1); } @@ -1416,17 +1432,23 @@ bool cmVisualStudio10TargetGenerator::ComputeClOptions( // Get
Re: [cmake-developers] cost of usage requirements
On 06/11/2014 10:46 AM, Brad King wrote: Here is a sscce:: cmake_minimum_required(VERSION 2.8.9) project(ManyLibs C) set(LibPrev) foreach(n RANGE 100) add_library(Lib${n} SHARED lib.c) target_link_libraries(Lib${n} LINK_PUBLIC ${LibPrev}) set(LibPrev Lib${n}) endforeach() A similar case also appears when building VTKWikiExamples as discussed on the cmake user list here: cmake 3.0 memory usage on VTKWikiExamples http://thread.gmane.org/gmane.comp.programming.tools.cmake.user/49910/focus=49922 Memory usage explodes during generation and CMake sometimes runs out and crashes. -Brad -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers
Re: [cmake-developers] [patch] install cfbundles as directory
On 07/09/2014 09:40 AM, Tim Blechmann wrote: cfbundles are currently not installed as directory, but the binary from Contents/MacOS is directly installed to the destination. attached patch fixes the issue. Thanks. I do not understand this line: + std::string targetNameBase = targetName.substr(0, targetName.find_first_of(/)); Why do we need to look for the first slash? Also, look earlier in that function for the blocks starting in: // Handle OSX Bundles. if(this-Target-IsAppBundleOnApple()) and else if(this-Target-IsFrameworkOnApple()) Those cases do special handling for the post-installation tweaks. Is something similar needed here? -Brad -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers
Re: [cmake-developers] [patch] install cfbundles as directory
On Wed, Jul 09, 2014 at 11:09:01 -0400, Brad King wrote: + std::string targetNameBase = targetName.substr(0, targetName.find_first_of(/)); Not that this is performance-sensitive region, but in the pursuit removing bad patterns to avoid copy/paste issues in the future: std::string targetNameBase = targetName.resize(targetName.find('/')); is better, though the resize might not be doable since there's a check for npos that is necessary if the targetName doesn't have a slash in it. The find_first_of(one_char_string) should definitely be find(one_char) or find_first_of(one_char). Of course, assuming this line survives to the final patch. Thanks, --Ben -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers
Re: [cmake-developers] [patch] install cfbundles as directory
cfbundles are currently not installed as directory, but the binary from Contents/MacOS is directly installed to the destination. attached patch fixes the issue. Thanks. I do not understand this line: + std::string targetNameBase = targetName.substr(0, targetName.find_first_of(/)); Why do we need to look for the first slash? targetName is: ${BundleName}${BundleExtension}/Contents/MacOS/${BundleName} we basically want to find ${BundleName}. i did not find any way to determine this information from the Target. Also, look earlier in that function for the blocks starting in: // Handle OSX Bundles. if(this-Target-IsAppBundleOnApple()) and else if(this-Target-IsFrameworkOnApple()) Those cases do special handling for the post-installation tweaks. Is something similar needed here? i wonder: which tweaks are they? i've seen the comments, but failed to understand, what kind of post-install tweaks they add, as it is mainly about changing source and destinations. in my use-case it seems to work, but of course i might be missing something ... cheers, tim -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers
Re: [cmake-developers] [patch] install cfbundles as directory
On 07/09/2014 11:30 AM, Tim Blechmann wrote: Why do we need to look for the first slash? targetName is: ${BundleName}${BundleExtension}/Contents/MacOS/${BundleName} Okay, thanks. Those cases do special handling for the post-installation tweaks. i wonder: which tweaks are they? It's things like running strip on the executable file. The line filesTo.push_back(to1); needs to add the path to the executable file, not the directory. The filesTo vector is used only for tweaks and not for generating the main install rules. IIUC we should use std::string to1 = toDir + targetName; for CFBundles to get the location of the installed binary file. Thanks, -Brad -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers
Re: [cmake-developers] [patch] install cfbundles as directory
Those cases do special handling for the post-installation tweaks. i wonder: which tweaks are they? It's things like running strip on the executable file. The line filesTo.push_back(to1); needs to add the path to the executable file, not the directory. The filesTo vector is used only for tweaks and not for generating the main install rules. IIUC we should use std::string to1 = toDir + targetName; for CFBundles to get the location of the installed binary file. ah, i see ... double-checked and this works for me! shall i update the patch? cheers, tim -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers
Re: [cmake-developers] [patch] install cfbundles as directory
On 07/09/2014 11:52 AM, Tim Blechmann wrote: shall i update the patch? Yes, so that we know the updated version works for what you need. Please also include a change to use Ben's suggestion of targetName.find('/') instead of find_first_of. Thanks, -Brad -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers
[cmake-developers] CPack IFW generator
Hello dear developers! And again CPack IFW generator!!! This generator is not part of CMake, but I hope that soon it will become possible. This letter I once again want to awaken interest in the creation of new cross-platform the binary installer is based on Qt Framework Installer tools (http://qt-project.org/doc/qtinstallerframework/index.html) (Sorry for my English. I use a translator) I already appeared here some time ago: http://public.kitware.com/pipermail/cmake-developers/2014-May/010430.html I received some recommendations and considered them. With each commit generator becomes better. As before you can clone the code for the study: git clone git://podsvirov.pro/cmake/cpackifwgenerator.git Or check out the code in your browser: http://git.podsvirov.pro/?p=cmake/cpackifwgenerator.git;a=summary In the Wiki I found an example of creating a binary instalatorow: http://cmake.org/Wiki/CMake:Component_Install_With_CPack My generator also copes with this task. Here's how it looks in Linux and Windows: http://ifw.podsvirov.pro/cmake/cpackifw-componentexample-linux.png http://ifw.podsvirov.pro/cmake/cpackifw-componentexample-windows.png I strive to create the binary installer CMake using a new generator. I already have the achievements. Created installers produce the set of all that was specified in the install(...)but do not create shortcuts. Version of CMake (CPack IFW generator) collected them available for Linux and Windows now: http://ifw.podsvirov.pro/cmake/cmake-3.0.20140709-ifw-linux-i686.run http://ifw.podsvirov.pro/cmake/cmake-3.0.20140709-ifw-windows-x64.exe http://ifw.podsvirov.pro/cmake/cmake-3.0.20140709-ifw-windows-x86.exe Please test these installers and write your comments. It is not excluded that in the folder http://ifw.podsvirov.pro/cmake may be something useful. I've created accounts Mantis and CDash. Git push access to g...@cmake.org:cmake.git I do not have. With respect Konstantin Podsvirov -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers
Re: [cmake-developers] [patch] install cfbundles as directory
shall i update the patch? Yes, so that we know the updated version works for what you need. Please also include a change to use Ben's suggestion of targetName.find('/') instead of find_first_of. attached! thanks a lot, tim From 18147876fd834a24dcdeca70078c972f84e92866 Mon Sep 17 00:00:00 2001 From: Tim Blechmann t...@klingt.org Date: Wed, 9 Jul 2014 20:01:11 +0200 Subject: [PATCH] InstallTarget: install CFBundles with complete directory --- Source/cmInstallTargetGenerator.cxx | 14 ++ 1 file changed, 14 insertions(+) diff --git a/Source/cmInstallTargetGenerator.cxx b/Source/cmInstallTargetGenerator.cxx index 7a39f45..38d369e 100644 --- a/Source/cmInstallTargetGenerator.cxx +++ b/Source/cmInstallTargetGenerator.cxx @@ -213,6 +213,20 @@ void cmInstallTargetGenerator::GenerateScriptForConfig(std::ostream os, filesFrom.push_back(from1); filesTo.push_back(to1); } +else if(this-Target-IsCFBundleOnApple()) + { + // Install the whole app bundle directory. + type = cmInstallType_DIRECTORY; + literal_args += USE_SOURCE_PERMISSIONS; + + std::string targetNameBase = targetName.substr(0, targetName.find('/')); + + std::string from1 = fromDirConfig + targetNameBase; + std::string to1 = toDir + targetName; + + filesFrom.push_back(from1); + filesTo.push_back(to1); + } else { bool haveNamelink = false; -- 2.0.1 -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers
[cmake-developers] [PATCH] fix comment typos
--- Source/kwsys/Terminal.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Source/kwsys/Terminal.c b/Source/kwsys/Terminal.c index 6d7ec41..e13003f 100644 --- a/Source/kwsys/Terminal.c +++ b/Source/kwsys/Terminal.c @@ -104,11 +104,11 @@ void kwsysTerminal_cfprintf(int color, FILE* stream, const char* format, ...) } /*--*/ -/* Detect cases when a stream is definately not interactive. */ +/* Detect cases when a stream is definitely not interactive. */ #if !defined(KWSYS_TERMINAL_ISATTY_WORKS) static int kwsysTerminalStreamIsNotInteractive(FILE* stream) { - /* The given stream is definately not interactive if it is a regular + /* The given stream is definitely not interactive if it is a regular file. */ struct stat stream_stat; if(fstat(fileno(stream), stream_stat) == 0) @@ -212,7 +212,7 @@ static int kwsysTerminalStreamIsVT100(FILE* stream, int default_vt100, (void)default_tty; return isatty(fileno(stream))? 1:0; #else - /* Check for cases in which the stream is definately not a tty. */ + /* Check for cases in which the stream is definitely not a tty. */ if(kwsysTerminalStreamIsNotInteractive(stream)) { return 0; -- 2.0.1 === DISCLAIMER: This e-mail and any attachments to it contain confidential and proprietary material of Barracuda, its affiliates or agents, and is solely for the use of the intended recipient. Any review, use, disclosure, distribution or copying of this transmittal is prohibited except by or on behalf of the intended recipient. If you have received this transmittal in error, please notify the sender and destroy this e-mail and any attachments and all copies, whether electronic or printed. -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers
Re: [cmake-developers] [RFCv2] ctest: color test summary output
On 07/02/2014 09:24 AM, Brad King wrote: On 07/02/2014 08:13 AM, Ben Boeckel wrote: Colors should only be output if we're outputting to a TTY. Pipes or redirections should not be colored (they'll only confuse those who don't recognize the escape sequences). CMake also has color routines already, but I don't know off-hand how accessible they are from CTest code (i.e., might be static functions). Look for uses of cmsysTerminal_cfprintf as an example. See its declaration in Source/kwsys/Terminal.h.in also. I've attached an implementation that uses cmsysTerminal_cfprintf. Is it acceptable to decouple outputting this line from cmCTest::Log? Currently cmCTestLog is a macro that uses cmCTest::Log, which uses C++ ostreams. Would it be better to move the color logic and manipulation to something shared between Log and cmsysTerminal_cfprintf, and add a Log that can use color? Is it preferable to keep the user-facing string on one line, or break it up for line length? === DISCLAIMER: This e-mail and any attachments to it contain confidential and proprietary material of Barracuda, its affiliates or agents, and is solely for the use of the intended recipient. Any review, use, disclosure, distribution or copying of this transmittal is prohibited except by or on behalf of the intended recipient. If you have received this transmittal in error, please notify the sender and destroy this e-mail and any attachments and all copies, whether electronic or printed. From d699f93580ae19ad7b0dd2fe52071f0c222d48c7 Mon Sep 17 00:00:00 2001 From: Steve Dougherty sdoughe...@barracuda.com Date: Wed, 9 Jul 2014 16:23:45 -0400 Subject: [PATCH 1/2] color test summary output --- Source/CTest/cmCTestTestHandler.cxx | 17 + 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/Source/CTest/cmCTestTestHandler.cxx b/Source/CTest/cmCTestTestHandler.cxx index f21d166..f1836fa 100644 --- a/Source/CTest/cmCTestTestHandler.cxx +++ b/Source/CTest/cmCTestTestHandler.cxx @@ -22,6 +22,7 @@ #include cmsys/Base64.h #include cmsys/Directory.hxx #include cmsys/FStream.hxx +#include cmsys/Terminal.h #include cmMakefile.h #include cmGlobalGenerator.h #include cmLocalGenerator.h @@ -583,10 +584,18 @@ int cmCTestTestHandler::ProcessHandler() percent = 99; } -cmCTestLog(this-CTest, HANDLER_OUTPUT, std::endl -static_castint(percent + .5) % tests passed, -failed.size() tests failed out of -total std::endl); +int color; +if ( failed.size() ) + { +color = cmsysTerminal_Color_ForegroundRed; + } +else + { +color = cmsysTerminal_Color_ForegroundGreen; + } +cmsysTerminal_cfprintf(color, stdout, \n%d%% tests passed, %d tests failed out of %d\n, + static_castint(percent + .5), failed.size(), total); + if(this-CTest-GetLabelSummary()) { this-PrintLabelSummary(); -- 2.0.1 -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers
Re: [cmake-developers] [CMake 0015011]: problem to find non-standard ncurses.h location
The CMake module scripting is weak regarding the variable that should be taking care of this, CMAKE_SYSTEM_PREFIX_PATH (i.e., /usr; /opt) will be used in find_path (after appending /include) and for find_library(after appending /lib) - according to cmake.html documentation. For my mingw/msys builds I set this and the /include, /lib mostly located in platform/MingW.cmake: if(MSYS) # enhance the system prefix path. (picks up /Mingw/lib) find_path( MINGWPATH msys PATH ${CMAKE_USR_PATH}/../../ NO_DEFAULT_PATH) list(APPEND CMAKE_SYSTEM_PREFIX_PATH ${MINGWPATH} ) list(APPEND CMAKE_SYSTEM_INCLUDE_PATH ${MINGWPATH}/include ) list(APPEND CMAKE_SYSTEM_LIBRARY_PATH ${MINGWPATH}/lib ) --- then LDFLAGS is inspected: set(LDFLAGS $ENV{LDFLAGS}) if(LDFLAGS) message(STATUS \n Platform/Mingw inspecting LDFLAGS: ${LDFLAGS} ) string( REGEX MATCHALL -L([^\ ]+) librarylist ${LDFLAGS} ) foreach(element IN LISTS librarylist) # LDFLAGS is more specific. etc., leading to message(STATUS Platform/Mingw adding system library path: ${library}) list(INSERT CMAKE_SYSTEM_LIBRARY_PATH 0 ${library}) list(INSERT CMAKE_SYSTEM_INCLUDE_PATH 0 ${library}/../include ) --- On Wed, Jul 9, 2014 at 4:14 AM, Mantis Bug Tracker man...@public.kitware.com wrote: The following issue has been SUBMITTED. == http://public.kitware.com/Bug/view.php?id=15011 == Reported By:hsk Assigned To: == Project:CMake Issue ID: 15011 Category: (No Category) Reproducibility:always Severity: minor Priority: normal Status: new == Date Submitted: 2014-07-09 07:14 EDT Last Modified: 2014-07-09 07:14 EDT == Summary:problem to find non-standard ncurses.h location Description: i have installed gnu ncurses (and several other libraries) under separate location; os: solaris10, compiler: sunstudio 12.2 building cmake 2.8.x worked using env \ CC=cc \ CFLAGS='-xtarget=ultra2 -xarch=sparcvis -xO4' \ CXX=CC \ CXXFLAGS='-xtarget=ultra2 -xarch=sparcvis -xO4' \ LDFLAGS='-L/var/imb/lib -R/var/imb/lib -L/usr/sfw/lib -R/usr/sfw/lib -s' \ CPPFLAGS=-I/var/imb/include \ ./bootstrap --prefix=/var/imb; gmake with cmake 3.0, the gmake step fails: cmake-3.0.0/Source/CursesDialog/form/form.h, line 46: cannot find include file: ncurses/ncurses.h and -I/var/imb/include must be explicitly added to CFLAGS / CXXFLAGS for ncurses.h to be found, i.e., i have to use env \ CC=cc \ CFLAGS='-xtarget=ultra2 -xarch=sparcvis -xO4 -I/var/imb/include' \ CXX=CC \ CXXFLAGS='-xtarget=ultra2 -xarch=sparcvis -xO4 -I/var/imb/include' \ LDFLAGS='-L/var/imb/lib -R/var/imb/lib -L/usr/sfw/lib -R/usr/sfw/lib -s' \ CPPFLAGS=-I/var/imb/include \ ./bootstrap --prefix=/var/imb; gmake imho, the value of CPPFLAGS should be honoured here == Issue History Date ModifiedUsername FieldChange == 2014-07-09 07:14 hskNew Issue == -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: