passwordmanager/CMakeLists.txt

178 lines
3.6 KiB
CMake

cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
# meta data
set(META_PROJECT_NAME passwordmanager)
set(META_PROJECT_VARNAME password_manager)
set(META_PROJECT_TYPE application)
set(META_APP_NAME "Password Manager")
set(META_APP_CATEGORIES "Utility;Security;")
set(META_APP_AUTHOR "Martchus")
set(META_APP_URL "https://github.com/${META_APP_AUTHOR}/${META_PROJECT_NAME}")
set(META_APP_DESCRIPTION "A simple password store using AES-256-CBC encryption via OpenSSL")
set(META_GUI_OPTIONAL YES)
set(META_USE_QQC2 ON)
set(META_VERSION_MAJOR 2)
set(META_VERSION_MINOR 1)
set(META_VERSION_PATCH 5)
set(META_APP_VERSION ${META_VERSION_MAJOR}.${META_VERSION_MINOR}.${META_VERSION_PATCH})
# add project files
set(HEADER_FILES
cli/cli.h
model/entryfiltermodel.h
model/entrymodel.h
model/fieldmodel.h
)
set(SRC_FILES
cli/cli.cpp
main.cpp
)
set(GUI_HEADER_FILES
model/entryfiltermodel.cpp
model/entrymodel.cpp
model/fieldmodel.cpp
)
set(GUI_SRC_FILES
model/entryfiltermodel.cpp
model/entrymodel.cpp
model/fieldmodel.cpp
)
set(WIDGETS_HEADER_FILES
gui/fielddelegate.h
gui/initiategui.h
gui/mainwindow.h
gui/passwordgeneratordialog.h
gui/stacksupport.h
gui/undocommands.h
)
set(WIDGETS_SRC_FILES
gui/fielddelegate.cpp
gui/initiatequi.cpp
gui/mainwindow.cpp
gui/passwordgeneratordialog.cpp
gui/stacksupport.cpp
gui/undocommands.cpp
resources/icons.qrc
)
set(WIDGETS_UI_FILES
gui/mainwindow.ui
gui/passwordgeneratordialog.ui
)
set(QML_HEADER_FILES
quickgui/controller.h
quickgui/initiatequick.h
)
set(QML_SRC_FILES
quickgui/controller.cpp
quickgui/initiatequick.cpp
resources/icons.qrc
resources/qml.qrc
)
if(ANDROID)
list(APPEND QML_HEADER_FILES
quickgui/android.h
)
list(APPEND QML_SRC_FILES
quickgui/android.cpp
)
endif()
set(TS_FILES
translations/${META_PROJECT_NAME}_de_DE.ts
translations/${META_PROJECT_NAME}_en_US.ts
)
set(ICON_FILES
resources/icons/hicolor/scalable/apps/${META_PROJECT_NAME}.svg
)
set(DOC_FILES
README.md
)
set(REQUIRED_ICONS
application-exit
applications-internet
dialog-cancel
dialog-ok
dialog-ok-apply
dialog-password
document-close
document-export
document-new
document-open
document-open-recent
document-save
document-save-as
edit-clear
edit-copy
edit-cut
edit-delete
edit-paste
edit-redo
edit-rename
edit-undo
flag-black
flag-blue
folder
folder-symbolic
go-next
help-about
insert-text
list-add
list-remove
password-generate
password-show-off
password-show-on
passwordmanager
preferences-desktop-icons
preferences-desktop-locale
qtcreator
sheet
story-editor
system-file-manager
system-run
system-search
window-close
)
# find c++utilities
find_package(c++utilities 4.10.0 REQUIRED)
use_cpp_utilities()
include(BasicConfig)
# find qtutilities
if(QUICK_GUI)
find_package(qtutilities 5.11.0 REQUIRED)
use_qt_utilities()
elseif(WIDGETS_GUI)
find_package(qtutilities 5.7.0 REQUIRED)
use_qt_utilities()
endif()
# find passwordfile
find_package(passwordfile 3.1.0 REQUIRED)
use_password_file()
# require Qt AndroidExtras
if(ANDROID AND QUICK_GUI)
list(APPEND ADDITIONAL_QT_MODULES AndroidExtras)
endif()
# include modules to apply configuration
if(WIDGETS_GUI OR QUICK_GUI)
include(QtGuiConfig)
include(QtConfig)
endif()
include(WindowsResources)
include(AppTarget)
include(ShellCompletion)
include(ConfigHeader)
# create desktop file using previously defined meta data
add_desktop_file()