mirror of
https://gitee.com/vnotex/vnote.git
synced 2025-07-05 05:49:53 +08:00

* Introduce cmake scripts - CMake scripts - Add gitignore related to cmake - run code checker: clang-tidy, clazy, and IWYU Signed-off-by: Hiroshi Miura <miurahr@linux.com> * Add cpp for header only class Signed-off-by: Hiroshi Miura <miurahr@linux.com> * cmake: Add packaging feature Signed-off-by: Hiroshi Miura <miurahr@linux.com> * cmake: add VS2017 config Signed-off-by: Hiroshi Miura <miurahr@linux.com> * cmake: update Qt5 default path Signed-off-by: Hiroshi Miura <miurahr@linux.com> * cmake: improve cpack script Signed-off-by: Hiroshi Miura <miurahr@linux.com> * cmake: cosmetic change Signed-off-by: Hiroshi Miura <miurahr@linux.com> * cmake: fix cpack appimage builder error Signed-off-by: Hiroshi Miura <miurahr@linux.com> * cmake: Support Qt IFW installer builder Signed-off-by: Hiroshi Miura <miurahr@linux.com> * changelog: amend about cmake build system Signed-off-by: Hiroshi Miura <miurahr@linux.com>
209 lines
7.9 KiB
CMake
209 lines
7.9 KiB
CMake
add_executable(VNote main.cpp
|
|
vmainwindow.cpp
|
|
vdirectorytree.cpp
|
|
vnote.cpp
|
|
vnotebook.cpp
|
|
dialog/vnewdirdialog.cpp
|
|
vconfigmanager.cpp
|
|
vfilelist.cpp
|
|
dialog/vnewfiledialog.cpp
|
|
vedit.cpp
|
|
vdocument.cpp
|
|
utils/vutils.cpp
|
|
vpreviewpage.cpp
|
|
vstyleparser.cpp
|
|
dialog/vnewnotebookdialog.cpp
|
|
vmarkdownconverter.cpp
|
|
dialog/vnotebookinfodialog.cpp
|
|
dialog/vdirinfodialog.cpp
|
|
dialog/vfileinfodialog.cpp
|
|
veditoperations.cpp
|
|
vmdeditoperations.cpp
|
|
dialog/vinsertimagedialog.cpp
|
|
vdownloader.cpp
|
|
veditarea.cpp
|
|
veditwindow.cpp
|
|
vedittab.cpp
|
|
voutline.cpp
|
|
vsingleinstanceguard.cpp
|
|
vdirectory.cpp
|
|
vfile.cpp
|
|
vnotebookselector.cpp
|
|
vnofocusitemdelegate.cpp
|
|
vmdedit.cpp
|
|
dialog/vfindreplacedialog.cpp
|
|
dialog/vsettingsdialog.cpp
|
|
dialog/vdeletenotebookdialog.cpp
|
|
dialog/vselectdialog.cpp
|
|
vcaptain.cpp
|
|
vopenedlistmenu.cpp
|
|
vnavigationmode.cpp
|
|
vorphanfile.cpp
|
|
vcodeblockhighlighthelper.cpp
|
|
vwebview.cpp
|
|
vmdtab.cpp
|
|
vhtmltab.cpp
|
|
utils/vvim.cpp
|
|
utils/veditutils.cpp
|
|
vvimindicator.cpp
|
|
vbuttonwithwidget.cpp
|
|
vtabindicator.cpp
|
|
dialog/vupdater.cpp
|
|
dialog/vorphanfileinfodialog.cpp
|
|
vtextblockdata.cpp
|
|
utils/vpreviewutils.cpp
|
|
dialog/vconfirmdeletiondialog.cpp
|
|
vnotefile.cpp
|
|
vattachmentlist.cpp
|
|
dialog/vsortdialog.cpp
|
|
vfilesessioninfo.cpp
|
|
vtableofcontent.cpp
|
|
utils/vmetawordmanager.cpp
|
|
vmetawordlineedit.cpp
|
|
dialog/vinsertlinkdialog.cpp
|
|
vplaintextedit.cpp
|
|
vimageresourcemanager.cpp
|
|
vlinenumberarea.cpp
|
|
veditor.cpp
|
|
vmdeditor.cpp
|
|
veditconfig.cpp
|
|
vpreviewmanager.cpp
|
|
vimageresourcemanager2.cpp
|
|
vtextdocumentlayout.cpp
|
|
vtextedit.cpp
|
|
vsnippetlist.cpp
|
|
vsnippet.cpp
|
|
dialog/veditsnippetdialog.cpp
|
|
utils/vimnavigationforwidget.cpp
|
|
vtoolbox.cpp
|
|
vinsertselector.cpp
|
|
utils/vclipboardutils.cpp
|
|
vpalette.cpp
|
|
vbuttonmenuitem.cpp
|
|
utils/viconutils.cpp
|
|
lineeditdelegate.cpp
|
|
dialog/vtipsdialog.cpp
|
|
dialog/vcopytextashtmldialog.cpp
|
|
vwaitingwidget.cpp
|
|
utils/vwebutils.cpp
|
|
vlineedit.cpp
|
|
vcart.cpp
|
|
vvimcmdlineedit.cpp
|
|
vlistwidget.cpp
|
|
vsimplesearchinput.cpp
|
|
vstyleditemdelegate.cpp
|
|
vtreewidget.cpp
|
|
dialog/vexportdialog.cpp
|
|
vexporter.cpp
|
|
vsearcher.cpp
|
|
vsearch.cpp
|
|
vsearchresulttree.cpp
|
|
vsearchengine.cpp
|
|
vuniversalentry.cpp
|
|
vlistwidgetdoublerows.cpp
|
|
vdoublerowitemwidget.cpp
|
|
vsearchue.cpp
|
|
voutlineue.cpp
|
|
vhelpue.cpp
|
|
vlistfolderue.cpp
|
|
dialog/vfixnotebookdialog.cpp
|
|
vplantumlhelper.cpp
|
|
vgraphvizhelper.cpp
|
|
vlivepreviewhelper.cpp
|
|
vmathjaxpreviewhelper.cpp
|
|
vmathjaxwebdocument.cpp
|
|
vmathjaxinplacepreviewhelper.cpp
|
|
vhistorylist.cpp
|
|
vexplorer.cpp
|
|
vlistue.cpp
|
|
vuetitlecontentpanel.cpp
|
|
utils/vprocessutils.cpp
|
|
vtagpanel.cpp
|
|
valltagspanel.cpp
|
|
vtaglabel.cpp
|
|
vtagexplorer.cpp
|
|
pegmarkdownhighlighter.cpp
|
|
pegparser.cpp
|
|
peghighlighterresult.cpp
|
|
vtexteditcompleter.cpp
|
|
utils/vkeyboardlayoutmanager.cpp
|
|
dialog/vkeyboardlayoutmappingdialog.cpp
|
|
vfilelistwidget.cpp
|
|
widgets/vcombobox.cpp
|
|
vtablehelper.cpp
|
|
vtable.cpp
|
|
dialog/vinserttabledialog.cpp
|
|
isearchengine.cpp
|
|
iuniversalentry.cpp
|
|
vnote.qrc translations.qrc)
|
|
|
|
# Qt5 libraries
|
|
target_link_libraries(VNote PRIVATE Qt5::Core Qt5::WebEngine Qt5::WebEngineWidgets
|
|
Qt5::Network Qt5::PrintSupport Qt5::WebChannel Qt5::Widgets
|
|
Qt5::PrintSupport Qt5::Svg)
|
|
set_property(TARGET VNote PROPERTY AUTORCC_OPTIONS "--compress;9")
|
|
|
|
# Thirdparty libraries
|
|
target_include_directories(VNote PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/peg-highlight ${CMAKE_SOURCE_DIR}/hoedown)
|
|
target_link_libraries(VNote PRIVATE peg-highlight hoedown)
|
|
|
|
# Compile options
|
|
if(GCC_VERSION VERSION_GREATER_EQUAL 8.0)
|
|
target_compile_options(VNote PRIVATE "-Wno-class-memaccess")
|
|
endif()
|
|
|
|
## INSTALLS
|
|
install(TARGETS VNote RUNTIME DESTINATION bin)
|
|
install(FILES translations/vnote_zh_CN.qm translations/vnote_ja.qm DESTINATION translations )
|
|
|
|
if(UNIX AND NOT DARWIN)
|
|
set(desktop.path applications)
|
|
set(desktop.files vnote.desktop)
|
|
|
|
set(icon16.path icons/hicolor/16x16/apps)
|
|
set(icon16.files resources/icons/16x16/vnote.png)
|
|
|
|
set(icon32.path icons/hicolor/32x32/apps)
|
|
set(icon32.files resources/icons/32x32/vnote.png)
|
|
|
|
set(icon48.path icons/hicolor/48x48/apps)
|
|
set(icon48.files resources/icons/48x48/vnote.png)
|
|
|
|
set(icon64.path icons/hicolor/64x64/apps)
|
|
set(icon64.files resources/icons/64x64/vnote.png)
|
|
|
|
set(icon128.path icons/hicolor/128x128/apps)
|
|
set(icon128.files resources/icons/128x128/vnote.png)
|
|
|
|
set(icon256.path icons/hicolor/256x256/apps)
|
|
set(icon256.files resources/icons/256x256/vnote.png)
|
|
|
|
set(iconsvg.path icons/hicolor/scalable/apps)
|
|
set(iconsvg.files resources/icons/vnote.svg)
|
|
|
|
foreach(items IN ITEMS desktop icon16 icon32 icon48 icon64 icon128 icon256 iconsvg)
|
|
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${${items}.files}
|
|
DESTINATION share/${${items}.path}
|
|
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
|
|
endforeach()
|
|
install(FILES ${CMAKE_SOURCE_DIR}/LICENSE
|
|
DESTINATION share/doc/vnote/
|
|
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
|
|
RENAME copyright)
|
|
elseif(DARWIN)
|
|
set(MACOSX_BUNDLE_BUNDLE_NAME "VNote")
|
|
set(MACOSX_BUNDLE_BUNDLE_GUI_IDENTIFIER "com.tamlok.VNote")
|
|
set(MACOSX_BUNDLE_ICON_FILE ${CMAKE_SOURCE_DIR}/src/resources/icons/vnote.icns)
|
|
set(MACOSX_BUNDLE_BUNDLE_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
|
|
set(MACOSX_BUNDLE_LONG_VERSION_STRING ${MACOSX_BUNDLE_BUNDLE_VERSION})
|
|
# Set short version independent with project version to be able to increment independendently.
|
|
math(EXPR SHORT_VERSION_MAJOR "${PROJECT_VERSION_MAJOR} * 100 + ${PROJECT_VERSION_MINOR}")
|
|
set(MACOSX_BUNDLE_SHORT_VERSION_STRING "${SHORT_VERSION_MAJOR}.${PROJECT_VERSION_PATCH}.0")
|
|
set(MACOSX_BUNDLE_EXECUTABLE_NAME "VNote")
|
|
set(MACOSX_BUNDLE_COPYRIGHT "Distributed under MIT license. Copyright 2016-2019 Le Tan")
|
|
set(MACOSX_BUNDLE_INFO_STRING "VNote is a note-taking application that knows programmers and Markdown better. Distributed under MIT license. Copyright 2017 Le Tan")
|
|
|
|
set_source_files_properties(${MACOSX_BUNDLE_ICON_FILE} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
|
|
endif()
|
|
|
|
include(${CMAKE_CURRENT_LIST_DIR}/Packaging.cmake) |