On 04/25/2017 03:55 PM, Christoph Grüninger wrote: > please find attached a first attempt to implement OPTIONAL for > find_package. It is supposed to suppress all warnings and indicate the > negative result by a single line of output. Unfortunately, I still get a > warning and I could figure out how to simply print a message without the > warning. Could you give me some hints and comment on my patch?
The IssueMessage API is for formatted diagnostics with backtraces. Use DisplayStatus for a simple status line: ``` diff --git a/Source/cmFindPackageCommand.cxx b/Source/cmFindPackageCommand.cxx index 2f899a38ff..af64884d2b 100644 --- a/Source/cmFindPackageCommand.cxx +++ b/Source/cmFindPackageCommand.cxx @@ -844,8 +844,8 @@ bool cmFindPackageCommand::HandlePackageMode() aw << "Could not find " << this->Name << ". (No " << this->Name << ".cmake or " << this->Name - << "-config.cmake)\n"; - this->Makefile->IssueMessage(cmake::MESSAGE, aw.str()); + << "-config.cmake)"; + this->Makefile->DisplayStatus(aw.str().c_str(), -1); } // Set a variable marking whether the package was found. ``` One of the reasons the default message is so long is to help both project authors when writing find_package calls (perhaps trying to use a Find<pkg>.cmake file) and end-users trying to find a package. Older forms of the message caused a lot of confusion about the role of find modules (Find<pkg>.cmake) versus package configuration files (<pkg>Config.cmake). We need to make sure new messages don't cause such confusion again, so we should never have wording that mentions both files. When a find module is in use then the Find<pkg>.cmake module is responsible for result messages. `find_package_handle_standard_args` already constructs a nice single-line status message such as: -- Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR) Therefore I think the proposed status message is only needed in CONFIG mode when we can't find a <pkg>Config.cmake file. IIUC you'd like to replace the long-winded warning with something like: -- Could NOT find Foo (missing: Foo_DIR) Correct? 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