Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
CMake
CMake
Commits
c751d2eb
Commit
c751d2eb
authored
Sep 26, 2002
by
Ken Martin
Browse files
added progress
parent
85896b34
Changes
7
Hide whitespace changes
Inline
Side-by-side
Source/MFCDialog/CMakeSetup.rc
View file @
c751d2eb
//Microsoft
Developer Studio
generated resource script.
//
Microsoft
Visual C++
generated resource script.
//
#include "resource.h"
...
...
@@ -27,18 +27,18 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
// TEXTINCLUDE
//
1 TEXTINCLUDE
DISCARDABLE
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
DISCARDABLE
2 TEXTINCLUDE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE
DISCARDABLE
3 TEXTINCLUDE
BEGIN
"#define _AFX_NO_SPLITTER_RESOURCES\r\n"
"#define _AFX_NO_OLE_RESOURCES\r\n"
...
...
@@ -66,15 +66,15 @@ END
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDR_MAINFRAME ICON
DISCARDABLE
"res\\CMakeSetupDialog.ico"
IDR_MAINFRAME ICON
"res\\CMakeSetupDialog.ico"
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_ABOUTBOX DIALOG
DISCARDABLE
0, 0, 235, 55
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
IDD_ABOUTBOX DIALOG 0, 0, 235, 55
STYLE
DS_SETFONT |
DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "About CMakeSetup"
FONT 8, "MS Sans Serif"
BEGIN
...
...
@@ -86,11 +86,11 @@ BEGIN
END
IDD_CMakeSetupDialog_DIALOG DIALOGEX 0, 0, 446, 241
STYLE WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE |
WS_CAPTION |
WS_SYSMENU | WS_THICKFRAME
STYLE
DS_SETFONT |
WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE |
WS_CAPTION |
WS_SYSMENU | WS_THICKFRAME
EXSTYLE WS_EX_APPWINDOW
CAPTION "CMakeSetupDialog"
FONT 8, "MS Sans Serif"
FONT 8, "MS Sans Serif"
, 0, 0, 0x1
BEGIN
COMBOBOX IDC_WhereSource,96,6,169,66,CBS_DROPDOWN |
CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
...
...
@@ -116,10 +116,11 @@ BEGIN
PUSHBUTTON "Help",IDC_HELP_BUTTON,278,223,51,15
CONTROL "Show Advanced Values",IDC_AdvancedValues,"Button",
BS_AUTOCHECKBOX | WS_TABSTOP,305,28,98,9
RTEXT "Static",IDC_PROGRESS,341,226,100,12,SS_CENTERIMAGE
END
IDD_CMAKE_HELP_DIALOG DIALOG
DISCARDABLE
0, 0, 365, 183
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
IDD_CMAKE_HELP_DIALOG DIALOG 0, 0, 365, 183
STYLE
DS_SETFONT |
DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "CMake Help"
FONT 8, "MS Sans Serif"
BEGIN
...
...
@@ -129,7 +130,6 @@ BEGIN
END
#ifndef _MAC
/////////////////////////////////////////////////////////////////////////////
//
// Version
...
...
@@ -152,15 +152,13 @@ BEGIN
BEGIN
BLOCK "040904B0"
BEGIN
VALUE "CompanyName", "\0"
VALUE "FileDescription", "CMakeSetup MFC Application\0"
VALUE "FileVersion", "1, 0, 0, 1\0"
VALUE "InternalName", "CMakeSetup\0"
VALUE "LegalCopyright", "Copyright (C) 2000\0"
VALUE "LegalTrademarks", "\0"
VALUE "OriginalFilename", "CMakeSetup.EXE\0"
VALUE "ProductName", "CMakeSetup Application\0"
VALUE "ProductVersion", "1, 0, 0, 1\0"
VALUE "FileDescription", "CMakeSetup MFC Application"
VALUE "FileVersion", "1, 0, 0, 1"
VALUE "InternalName", "CMakeSetup"
VALUE "LegalCopyright", "Copyright (C) 2000"
VALUE "OriginalFilename", "CMakeSetup.EXE"
VALUE "ProductName", "CMakeSetup Application"
VALUE "ProductVersion", "1, 0, 0, 1"
END
END
BLOCK "VarFileInfo"
...
...
@@ -169,8 +167,6 @@ BEGIN
END
END
#endif // !_MAC
/////////////////////////////////////////////////////////////////////////////
//
...
...
@@ -178,7 +174,7 @@ END
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO
DISCARDABLE
GUIDELINES DESIGNINFO
BEGIN
IDD_ABOUTBOX, DIALOG
BEGIN
...
...
@@ -210,7 +206,7 @@ END
// String Table
//
STRINGTABLE
DISCARDABLE
STRINGTABLE
BEGIN
IDS_ABOUTBOX "&About CMakeSetup..."
IDS_CREATESHORTCUT "&Create shortcut"
...
...
Source/MFCDialog/CMakeSetupDialog.cpp
View file @
c751d2eb
...
...
@@ -103,6 +103,20 @@ void MFCMessageCallback(const char* m, const char* title, bool& nomore, void*)
/////////////////////////////////////////////////////////////////////////////
// CMakeSetupDialog dialog
void
updateProgress
(
const
char
*
msg
,
float
prog
,
void
*
cd
)
{
char
tmp
[
1024
];
if
(
prog
>=
0
)
{
sprintf
(
tmp
,
"%s %i%%"
,
msg
,(
int
)(
100
*
prog
));
}
else
{
sprintf
(
tmp
,
"%s"
,
msg
);
}
CMakeSetupDialog
*
self
=
(
CMakeSetupDialog
*
)
cd
;
self
->
SetDlgItemText
(
IDC_PROGRESS
,
tmp
);
}
CMakeSetupDialog
::
CMakeSetupDialog
(
const
CMakeCommandLineInfo
&
cmdInfo
,
CWnd
*
pParent
/*=NULL*/
)
...
...
@@ -147,6 +161,8 @@ CMakeSetupDialog::CMakeSetupDialog(const CMakeCommandLineInfo& cmdInfo,
m_oldCX
=
-
1
;
m_deltaXRemainder
=
0
;
m_CMakeInstance
=
new
cmake
;
m_CMakeInstance
->
SetProgressCallback
(
updateProgress
,
(
void
*
)
this
);
}
void
CMakeSetupDialog
::
DoDataExchange
(
CDataExchange
*
pDX
)
...
...
@@ -268,6 +284,7 @@ BOOL CMakeSetupDialog::OnInitDialog()
sprintf
(
tmp
,
"Version %d.%d - %s"
,
cmake
::
GetMajorVersion
(),
cmake
::
GetMinorVersion
(),
cmake
::
GetReleaseVersion
());
SetDlgItemText
(
IDC_CMAKE_VERSION
,
tmp
);
SetDlgItemText
(
IDC_PROGRESS
,
""
);
this
->
UpdateData
(
FALSE
);
return
TRUE
;
// return TRUE unless you set the focus to a control
}
...
...
Source/MFCDialog/resource.h
View file @
c751d2eb
//{{NO_DEPENDENCIES}}
// Microsoft
Developer Studio
generated include file.
// Microsoft
Visual C++
generated include file.
// Used by CMakeSetup.rc
//
#define IDM_ABOUTBOX 0x0010
...
...
@@ -26,6 +26,7 @@
#define IDC_HELP_BUTTON 1021
#define IDC_EDIT1 1025
#define IDC_AdvancedValues 1027
#define IDC_PROGRESS 1028
// Next default values for new objects
//
...
...
@@ -33,7 +34,7 @@
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 134
#define _APS_NEXT_COMMAND_VALUE 32771
#define _APS_NEXT_CONTROL_VALUE 102
8
#define _APS_NEXT_CONTROL_VALUE 102
9
#define _APS_NEXT_SYMED_VALUE 102
#endif
#endif
Source/cmGlobalGenerator.cxx
View file @
c751d2eb
...
...
@@ -69,23 +69,31 @@ void cmGlobalGenerator::Configure()
lg
->
GetMakefile
()
->
MakeStartDirectoriesCurrent
();
// now do it
this
->
RecursiveConfigure
(
lg
);
this
->
RecursiveConfigure
(
lg
,
0.0
f
,
0.9
f
);
// after it is all done do a ConfigureFinalPass
for
(
i
=
0
;
i
<
m_LocalGenerators
.
size
();
++
i
)
{
m_LocalGenerators
[
i
]
->
ConfigureFinalPass
();
m_CMakeInstance
->
UpdateProgress
(
"Configuring"
,
0.9
f
+
0.1
f
*
(
i
+
1.0
f
)
/
m_LocalGenerators
.
size
());
}
m_CMakeInstance
->
UpdateProgress
(
"Configuring done"
,
-
1
);
}
// loop through the directories creating cmLocalGenerators and Configure()
void
cmGlobalGenerator
::
RecursiveConfigure
(
cmLocalGenerator
*
lg
)
void
cmGlobalGenerator
::
RecursiveConfigure
(
cmLocalGenerator
*
lg
,
float
startProgress
,
float
endProgress
)
{
// configure the current directory
lg
->
Configure
();
// get all the subdirectories
std
::
vector
<
std
::
string
>
subdirs
=
lg
->
GetMakefile
()
->
GetSubDirectories
();
float
progressPiece
=
(
endProgress
-
startProgress
)
/
(
1.0
f
+
subdirs
.
size
());
m_CMakeInstance
->
UpdateProgress
(
"Configuring"
,
startProgress
+
progressPiece
);
// for each subdir recurse
unsigned
int
i
;
...
...
@@ -107,7 +115,9 @@ void cmGlobalGenerator::RecursiveConfigure(cmLocalGenerator *lg)
lg2
->
GetMakefile
()
->
SetStartDirectory
(
currentDir
.
c_str
());
lg2
->
GetMakefile
()
->
MakeStartDirectoriesCurrent
();
this
->
RecursiveConfigure
(
lg2
);
this
->
RecursiveConfigure
(
lg2
,
startProgress
+
(
i
+
1.0
f
)
*
progressPiece
,
startProgress
+
(
i
+
2.0
f
)
*
progressPiece
);
}
}
...
...
@@ -118,6 +128,8 @@ void cmGlobalGenerator::Generate()
for
(
i
=
0
;
i
<
m_LocalGenerators
.
size
();
++
i
)
{
m_LocalGenerators
[
i
]
->
Generate
(
true
);
m_CMakeInstance
->
UpdateProgress
(
"Generating"
,
(
i
+
1.0
f
)
/
m_LocalGenerators
.
size
());
}
}
...
...
Source/cmGlobalGenerator.h
View file @
c751d2eb
...
...
@@ -103,7 +103,7 @@ protected:
std
::
vector
<
cmLocalGenerator
*>
m_LocalGenerators
;
///! used by Configure()
void
RecursiveConfigure
(
cmLocalGenerator
*
lg
);
void
RecursiveConfigure
(
cmLocalGenerator
*
lg
,
float
start
,
float
end
);
private:
std
::
map
<
cmStdString
,
bool
>
m_LanguageEnabled
;
...
...
Source/cmake.cxx
View file @
c751d2eb
...
...
@@ -41,6 +41,9 @@ cmake::cmake()
m_InTryCompile
=
false
;
m_CacheManager
=
new
cmCacheManager
;
m_GlobalGenerator
=
0
;
m_ProgressCallback
=
0
;
m_ProgressCallbackClientData
=
0
;
this
->
AddDefaultCommands
();
}
...
...
@@ -907,3 +910,17 @@ int cmake::LoadCache()
return
0
;
}
void
cmake
::
SetProgressCallback
(
ProgressCallback
f
,
void
*
cd
)
{
m_ProgressCallback
=
f
;
m_ProgressCallbackClientData
=
cd
;
}
void
cmake
::
UpdateProgress
(
const
char
*
msg
,
float
prog
)
{
if
(
m_ProgressCallback
&&
!
m_InTryCompile
)
{
(
*
m_ProgressCallback
)(
msg
,
prog
,
m_ProgressCallbackClientData
);
return
;
}
}
Source/cmake.h
View file @
c751d2eb
...
...
@@ -211,6 +211,19 @@ class cmake
///! Parse command line arguments that might set cache values
void
SetCacheArgs
(
const
std
::
vector
<
std
::
string
>&
);
typedef
void
(
*
ProgressCallback
)(
const
char
*
msg
,
float
progress
,
void
*
);
/**
* Set the function used by GUI's to receive progress updates
* Function gets passed: message as a const char*, a progress
* amount ranging from 0 to 1.0 and client data. The progress
* number provided may be negative in cases where a message is
* to be displayed without any progress percentage.
*/
void
SetProgressCallback
(
ProgressCallback
f
,
void
*
clientData
=
0
);
///! this is called by generators to update the progress
void
UpdateProgress
(
const
char
*
msg
,
float
prog
);
protected:
typedef
std
::
map
<
cmStdString
,
cmCommand
*>
RegisteredCommandsMap
;
RegisteredCommandsMap
m_Commands
;
...
...
@@ -235,6 +248,8 @@ protected:
int
AddCMakePaths
(
const
char
*
arg0
);
private:
ProgressCallback
m_ProgressCallback
;
void
*
m_ProgressCallbackClientData
;
bool
m_Verbose
;
bool
m_Local
;
bool
m_InTryCompile
;
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment