This topic was never tested without some follow-up commits. The
GetCacheEntryValue API returns a pointer to memory freed on return.
It will have to be revised along with the rest of the original topic.
At the start of each configure step we already reset the generator
selection (CMAKE_GENERATOR) to match that loaded for the current
project. Add missing code to reset the generator platform and toolset
(CMAKE_GENERATOR_PLATFORM and CMAKE_GENERATOR_TOOLSET) also so that they
do not leak across projects.
Output sent through these APIs is logically part of the CMake process
output. Capture it with callbacks and display it in the cmake-gui
output window along with other messages.
Since commit 1a1b737c (stringapi: Use strings for generator names,
2014-02-24) cmExternalMakefileProjectGenerator::CreateFullGeneratorName
expects a std::string instead of const char*. When no extra generator
name is available, pass an empty string to avoid NULL dereference.
Rename cmSystemTools::FindExecutableDirectory to FindCMakeResources.
Teach it to compute the locations of cmake, ctest, cpack, ccmake, and
cmake-gui executables, and the location of CMAKE_ROOT. Provide this
information from static cmSystemTools::Get<resource>() methods.
Refactor code that needs these locations to use the new APIs.
Teach FindCMakeResources to use the OS X system API to lookup the
executable location. When running from the CMake build tree itself,
leave a file in the tree that FindCMakeResources can use to read the
location of the source tree. This avoids the need to compile the source
tree location into a binary that may be installed and used without the
source tree.
Teach the QtDialog on OS X to create a "cmake-gui" symlink in the build
tree next to "cmake" and the other tools, as is already done in the
install tree for the application bundle. This ensures a consistent set
of executables are available in one directory.
Instead of enabling interrupt only when a progress or message callback is called, add a new callback specifically for
interrupt. This new callback is called from GetFatalErrorOccured() so cmake-gui can immediately report interrupt status
instead of calling queuing a call to cmSystemTools::SetFatalErrorOccured() and waiting for the progress or message
callback to be called to process that queued call.
This converts the CMake license to a pure 3-clause OSI-approved BSD
License. We drop the previous license clause requiring modified
versions to be plainly marked. We also update the CMake copyright to
cover the full development time range.
the generator on the first configure. It either ask for a toolchain file
or asks for all the information a toolchain file might contain.
Also added option for setting non-default compilers if not cross compiling.
Fixes#6849.
Also a bit of code cleanup and re-organizing.
A bit of cleanup.
Disable tab navigation in cache variable list.
Enable home/end keys.
BUG: Ensure currently edited values are saved before doing configure.
ENH: add delete cache button
ENH: add information string above configure/generate buttons
ENH: change search to search both columns, and from regex to plain string search
ENH: add buddy info in cache entry view, so double clicking in the left column
starts editing the associated value.
BUG: fix file path editor so it goes away when focus is lost
Also disable generate until configure is done.
Save more settings (last 10 binary directories, exit after generate,
last generator)
Some UI tweaks for better layout.
Support drag & drop of CMakeLists.txt/CMakeCache.txt files.
Add reload & delete cache options.
Add option to quit after generation step (not yet remembered between sessions).
Add Help -> About
Remove Help button (in menu now)
Remove Cancel button (File -> Exit and the Window 'X' button exist)
Make output window a bit smaller compared to cache view.
Prompt on X'ing window as well as hitting cancel.
Color new cache values red, and put them first.