Skip to content

Commit acd75b1

Browse files
committed
Added library support
1 parent a131b65 commit acd75b1

27 files changed

+1003
-594
lines changed

Domain/uGroup.pas

+11-1
Original file line numberDiff line numberDiff line change
@@ -108,30 +108,40 @@ procedure TGroup.CreateNewProject(projectType: TProjectType; options: TVisualMAS
108108
ptWin32:
109109
begin
110110
project := CreateProject('Win32App.exe',projectType);
111+
project.CreateProjectFile(DEFAULT_FILE_NAME, options);
111112
end;
112113
ptWin32Dlg:
113114
begin
114115
project := CreateProject('Win32AppDlg.exe',projectType);
116+
project.CreateProjectFile(DEFAULT_FILE_NAME, options);
115117
end;
116118
ptWin32Con:
117119
begin
118120
project := CreateProject('Win32Con.exe',projectType);
121+
project.CreateProjectFile(DEFAULT_FILE_NAME, options);
119122
end;
120123
ptWin64:
121124
begin
122125
project := CreateProject('Win64App.exe',projectType);
126+
project.CreateProjectFile(DEFAULT_FILE_NAME, options);
123127
end;
124128
ptDos16COM:
125129
begin
126130
project := CreateProject('Program.com',projectType);
131+
project.CreateProjectFile(DEFAULT_FILE_NAME, options);
127132
end;
128133
ptDos16EXE:
129134
begin
130135
project := CreateProject('Program.exe',projectType);
136+
project.CreateProjectFile(DEFAULT_FILE_NAME, options);
137+
end;
138+
ptLib:
139+
begin
140+
project := CreateProject('MyLibrary.lib',projectType);
141+
project.CreateProjectFile('readme.txt', options, pftTXT);
131142
end;
132143
end;
133144

134-
project.CreateProjectFile(DEFAULT_FILE_NAME, options);
135145
AddProject(project);
136146
SetActiveProject(project);
137147
end;

Domain/uProject.pas

+5
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,11 @@ function TProject.CreateProjectFile(name: string; options: TVisualMASMOptions; f
171171
if fileType = pftASM then
172172
projectFile.Content := TFile.ReadAllText(options.TemplatesFolder+DOS_16_BIT_EXE_STUB_FILENAME);
173173
end;
174+
ptLib:
175+
begin
176+
if fileType = pftTXT then
177+
projectFile.Content := TFile.ReadAllText(options.TemplatesFolder+LIB_STUB_FILENAME);
178+
end;
174179
end;
175180

176181
AddProjectFile(projectFile);

Domain/uProjectFile.pas

+2
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,8 @@ procedure TProjectFile.SetFileName(value: string);
144144
FProjectFileType := pftINI
145145
else if (fileExt = '.C') or (fileExt = '.CPP') or (fileExt = '.CC') or (fileExt = '.H') or (fileExt = '.HPP') or (fileExt = '.HH') or (fileExt = '.CXX') or (fileExt = '.HXX') or (fileExt = '.CU') then
146146
FProjectFileType := pftCPP
147+
else if fileExt = '.LIB' then
148+
FProjectFileType := pftLib
147149
else
148150
// FProjectFileType := pftOther;
149151
FProjectFileType := pftBinary;

Domain/uSharedGlobals.pas

+6-3
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ interface
7070
WIN_32_BIT_DLG_MASM32_FILENAME: string = 'Win32HelloWorldDialog.asm';
7171
WIN_32_BIT_CON_MASM32_FILENAME: string = 'Win32HelloWorldConsole.asm';
7272
WIN_64_BIT_EXE_WINSDK64_FILENAME: string = 'WinSDK64HelloWorld.asm';
73+
LIB_STUB_FILENAME: string = 'LibraryReadMe.txt';
7374
TAB: string = #9;
7475
DEFAULT_PROJECTGROUP_NAME: string = 'ProjectGroup1';
7576
DEFAULT_PROJECT_NAME: string = 'Project1';
@@ -79,6 +80,7 @@ interface
7980
PROJECT_FILTER: string = 'Visual MASM Project (*.vmp)|*.vmp';
8081
RESOURCE_FILTER: string = 'Resource File (*.rc)|*.rc';
8182
INI_FILTER: string = 'Ini File (*.ini)|*.ini';
83+
LIB_FILTER: string = 'LIB File (*.lib)|*.lib';
8284
ANY_FILE_FILTER: string = 'Any File (*.*)|*.*';
8385
MODIFIED_CHAR: string = '*';
8486
THEME_CODE_EDITOR_DEFAULT: string = 'Default';
@@ -99,6 +101,7 @@ interface
99101
NEW_ITEM_32_BIT_WIN_DLL_APP: string = '32-Bit Windows DLL Application Extension';
100102
NEW_ITEM_64_BIT_WIN_EXE_APP: string = '64-Bit Windows EXE Application';
101103
NEW_ITEM_64_BIT_WIN_DLL_APP: string = '64-Bit Windows DLL Application Extension';
104+
NEW_ITEM_LIB_APP: string = 'Library';
102105
NEW_ITEM_ASSEMBLY_FILE: string = 'Assembly File';
103106
NEW_ITEM_PROJECT_GROUP: string = 'Project Group';
104107
NEW_ITEM_BATCH_FILE: string = 'Batch File';
@@ -189,10 +192,10 @@ TGenericTreeData = record
189192
p64BitWinX86ia64);
190193

191194
TProjectType = (ptWin32, ptWin64, ptWin32DLL, ptWin64DLL, ptDos16COM,
192-
ptDos16EXE, ptWin16, ptWin16DLL, ptWin32Con, ptWin32Dlg);
195+
ptDos16EXE, ptWin16, ptWin16DLL, ptWin32Con, ptWin32Dlg, ptLib);
193196

194197
TProjectFileType = (pftASM, pftRC, pftTXT, pftDLG, pftBAT, pftOther, pftINI,
195-
pftCPP, pftINC, pftBinary);
198+
pftCPP, pftINC, pftBinary, pftLib);
196199

197200
TChange = (fcNone, fcCreate, fcUpdate, fcDelete);
198201

@@ -890,7 +893,7 @@ procedure RegisterFileType(fileType: TProjectFileType; OnlyForCurrentUser: boole
890893
pftINI: ;
891894
pftCPP: ;
892895
pftINC: FileExt := 'inc';
893-
pftBinary: ;
896+
pftBinary,pftLib: ;
894897
end;
895898
if FileExt = '' then exit;
896899

History.txt

+6
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
Update - 08-12-2017
2+
-------------------
3+
- Added new project type Library. Go to File -> New -> Other and select Assembly Projects and then Library or
4+
right click on the Project Group in the project manager and select Add new project... and then Library. You
5+
can add assembly files, .obj, and .lib files to manage your libraries.
6+
17
Update - 08-10-2017
28
-------------------
39
- Fixed "Go to line number" dialog to operate properly (Search -> Go to line number)

0 commit comments

Comments
 (0)