# @file:/CMakeLists.txt # TODO # - Move defs XX_INCLUDE_DIR, XX_LIBRARIES, XX_LIBRARY_DIRS to the subdirectories # scripts. I could not find a way to export variables defined in a subscript # so as a workaround, I define the variables myself in the top script. This is # not optimal. # cmake_minimum_required(VERSION 3.4) PROJECT(Notepad++) SET(projIncludDir ../../scintilla/include/ ./ ./WinControls/AboutDlg/ ./WinControls/ ./WinControls/ImageListSet/ ./WinControls/OpenSaveFileDialog/ ./WinControls/SplitterContainer/ ./WinControls/StaticDialog/ ./WinControls/TabBar/ ./WinControls/ToolBar/ ./MISC/Process/ ./ScitillaComponent/ ./MISC/ ./MISC/SysMsg/ ./WinControls/StatusBar/ ./WinControls/StaticDialog/RunDlg/ ./tinyxml/ ./WinControls/ColourPicker/ ./Win32Explr/ ./MISC/RegExt/ ./WinControls/TrayIcon/ ./WinControls/shortcut/ ./WinControls/Grid/ ./WinControls/ContextMenu/ ./MISC/PluginsManager/ ./WinControls/Preference/ ./WinControls/WindowsDlg/ ./WinControls/TaskList/ ./WinControls/DockingWnd/ ./WinControls/ToolTip/ ./MISC/Exception/ ./MISC/Common/ ./tinyxml/tinyXmlA/ ./WinControls/AnsiCharPanel/ ./WinControls/ClipboardHistory/ ./WinControls/FindCharsInRange/ ./WinControls/VerticalFileSwitcher/ ./WinControls/ProjectPanel/ ./WinControls/DocumentMap/ ./WinControls/FunctionList/ ./uchardet/ ./WinControls/FileBrowser/ ./WinControls/ReadDirectoryChanges/ ./MISC/md5/ ./MISC/sha2/ ./WinControls/PluginsAdmin/ ./json/) SET(src_files ./MISC/Common/verifySignedfile.cpp ./MISC/md5/md5Dlgs.cpp ./MISC/sha2/sha-256.cpp ./MISC/Process/Processus.cpp ./WinControls/AboutDlg/AboutDlg.cpp ./WinControls/AnsiCharPanel/ansiCharPanel.cpp ./ScitillaComponent/AutoCompletion.cpp ./WinControls/AnsiCharPanel/asciiListView.cpp ./WinControls/FileBrowser/fileBrowser.cpp ./WinControls/Grid/BabyGrid.cpp ./WinControls/Grid/BabyGridWrapper.cpp ./ScitillaComponent/Buffer.cpp ./uchardet/CharDistribution.cpp ./WinControls/ClipboardHistory/clipboardHistoryPanel.cpp ./WinControls/ColourPicker/ColourPicker.cpp ./WinControls/ColourPicker/ColourPopup.cpp ./ScitillaComponent/columnEditor.cpp ./MISC/Common/Common.cpp ./WinControls/ContextMenu/ContextMenu.cpp ./WinControls/PluginsAdmin/pluginsAdmin.cpp ./WinControls/ReadDirectoryChanges/ReadDirectoryChanges.cpp ./WinControls/ReadDirectoryChanges/ReadDirectoryChangesPrivate.cpp ./WinControls/TabBar/ControlsTab.cpp ./WinControls/DockingWnd/DockingCont.cpp ./WinControls/DockingWnd/DockingManager.cpp ./WinControls/DockingWnd/DockingSplitter.cpp ./ScitillaComponent/DocTabView.cpp ./WinControls/DocumentMap/documentMap.cpp ./WinControls/DocumentMap/documentSnapshot.cpp ./EncodingMapper.cpp ./WinControls/OpenSaveFileDialog/FileDialog.cpp ./WinControls/FindCharsInRange/FindCharsInRange.cpp ./ScitillaComponent/FindReplaceDlg.cpp ./ScitillaComponent/FunctionCallTip.cpp ./WinControls/FunctionList/functionListPanel.cpp ./WinControls/FunctionList/functionParser.cpp ./ScitillaComponent/GoToLineDlg.cpp ./WinControls/DockingWnd/Gripper.cpp ./MISC/PluginsManager/IDAllocator.cpp ./WinControls/ImageListSet/ImageListSet.cpp ./uchardet/JpCntx.cpp ./uchardet/LangBulgarianModel.cpp ./uchardet/LangCyrillicModel.cpp ./uchardet/LangGreekModel.cpp ./uchardet/LangHebrewModel.cpp ./uchardet/LangHungarianModel.cpp ./uchardet/LangThaiModel.cpp ./lastRecentFileList.cpp ./lesDlgs.cpp ./WinControls/AnsiCharPanel/ListView.cpp ./localization.cpp ./MISC/Exception/MiniDumper.cpp ./Notepad_plus.cpp ./Notepad_plus_Window.cpp ./NppBigSwitch.cpp ./NppCommands.cpp ./NppIO.cpp ./NppNotification.cpp ./uchardet/nsBig5Prober.cpp ./uchardet/nsCharSetProber.cpp ./uchardet/nsEscCharsetProber.cpp ./uchardet/nsEscSM.cpp ./uchardet/nsEUCJPProber.cpp ./uchardet/nsEUCKRProber.cpp ./uchardet/nsEUCTWProber.cpp ./uchardet/nsGB2312Prober.cpp ./uchardet/nsHebrewProber.cpp ./uchardet/nsLatin1Prober.cpp ./uchardet/nsMBCSGroupProber.cpp ./uchardet/nsMBCSSM.cpp ./uchardet/nsSBCharSetProber.cpp ./uchardet/nsSBCSGroupProber.cpp ./uchardet/nsSJISProber.cpp ./uchardet/nsUniversalDetector.cpp ./uchardet/nsUTF8Prober.cpp ./Parameters.cpp ./Misc/PluginsManager/PluginsManager.cpp ./WinControls/Preference/preferenceDlg.cpp ./ScitillaComponent/Printer.cpp ./WinControls/ProjectPanel/ProjectPanel.cpp ./MISC/RegExt/regExtDlg.cpp ./WinControls/StaticDialog/RunDlg/RunDlg.cpp ./WinControls/shortcut/RunMacroDlg.cpp ./ScitillaComponent/ScintillaCtrls.cpp ./ScitillaComponent/ScintillaEditView.cpp ./WinControls/shortcut/shortcut.cpp ./WinControls/Grid/ShortcutMapper.cpp ./WinControls/WindowsDlg/SizeableDlg.cpp ./ScitillaComponent/SmartHighlighter.cpp ./WinControls/SplitterContainer/Splitter.cpp ./WinControls/SplitterContainer/SplitterContainer.cpp ./WinControls/StaticDialog/StaticDialog.cpp ./WinControls/StatusBar/StatusBar.cpp ./WinControls/TabBar/TabBar.cpp ./WinControls/TaskList/TaskList.cpp ./WinControls/TaskList/TaskListDlg.cpp ./TinyXml/tinystr.cpp ./TinyXml/tinyXmlA/tinystrA.cpp ./TinyXml/tinyxml.cpp ./TinyXml/tinyXmlA/tinyxmlA.cpp ./TinyXml/tinyxmlerror.cpp ./TinyXml/tinyXmlA/tinyxmlerrorA.cpp ./TinyXml/tinyxmlparser.cpp ./TinyXml/tinyXmlA/tinyxmlparserA.cpp ./WinControls/ToolBar/ToolBar.cpp ./WinControls/ToolTip/ToolTip.cpp ./WinControls/TrayIcon/trayIconControler.cpp ./WinControls/ProjectPanel/TreeView.cpp ./uchardet/uchardet.cpp ./UniConversion.cpp ./WinControls/AboutDlg/URLCtrl.cpp ./ScitillaComponent/UserDefineDialog.cpp ./Utf8_16.cpp ./WinControls/VerticalFileSwitcher/VerticalFileSwitcher.cpp ./WinControls/VerticalFileSwitcher/VerticalFileSwitcherListView.cpp ./MISC/Exception/Win32Exception.cpp ./WinControls/WindowsDlg/WindowsDlg.cpp ./winmain.cpp ./WinControls/WindowsDlg/WinMgr.cpp ./WinControls/WindowsDlg/WinRect.cpp ./WinControls/ColourPicker/WordStyleDlg.cpp ./ScitillaComponent/xmlMatchedTagsHighlighter.cpp ./dpiAware.manifest ./notepad++.exe.manifest ) SET(include_files ./MISC/Common/verifySignedfile.h ./MISC/md5/md5Dlgs.h ./MISC/sha2/sha-256.h ./MISC/Process/Processus.h ./WinControls/AboutDlg/AboutDlg.h ./WinControls/AnsiCharPanel/ansiCharPanel.h ./ScitillaComponent/AutoCompletion.h ./WinControls/AnsiCharPanel/asciiListView.h ./WinControls/FileBrowser/fileBrowser.h ./WinControls/FileBrowser/fileBrowser_rc.h ./WinControls/Grid/BabyGrid.h ./WinControls/Grid/BabyGridWrapper.h ./ScitillaComponent/Buffer.h ./uchardet/CharDistribution.h ./WinControls/ClipboardHistory/clipboardHistoryPanel.h ./WinControls/ClipboardHistory/clipboardHistoryPanel_rc.h ./ScitillaComponent/colors.h ./WinControls/ColourPicker/ColourPicker.h ./WinControls/ColourPicker/ColourPopup.h ./ScitillaComponent/columnEditor.h ./MISC/Common/Common.h ./WinControls/ContextMenu/ContextMenu.h ./WinControls/PluginsAdmin/pluginsAdmin.h ./WinControls/PluginsAdmin/pluginsAdminRes.h ./WinControls/ReadDirectoryChanges/ReadDirectoryChanges.h ./WinControls/ReadDirectoryChanges/ReadDirectoryChangesPrivate.h ./WinControls/ReadDirectoryChanges/ThreadSafeQueue.h ./WinControls/TabBar/ControlsTab.h ./WinControls/DockingWnd/Docking.h ./WinControls/DockingWnd/DockingCont.h ./WinControls/DockingWnd/DockingDlgInterface.h ./WinControls/DockingWnd/DockingManager.h ./WinControls/DockingWnd/dockingResource.h ./WinControls/DockingWnd/DockingSplitter.h ./ScitillaComponent/DocTabView.h ./WinControls/DocumentMap/documentMap.h ./WinControls/DocumentMap/documentSnapshot.h ./EncodingMapper.h ./WinControls/OpenSaveFileDialog/FileDialog.h ./MISC/FileNameStringSplitter.h ./WinControls/FindCharsInRange/FindCharsInRange.h ./ScitillaComponent/FindReplaceDlg.h ./ScitillaComponent/FunctionCallTip.h ./WinControls/FunctionList/functionListPanel.h ./WinControls/FunctionList/functionListPanel_rc.h ./WinControls/FunctionList/functionParser.h ./ScitillaComponent/GoToLineDlg.h ./WinControls/DockingWnd/Gripper.h ./MISC/PluginsManager/IDAllocator.h ./WinControls/ImageListSet/ImageListSet.h ./uchardet/JpCntx.h ./lastRecentFileList.h ./lesDlgs.h ./WinControls/AnsiCharPanel/ListView.h ./localization.h ./localizationstring.h ./menuCmdID.h ./MISC/Exception/MiniDumper.h ./Notepad_plus.h ./MISC/PluginsManager/Notepad_plus_msgs.h ./Notepad_plus_Window.h ./uchardet/nsBig5Prober.h ./uchardet/nsCharSetProber.h ./uchardet/nsCodingStateMachine.h ./uchardet/nscore.h ./uchardet/nsEscCharsetProber.h ./uchardet/nsEUCJPProber.h ./uchardet/nsEUCKRProber.h ./uchardet/nsEUCTWProber.h ./uchardet/nsGB2312Prober.h ./uchardet/nsHebrewProber.h ./uchardet/nsLatin1Prober.h ./uchardet/nsMBCSGroupProber.h ./uchardet/nsPkgInt.h ./uchardet/nsSBCharSetProber.h ./uchardet/nsSBCSGroupProber.h ./uchardet/nsSJISProber.h ./uchardet/nsUniversalDetector.h ./uchardet/nsUTF8Prober.h ./Parameters.h ./MISC/PluginsManager/PluginInterface.h ./MISC/PluginsManager/PluginsManager.h ./WinControls/Preference/preferenceDlg.h ./ScitillaComponent/Printer.h ./uchardet/prmem.h ./WinControls/ProjectPanel/ProjectPanel.h ./WinControls/ProjectPanel/ProjectPanel_rc.h ./MISC/RegExt/regExtDlg.h ./MISC/RegExt/regExtDlgRc.h ./resource.h ./WinControls/StaticDialog/RunDlg/RunDlg.h ./WinControls/shortcut/RunMacroDlg.h ./WinControls/shortcut/RunMacroDlg_rc.h ./ScitillaComponent/ScintillaCtrls.h ./ScitillaComponent/ScintillaEditView.h ./WinControls/shortcut/shortcut.h ./WinControls/Grid/ShortcutMapper.h ./WinControls/Grid/ShortcutMapper_rc.h ./WinControls/WindowsDlg/SizeableDlg.h ./ScitillaComponent/SmartHighlighter.h ./WinControls/SplitterContainer/Splitter.h ./WinControls/SplitterContainer/SplitterContainer.h ./WinControls/StaticDialog/StaticDialog.h ./WinControls/StatusBar/StatusBar.h ./WinControls/TabBar/TabBar.h ./WinControls/TaskList/TaskList.h ./WinControls/TaskList/TaskListDlg.h ./WinControls/TaskList/TaskListDlg_rc.h ./TinyXml/tinystr.h ./TinyXml/tinyXmlA/tinystrA.h ./TinyXml/tinyxml.h ./TinyXml/tinyXmlA/tinyxmlA.h ./WinControls/ToolBar/ToolBar.h ./WinControls/ToolTip/ToolTip.h ./WinControls/TrayIcon/trayIconControler.h ./WinControls/ProjectPanel/TreeView.h ./uchardet/uchardet.h ./UniConversion.h ./WinControls/AboutDlg/URLCtrl.h ./ScitillaComponent/UserDefineDialog.h ./ScitillaComponent/UserDefineLangReference.h ./ScitillaComponent/UserDefineResource.h ./Utf8_16.h ./WinControls/VerticalFileSwitcher/VerticalFileSwitcher.h ./WinControls/VerticalFileSwitcher/VerticalFileSwitcher_rc.h ./WinControls/VerticalFileSwitcher/VerticalFileSwitcherListView.h ./MISC/Exception/Win32Exception.h ./WinControls/Window.h ./WinControls/WindowsDlg/WindowsDlg.h ./WinControls/WindowsDlg/WindowsDlgRc.h ./WinControls/WindowsDlg/WinMgr.h ./WinControls/ColourPicker/WordStyleDlg.h ./ScitillaComponent/xmlMatchedTagsHighlighter.h ./rgba_icons.h ) SET(rcFiles ./MISC/md5/md5Dlgs.rc ./WinControls/AnsiCharPanel/ansiCharPanel.rc ./WinControls/ClipboardHistory/clipboardHistoryPanel.rc ./WinControls/ColourPicker/ColourPopup.rc ./ScitillaComponent/columnEditor.rc ./WinControls/DockingWnd/DockingGUIWidget.rc ./WinControls/DocumentMap/documentMap.rc ./WinControls/DocumentMap/documentSnapshot.rc ./WinControls/FileBrowser/fileBrowser.rc ./WinControls/FindCharsInRange/findCharsInRange.rc ./ScitillaComponent/FindReplaceDlg.rc ./WinControls/FunctionList/functionListPanel.rc ./Notepad_plus.rc ./WinControls/PluginsAdmin/pluginsAdmin.rc ./WinControls/Preference/preference.rc ./WinControls/ProjectPanel/ProjectPanel.rc ./MISC/RegExt/regExtDlg.rc ./WinControls/StaticDialog/RunDlg/RunDlg.rc ./WinControls/shortcut/RunMacroDlg.rc ./WinControls/shortcut/shortcut.rc ./WinControls/Grid/ShortcutMapper.rc ./WinControls/TaskList/TaskListDlg.rc ./ScitillaComponent/UserDefineDialog.rc ./WinControls/VerticalFileSwitcher/VerticalFileSwitcher.rc ./WinControls/WindowsDlg/WindowsDlg.rc ./WinControls/ColourPicker/WordStyleDlg.rc ) IF (WIN32) SET(option WIN32) SET(win32_LIBRARIES comctl32 shlwapi dbghelp version crypt32 wintrust sensapi) if ( MSVC ) #do not use for mingw builds SET(CMAKE_CXX_FLAGS "/EHa /MP /W4") SET(defs -DUNICODE -D_UNICODE -D_WIN32_WINNT=0x501 -D_USE_64BIT_TIME_T -DTIXML_USE_STL -DTIXMLA_USE_STL -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_CRT_NON_CONFORMING_SWPRINTFS ) else ( MSVC ) # For possible MinGW compilation SET(CMAKE_CXX_FLAGS "-include../gcc/include/various.h -std=c++17 -fpermissive") SET(defs -DUNICODE -D_UNICODE -D_USE_64BIT_TIME_T -DTIXML_USE_STL -DTIXMLA_USE_STL ) endif ( MSVC ) ENDIF (WIN32) ADD_DEFINITIONS(${defs}) INCLUDE_DIRECTORIES(${projIncludDir}) ADD_EXECUTABLE(notepad++ ${option} ${src_files} ${include_files} ${rcFiles}) TARGET_LINK_LIBRARIES (notepad++ ${win32_LIBRARIES})