ENH: Absolute path to cmake resolved

This commit is contained in:
Luis Ibanez 2001-06-15 07:51:55 -04:00
parent 38776d829b
commit f055e512ae
4 changed files with 54 additions and 26 deletions

View File

@ -1,14 +1,14 @@
#include "CMakeSetupGUIImplementation.h"
#include "FL/fl_file_chooser.H"
#include "FL/filename.H"
#include "FL/fl_ask.H"
#include "Fl/fl_file_chooser.H"
#include "Fl/filename.H"
#include "Fl/fl_ask.H"
#include "cstring"
#include "../cmCacheManager.h"
#include "../cmMakefile.h"
#include <iostream>
#include "FLTKPropertyList.h"
#include "FL/fl_draw.H"
#include "Fl/fl_draw.H"
#include "../cmake.h"
@ -20,22 +20,6 @@ CMakeSetupGUIImplementation
::CMakeSetupGUIImplementation()
{
m_BuildPathChanged = false;
// Construct the full path to cmake executable
#if defined(_WIN32)
char fname[1024];
::GetModuleFileName(NULL,fname,1023); // Didn't found this method. (?)
m_PathToExecutable = cmSystemTools::GetProgramPath(fname).c_str();
m_PathToExecutable += "/cmake.exe";
#else
char fullPathToCMake[1024];
filename_absolute( fullPathToCMake, "../cmake" );
m_PathToExecutable = fullPathToCMake;
#endif
std::cout << "Path to CMake executable " << m_PathToExecutable << std::endl;
}
@ -130,6 +114,47 @@ CMakeSetupGUIImplementation
/**
* Set path to executable. Used to get the path to CMake
*/
void
CMakeSetupGUIImplementation
::SetPathToExecutable( const char * path )
{
m_PathToExecutable = path;
char expandedPath[1024];
filename_expand( expandedPath, path );
char absolutePath[1024];
filename_absolute( absolutePath, expandedPath );
char * p = absolutePath + strlen( absolutePath );
while( *p != '/' && *p != '\\' )
{
p--;
}
p--;
while( *p != '/' && *p != '\\' )
{
p--;
}
*p = '\0';
std::cout << "absolutePath = " << absolutePath << std::endl;
m_PathToExecutable = absolutePath;
#if defined(_WIN32)
m_PathToExecutable += "/CMake.exe";
#else
m_PathToExecutable += "/cmake";
#endif
std::cout << "Path to CMake executable = " << m_PathToExecutable << std::endl;
}
/**
* Set the source path
*/
@ -358,7 +383,7 @@ CMakeSetupGUIImplementation
{
cmCacheManager::GetInstance()->LoadCache( m_WhereBuild.c_str() );
this->FillCacheGUIFromCacheManager();
}
}
}

View File

@ -32,6 +32,7 @@ public:
virtual void LoadCacheFromDiskToGUI( void );
virtual void FillCacheGUIFromCacheManager( void );
virtual void FillCacheManagerFromCacheGUI( void );
virtual void SetPathToExecutable( const char * path );
private:
virtual bool VerifyBinaryPath( const std::string & path ) const;

View File

@ -3,7 +3,7 @@
#include "FL/Fl.h"
#include "FL/fl_ask.H"
int main()
int main(int argc, char * argv[] )
{
fl_message_font(FL_HELVETICA,11);
@ -11,6 +11,7 @@ int main()
CMakeSetupGUIImplementation * gui
= new CMakeSetupGUIImplementation;
gui->SetPathToExecutable( argv[0] );
gui->Show();
gui->LoadCacheFromDiskToGUI();

View File

@ -1,8 +1,9 @@
#include "FLTKPropertyNameButtonWithHelp.h"
#include <FL/Fl.H>
#include <FL/fl_ask.H>
#include <FL/Fl_Menu_Button.H>
// #include <FLTKPropertyNameButtonWithHelp.h>
#include <Fl/Fl.H>
#include <Fl/fl_ask.H>
#include <Fl/Fl_Menu_Button.H>
#include "../cmCacheManager.h"
#include "FLTKPropertyNameButtonWithHelp.h"
namespace fltk {