Re-enable gcc compiler environment

git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository@284 f5eea248-9336-0410-98b8-ebc06183d4e3
This commit is contained in:
harrybharry 2008-07-09 18:08:39 +00:00
parent 7523faff29
commit 4748f3fa37
14 changed files with 263 additions and 98 deletions

View File

@ -0,0 +1,178 @@
# Directories:
NPP_DIR = ../src
SCI_DIR = ../../scintilla/include
GCC_DIR = .
#MISC:
MISC_DIR = $(NPP_DIR)/MISC
EXCEPTION_DIR = $(MISC_DIR)/Exception
PLUGINS_DIR = $(MISC_DIR)/PluginsManager
PROCESS_DIR = $(MISC_DIR)/Process
REGEXT_DIR = $(MISC_DIR)/RegExt
SYSMSG_DIR = $(MISC_DIR)/SysMsg
#ScintillaComponent:
SCINT_DIR = $(NPP_DIR)/ScitillaComponent
#TinyXml
TIXML_DIR = $(NPP_DIR)/TinyXml
#WinControls
WIN_DIR = $(NPP_DIR)/WinControls
ABOUT_DIR = $(WIN_DIR)/AboutDlg
CONTEXT_DIR = $(WIN_DIR)/ContextMenu
COLOUR_DIR = $(WIN_DIR)/ColourPicker
DOCKING_DIR = $(WIN_DIR)/DockingWnd
GRID_DIR = $(WIN_DIR)/Grid
IMLIST_DIR = $(WIN_DIR)/ImageListSet
OPENSAVE_DIR = $(WIN_DIR)/OpenSaveFileDialog
# PANNER_DIR = $(WIN_DIR)/Panner
PREFERENCE_DIR = $(WIN_DIR)/Preference
SHORTCUT_DIR = $(WIN_DIR)/shortcut
SPLITTER_DIR = $(WIN_DIR)/SplitterContainer
STATICDLG_DIR = $(WIN_DIR)/StaticDialog
RUNDLG_DIR = $(STATICDLG_DIR)/RunDlg
STATUSBAR_DIR = $(WIN_DIR)/StatusBar
TABBAR_DIR = $(WIN_DIR)/TabBar
TASKLIST_DIR = $(WIN_DIR)/TaskList
TOOLBAR_DIR = $(WIN_DIR)/ToolBar
TOOLTIP_DIR = $(WIN_DIR)/ToolTip
TRAYICON_DIR = $(WIN_DIR)/TrayIcon
TREEVIEW_DIR = $(WIN_DIR)/TreeView
WINDOWSDLG_DIR = $(WIN_DIR)/WindowsDlg
# Sources:
SRC_NPP = $(wildcard $(NPP_DIR)/*.cpp)
#MISC
SRC_MISC = $(wildcard $(MISC_DIR)/*.cpp)
SRC_EXCEPTION = $(wildcard $(EXCEPTION_DIR)/*.cpp)
SRC_PLUGINS = $(wildcard $(PLUGINS_DIR)/*.cpp)
SRC_PROCESS = $(wildcard $(PROCESS_DIR)/*.cpp)
SRC_REGEXT = $(wildcard $(REGEXT_DIR)/*.cpp)
SRC_SYSMSG = $(wildcard $(SYSMSG_DIR)/*.cpp)
#ScintillaComponent
SRC_SCINT = $(wildcard $(SCINT_DIR)/*.cpp)
#TinyXml
SRC_TIXML = $(wildcard $(TIXML_DIR)/*.cpp)
#WinControls
SRC_WIN = $(wildcard $(WIN_DIR)/*.cpp)
SRC_ABOUT = $(wildcard $(ABOUT_DIR)/*.cpp)
SRC_CONTEXT = $(wildcard $(CONTEXT_DIR)/*.cpp)
SRC_COLOUR = $(wildcard $(COLOUR_DIR)/*.cpp)
SRC_DOCKING = $(wildcard $(DOCKING_DIR)/*.cpp)
SRC_GRID = $(wildcard $(GRID_DIR)/*.cpp)
SRC_IMLIST = $(wildcard $(IMLIST_DIR)/*.cpp)
SRC_OPENSAVE = $(wildcard $(OPENSAVE_DIR)/*.cpp)
SRC_PREFERENCE = $(wildcard $(PREFERENCE_DIR)/*.cpp)
SRC_SHORTCUT = $(wildcard $(SHORTCUT_DIR)/*.cpp)
SRC_SPLITTER = $(wildcard $(SPLITTER_DIR)/*.cpp)
SRC_STATICDLG = $(wildcard $(STATICDLG_DIR)/*.cpp)
SRC_RUNDLG = $(wildcard $(RUNDLG_DIR)/*.cpp)
SRC_STATUSBAR = $(wildcard $(STATUSBAR_DIR)/*.cpp)
SRC_TABBAR = $(wildcard $(TABBAR_DIR)/*.cpp)
SRC_TASKLIST = $(wildcard $(TASKLIST_DIR)/*.cpp)
SRC_TOOLBAR = $(wildcard $(TOOLBAR_DIR)/*.cpp)
SRC_TOOLTIP = $(wildcard $(TOOLTIP_DIR)/*.cpp)
SRC_TRAYICON = $(wildcard $(TRAYICON_DIR)/*.cpp)
SRC_TREEVIEW = $(wildcard $(TREEVIEW_DIR)/*.cpp)
SRC_WINDOWSDLG = $(wildcard $(WINDOWSDLG_DIR)/*.cpp)
# Objects:
OBJ_NPP = $(patsubst %.cpp,%.o,$(SRC_NPP))
#MISC
OBJ_MISC = $(patsubst %.cpp,%.o,$(SRC_MISC))
OBJ_EXCEPTION = $(patsubst %.cpp,%.o,$(SRC_EXCEPTION))
OBJ_PLUGINS = $(patsubst %.cpp,%.o,$(SRC_PLUGINS))
OBJ_PROCESS = $(patsubst %.cpp,%.o,$(SRC_PROCESS))
OBJ_REGEXT = $(patsubst %.cpp,%.o,$(SRC_REGEXT))
OBJ_SYSMSG = $(patsubst %.cpp,%.o,$(SRC_SYSMSG))
#ScintillaComponent
OBJ_SCINT = $(patsubst %.cpp,%.o,$(SRC_SCINT))
#TinyXml
OBJ_TIXML = $(patsubst %.cpp,%.o,$(SRC_TIXML))
#WinControls
OBJ_WIN = $(patsubst %.cpp,%.o,$(SRC_WIN))
OBJ_ABOUT = $(patsubst %.cpp,%.o,$(SRC_ABOUT))
OBJ_CONTEXT = $(patsubst %.cpp,%.o,$(SRC_CONTEXT))
OBJ_COLOUR = $(patsubst %.cpp,%.o,$(SRC_COLOUR))
OBJ_DOCKING = $(patsubst %.cpp,%.o,$(SRC_DOCKING))
OBJ_GRID = $(patsubst %.cpp,%.o,$(SRC_GRID))
OBJ_IMLIST = $(patsubst %.cpp,%.o,$(SRC_IMLIST))
OBJ_OPENSAVE = $(patsubst %.cpp,%.o,$(SRC_OPENSAVE))
OBJ_PREFERENCE = $(patsubst %.cpp,%.o,$(SRC_PREFERENCE))
OBJ_SHORTCUT = $(patsubst %.cpp,%.o,$(SRC_SHORTCUT))
OBJ_SPLITTER = $(patsubst %.cpp,%.o,$(SRC_SPLITTER))
OBJ_STATICDLG = $(patsubst %.cpp,%.o,$(SRC_STATICDLG))
OBJ_RUNDLG = $(patsubst %.cpp,%.o,$(SRC_RUNDLG))
OBJ_STATUSBAR = $(patsubst %.cpp,%.o,$(SRC_STATUSBAR))
OBJ_TABBAR = $(patsubst %.cpp,%.o,$(SRC_TABBAR))
OBJ_TASKLIST = $(patsubst %.cpp,%.o,$(SRC_TASKLIST))
OBJ_TOOLBAR = $(patsubst %.cpp,%.o,$(SRC_TOOLBAR))
OBJ_TOOLTIP = $(patsubst %.cpp,%.o,$(SRC_TOOLTIP))
OBJ_TRAYICON = $(patsubst %.cpp,%.o,$(SRC_TRAYICON))
OBJ_TREEVIEW = $(patsubst %.cpp,%.o,$(SRC_TREEVIEW))
OBJ_WINDOWSDLG = $(patsubst %.cpp,%.o,$(SRC_WINDOWSDLG))
# Collections
DIRS_WIN = $(WIN_DIR) $(ABOUT_DIR) $(CONTEXT_DIR) $(COLOUR_DIR) $(DOCKING_DIR) $(GRID_DIR) $(IMLIST_DIR) $(OPENSAVE_DIR) $(PREFERENCE_DIR) $(SHORTCUT_DIR) $(SPLITTER_DIR) $(STATICDLG_DIR) $(RUNDLG_DIR) $(STATUSBAR_DIR) $(TABBAR_DIR) $(TASKLIST_DIR) $(TOOLBAR_DIR) $(TOOLTIP_DIR) $(TRAYICON_DIR) $(TREEVIEW_DIR) $(WINDOWSDLG_DIR)
DIRS_TIXML = $(TIXML_DIR)
DIRS_SCINT = $(SCINT_DIR)
DIRS_MISC = $(MISC_DIR) $(EXCEPTION_DIR) $(PLUGINS_DIR) $(PROCESS_DIR) $(REGEXT_DIR) $(SYSMSG_DIR)
DIRS = $(NPP_DIR) $(DIRS_WIN) $(DIRS_TIXML) $(DIRS_SCINT) $(DIRS_MISC) $(SCI_DIR)
SRCS_WIN = $(SRC_WIN) $(SRC_ABOUT) $(SRC_CONTEXT) $(SRC_COLOUR) $(SRC_DOCKING) $(SRC_GRID) $(SRC_IMLIST) $(SRC_OPENSAVE) $(SRC_PREFERENCE) $(SRC_SHORTCUT) $(SRC_SPLITTER) $(SRC_STATICDLG) $(SRC_RUNDLG) $(SRC_STATUSBAR) $(SRC_TABBAR) $(SRC_TASKLIST) $(SRC_TOOLBAR) $(SRC_TOOLTIP) $(SRC_TRAYICON) $(SRC_TREEVIEW) $(SRC_WINDOWSDLG)
SRCS_TIXML = $(SRC_TIXML)
SRCS_SCINT = $(SRC_SCINT)
SRCS_MISC = $(SRC_MISC) $(SRC_EXCEPTION) $(SRC_PLUGINS) $(SRC_PROCESS) $(SRC_REGEXT) $(SRC_SYSMSG)
SRCS = $(SRC_NPP) $(SRCS_WIN) $(SRCS_TIXML) $(SRCS_SCINT) $(SRCS_MISC)
OBJS_WIN = $(OBJ_WIN) $(OBJ_ABOUT) $(OBJ_CONTEXT) $(OBJ_COLOUR) $(OBJ_DOCKING) $(OBJ_GRID) $(OBJ_IMLIST) $(OBJ_OPENSAVE) $(OBJ_PREFERENCE) $(OBJ_SHORTCUT) $(OBJ_SPLITTER) $(OBJ_STATICDLG) $(OBJ_RUNDLG) $(OBJ_STATUSBAR) $(OBJ_TABBAR) $(OBJ_TASKLIST) $(OBJ_TOOLBAR) $(OBJ_TOOLTIP) $(OBJ_TRAYICON) $(OBJ_TREEVIEW) $(OBJ_WINDOWSDLG)
OBJS_TIXML = $(OBJ_TIXML)
OBJS_SCINT = $(OBJ_SCINT)
OBJS_MISC = $(OBJ_MISC) $(OBJ_EXCEPTION) $(OBJ_PLUGINS) $(OBJ_PROCESS) $(OBJ_REGEXT) $(OBJ_SYSMSG)
OBJS = $(OBJ_NPP) $(OBJS_WIN) $(OBJS_TIXML) $(OBJS_SCINT) $(OBJS_MISC)
# Main resource file
SRC_RES = ./resources.rc
OBJ_RES = $(patsubst %.rc,%.res,$(SRC_RES))
# Parameters
INCLUDESPECIAL = -include./include/various.h
CXX = g++
#CXXFLAGS = -O2 $(INCLUDESPECIAL)
CXXFLAGS = $(INCLUDESPECIAL)
INCLUDES = $(patsubst %,-I%,$(DIRS)) -I./include
LDFLAGS = -Wl,--subsystem,windows
LIBS = -lcomdlg32 -lcomctl32 -lgdi32 -lole32 -loleacc -lshell32 -lshlwapi
RC = windres
OUT_NPP = NotepadPP.exe
EXEC = ../bin/$(OUT_NPP)
all: NotepadPP
# Main Notepad++ rule
NotepadPP: $(OBJS) $(OBJ_RES)
$(CXX) $(CXXFLAGS) $(INCLUDES) $(LDFLAGS) $(OBJS) $(OBJ_RES) -o $(EXEC) $(LIBS)
%.o: %.cpp
$(CXX) $(CXXFLAGS) $(INCLUDES) -c $< -o $@
%.res: %.rc
$(RC) $(INCLUDES) --input=$< --output=$@ --input-format=rc --output-format=coff
# Cleanup
clean:
@delete.bat

View File

@ -0,0 +1,4 @@
@echo off
FOR /F "tokens=*" %%G IN ('dir /b /s ..\src\*.o') DO del "%%G"
del resources.res
@echo on

View File

@ -0,0 +1,7 @@
#ifndef EH_H
typedef void (*exFunc)(unsigned int, EXCEPTION_POINTERS *);
void _set_se_translator(exFunc) {};
#endif //EH_H

View File

@ -0,0 +1,24 @@
//this file contains definitions not available in gcc 3.4.5,
//but are needed for Notepad++
//the makefile will automatically include this header file
//GetLongPathName = 410
//Multimonitor: 410
#define _WIN32_WINDOWS 0x0410
//Toolbar imagelist = 300
//TCS_BOTTOM = 300
//LVS_EX_BORDERSELECT = 500
//TBSTYLE_EX_HIDECLIPPEDBUTTONS = 501
#define _WIN32_IE 0x501
//Theme (uxtheme)
#define _WIN32_WINNT 0x0501
//#include <windows.h>
#if (_WIN32_IE >= 0x0400)
#define TCN_GETOBJECT (TCN_FIRST - 3)
#endif
#if (_WIN32_IE >= 0x0500)
#define RBN_CHEVRONPUSHED (RBN_FIRST - 10)
#endif // _WIN32_IE >= 0x0500

View File

@ -1,4 +1,5 @@
makefile is not maintained anymore.
Please use ../src/CMakeLists.txt to generate MinGW makefile with cmake.
Don
Makefile.win was added after the v5.0 release.
It was testing with a MingW distribution containing
gcc (GCC) 3.4.5 (mingw-vista special r3)
The default make rule should suffice for building Notepad++,
the clean rule call batch file with commands to remove .o files and resource file

View File

@ -0,0 +1,17 @@
#include "./include/various.h"
#include "../src/ScitillaComponent/columnEditor.rc"
#include "../src/ScitillaComponent/FindReplaceDlg.rc"
#include "../src/ScitillaComponent/UserDefineDialog.rc"
#include "../src/MISC/RegExt/regExtDlg.rc"
#include "../src/WinControls/ColourPicker/ColourPopup.rc"
#include "../src/WinControls/ColourPicker/WordStyleDlg.rc"
#include "../src/WinControls/DockingWnd/DockingGUIWidget.rc"
#include "../src/WinControls/Grid/ShortcutMapper.rc"
#include "../src/WinControls/Preference/preference.rc"
#include "../src/WinControls/shortcut/RunMacroDlg.rc"
#include "../src/WinControls/shortcut/shortcut.rc"
#include "../src/WinControls/TaskList/TaskListDlg.rc"
#include "../src/WinControls/StaticDialog/RunDlg/RunDlg.rc"
#include "../src/WinControls/WindowsDlg/WindowsDlg.rc"
#include "../src/Notepad_plus.rc"

View File

@ -5,7 +5,7 @@
//Formatting Slightly modified for N++
#include "Win32Exception.h"
#include "eh.h" //eehh... =]
#include "eh.h"
Win32Exception::Win32Exception(const EXCEPTION_RECORD * info) {
_location = info->ExceptionAddress;
@ -27,6 +27,10 @@ void Win32Exception::installHandler() {
_set_se_translator(Win32Exception::translate);
}
void Win32Exception::removeHandler() {
_set_se_translator(NULL);
}
void Win32Exception::translate(unsigned code, EXCEPTION_POINTERS * info) {
// Windows guarantees that *(info->ExceptionRecord) is valid
switch (code) {

View File

@ -13,9 +13,10 @@ class Win32Exception : public std::exception
{
public:
static void installHandler();
virtual const char* what() const { return _event; };
ExceptionAddress where() const { return _location; };
unsigned code() const { return _code; };
static void removeHandler();
virtual const char* what() const throw() { return _event; };
ExceptionAddress where() const { return _location; };
unsigned code() const { return _code; };
protected:
Win32Exception(const EXCEPTION_RECORD * info); //Constructor only accessible by exception handler

View File

@ -49,74 +49,6 @@ BEGIN
END
END
END
/*
// The GCC resouce compiler has different behavior the M$ resource compiler
#ifdef __GNUC__
#include ".\\ScitillaComponent\\UserDefineDialog.rc"
#include ".\\ScitillaComponent\\FindReplaceDlg.rc"
#include ".\\WinControls\\StaticDialog\\RunDlg\\RunDlg.rc"
#include ".\\WinControls\\ColourPicker\\ColourPopup.rc"
#include ".\\WinControls\\ColourPicker\\WordStyleDlg.rc"
#include ".\\MISC\\RegExt\\regExtDlg.rc"
#include ".\\WinControls\\shortcut\\shortcut.rc"
#include ".\\WinControls\\Grid\\ShortcutMapper.rc"
#include ".\\WinControls\\Preference\\preference.rc"
#include ".\\WinControls\\WindowsDlg\\WindowsDlg.rc"
#else
1 TEXTINCLUDE DISCARDABLE
BEGIN
"#include "".\\ScitillaComponent\\UserDefineDialog.rc""\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include "".\\ScitillaComponent\\FindReplaceDlg.rc""\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"#include "".\\WinControls\\StaticDialog\\RunDlg\\RunDlg.rc""\0"
END
4 TEXTINCLUDE DISCARDABLE
BEGIN
"#include "".\\WinControls\\ColourPicker\\ColourPopup.rc""\0"
END
5 TEXTINCLUDE DISCARDABLE
BEGIN
"#include "".\\WinControls\\ColourPicker\\WordStyleDlg.rc""\0"
END
6 TEXTINCLUDE DISCARDABLE
BEGIN
"#include "".\\WinControls\\MISC\\RegExt\\regExtDlg.rc""\0"
END
7 TEXTINCLUDE DISCARDABLE
BEGIN
"#include "".\\WinControls\\shortcut\\shortcut.rc""\0"
END
8 TEXTINCLUDE DISCARDABLE
BEGIN
"#include "".\\WinControls\\Grid\\ShortcutMapper.rc""\0"
END
9 TEXTINCLUDE DISCARDABLE
BEGIN
"#include "".\\WinControls\\Preference\\preference.rc""\0"
END
10 TEXTINCLUDE DISCARDABLE
BEGIN
"#include "".\\WinControls\\WindowsDlg\\WindowsDlg.rc""\0"
END
#endif //__GNUC__
*/
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
@ -302,7 +234,7 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "Function completion", IDM_EDIT_AUTOCOMPLETE
MENUITEM "Word completion", IDM_EDIT_AUTOCOMPLETE_CURRENTFILE
MENUITEM "Function parameters hint", IDM_EDIT_FUNCCALLTIP
MENUITEM "Function parameters hint", IDM_EDIT_FUNCCALLTIP
MENUITEM SEPARATOR
MENUITEM "Set Read Only", IDM_EDIT_SETREADONLY
MENUITEM "Clear Read Only Flag", IDM_EDIT_CLEARREADONLY
@ -385,16 +317,16 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "Go to another view", IDM_VIEW_GOTO_ANOTHER_VIEW
MENUITEM "Clone to another view", IDM_VIEW_CLONE_TO_ANOTHER_VIEW
MENUITEM "Activate main view" IDM_VIEW_SWITCHTO_MAIN
MENUITEM "Activate sub view" IDM_VIEW_SWITCHTO_SUB
MENUITEM SEPARATOR
MENUITEM "Activate main view", IDM_VIEW_SWITCHTO_MAIN
MENUITEM "Activate sub view", IDM_VIEW_SWITCHTO_SUB
MENUITEM SEPARATOR
MENUITEM "Synchronize Vertical Scrolling", IDM_VIEW_SYNSCROLLV
MENUITEM "Synchronize Horizontal Scrolling", IDM_VIEW_SYNSCROLLH
MENUITEM SEPARATOR
MENUITEM SEPARATOR
MENUITEM "Text Direction RTL", IDM_EDIT_RTL
MENUITEM "Text Direction LTR", IDM_EDIT_LTR
END
END
POPUP "For&mat"
BEGIN
MENUITEM "Convert to Windows Format", IDM_FORMAT_TODOS
@ -464,7 +396,7 @@ BEGIN
MENUITEM "VHDL", IDM_LANG_VHDL
MENUITEM "Verilog", IDM_LANG_VERILOG
MENUITEM "XML", IDM_LANG_XML
MENUITEM "YAML", IDM_LANG_YAML
MENUITEM "YAML", IDM_LANG_YAML
MENUITEM SEPARATOR
MENUITEM "User Defined", IDM_LANG_USER
END
@ -494,13 +426,13 @@ BEGIN
BEGIN
MENUITEM "Notepad++ Home", IDM_HOMESWEETHOME
MENUITEM "Notepad++ Project Page", IDM_PROJECTPAGE
MENUITEM "Online help", IDM_ONLINEHELP
MENUITEM "Wiki FAQ", IDM_WIKIFAQ
MENUITEM "Forum", IDM_FORUM
MENUITEM "Get more plugins", IDM_PLUGINSHOME
MENUITEM "Online help", IDM_ONLINEHELP
MENUITEM "Wiki FAQ", IDM_WIKIFAQ
MENUITEM "Forum", IDM_FORUM
MENUITEM "Get more plugins", IDM_PLUGINSHOME
MENUITEM SEPARATOR
MENUITEM "Update Notepad++", IDM_UPDATE_NPP
MENUITEM "About Notepad++", IDM_ABOUT
MENUITEM "Update Notepad++", IDM_UPDATE_NPP
MENUITEM "About Notepad++", IDM_ABOUT
END
MENUITEM "X", IDM_FILE_CLOSE, HELP
@ -554,8 +486,3 @@ END
// xp style
1 RT_MANIFEST "notepad++.exe.manifest"
END

View File

@ -120,7 +120,7 @@ public :
int GetContainer(DockingCont* pCont);
/* get all container in vector */
vector<DockingCont*> getContainerInfo(void) {
vector<DockingCont*> & getContainerInfo(void) {
return _vContainer;
};
/* get dock data (sized areas) */

View File

@ -20,7 +20,9 @@
#pragma once
// when using screen dimensions, this is infinite
const LONG INFINITY=0x7fff; // max short
//const LONG INFINITY=0x7fff; // max short
//change to DEFINE for GCC
#define INFINITY 0x7fff // max short
const SIZE SIZEZERO = {0, 0};
const SIZE SIZEMAX = {INFINITY,INFINITY};

View File

@ -299,7 +299,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR lpszCmdLine, int nCmdSh
}
void doException(Notepad_plus & notepad_plus_plus) {
_set_se_translator(NULL); //disable exception handler after excpetion, we dont want corrupt data structurs to crash the exception handler
Win32Exception::removeHandler(); //disable exception handler after excpetion, we dont want corrupt data structurs to crash the exception handler
::MessageBox(NULL, "Notepad++ will attempt to save any unsaved data. However, dataloss is very likely.", "Recovery initiating", MB_OK | MB_ICONINFORMATION);
bool res = notepad_plus_plus.emergency();
if (res) {