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 vimagehosting.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)