mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2024-10-01 01:26:01 -04:00
Reformat CMakeLists.txt files
This commit is contained in:
parent
0ca7fd369a
commit
77adbef401
291
CMakeLists.txt
291
CMakeLists.txt
@ -1,4 +1,4 @@
|
|||||||
# Copyright (C) 2017 KeePassXC Team <team@keepassxc.org>
|
# Copyright (C) 2018 KeePassXC Team <team@keepassxc.org>
|
||||||
# Copyright (C) 2010 Felix Geyer <debfx@fobos.de>
|
# Copyright (C) 2010 Felix Geyer <debfx@fobos.de>
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
@ -19,9 +19,9 @@ cmake_minimum_required(VERSION 3.1.0)
|
|||||||
project(KeePassXC)
|
project(KeePassXC)
|
||||||
|
|
||||||
if(NOT CMAKE_BUILD_TYPE)
|
if(NOT CMAKE_BUILD_TYPE)
|
||||||
set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING
|
set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING
|
||||||
"Choose the type of build, options are: None Debug Release RelWithDebInfo Debug DebugFull Profile MinSizeRel."
|
"Choose the type of build, options are: None Debug Release RelWithDebInfo Debug DebugFull Profile MinSizeRel."
|
||||||
FORCE)
|
FORCE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
|
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
|
||||||
@ -48,19 +48,19 @@ option(WITH_XC_BROWSER "Include browser integration with keepassxc-browser." OFF
|
|||||||
option(WITH_XC_YUBIKEY "Include YubiKey support." OFF)
|
option(WITH_XC_YUBIKEY "Include YubiKey support." OFF)
|
||||||
option(WITH_XC_SSHAGENT "Include SSH agent support." OFF)
|
option(WITH_XC_SSHAGENT "Include SSH agent support." OFF)
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
option(WITH_XC_TOUCHID "Include TouchID support for macOS." OFF)
|
option(WITH_XC_TOUCHID "Include TouchID support for macOS." OFF)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_XC_ALL)
|
if(WITH_XC_ALL)
|
||||||
# Enable all options
|
# Enable all options
|
||||||
set(WITH_XC_AUTOTYPE ON)
|
set(WITH_XC_AUTOTYPE ON)
|
||||||
set(WITH_XC_NETWORKING ON)
|
set(WITH_XC_NETWORKING ON)
|
||||||
set(WITH_XC_BROWSER ON)
|
set(WITH_XC_BROWSER ON)
|
||||||
set(WITH_XC_YUBIKEY ON)
|
set(WITH_XC_YUBIKEY ON)
|
||||||
set(WITH_XC_SSHAGENT ON)
|
set(WITH_XC_SSHAGENT ON)
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
set(WITH_XC_TOUCHID ON)
|
set(WITH_XC_TOUCHID ON)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(KEEPASSXC_VERSION_MAJOR "2")
|
set(KEEPASSXC_VERSION_MAJOR "2")
|
||||||
@ -76,34 +76,34 @@ execute_process(COMMAND git tag --points-at HEAD
|
|||||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||||
OUTPUT_VARIABLE GIT_TAG)
|
OUTPUT_VARIABLE GIT_TAG)
|
||||||
if(GIT_TAG)
|
if(GIT_TAG)
|
||||||
set(OVERRIDE_VERSION ${GIT_TAG})
|
set(OVERRIDE_VERSION ${GIT_TAG})
|
||||||
elseif(EXISTS ${CMAKE_SOURCE_DIR}/.version)
|
elseif(EXISTS ${CMAKE_SOURCE_DIR}/.version)
|
||||||
file(READ ${CMAKE_SOURCE_DIR}/.version OVERRIDE_VERSION)
|
file(READ ${CMAKE_SOURCE_DIR}/.version OVERRIDE_VERSION)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
string(REGEX REPLACE "(\r?\n)+" "" OVERRIDE_VERSION "${OVERRIDE_VERSION}")
|
string(REGEX REPLACE "(\r?\n)+" "" OVERRIDE_VERSION "${OVERRIDE_VERSION}")
|
||||||
if(OVERRIDE_VERSION)
|
if(OVERRIDE_VERSION)
|
||||||
if(OVERRIDE_VERSION MATCHES "^[\\.0-9]+-(alpha|beta)[0-9]+$")
|
if(OVERRIDE_VERSION MATCHES "^[\\.0-9]+-(alpha|beta)[0-9]+$")
|
||||||
set(KEEPASSXC_BUILD_TYPE PreRelease)
|
set(KEEPASSXC_BUILD_TYPE PreRelease)
|
||||||
set(KEEPASSXC_VERSION ${OVERRIDE_VERSION})
|
set(KEEPASSXC_VERSION ${OVERRIDE_VERSION})
|
||||||
elseif(OVERRIDE_VERSION MATCHES "^[\\.0-9]+$")
|
elseif(OVERRIDE_VERSION MATCHES "^[\\.0-9]+$")
|
||||||
set(KEEPASSXC_BUILD_TYPE Release)
|
set(KEEPASSXC_BUILD_TYPE Release)
|
||||||
set(KEEPASSXC_VERSION ${OVERRIDE_VERSION})
|
set(KEEPASSXC_VERSION ${OVERRIDE_VERSION})
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(KEEPASSXC_BUILD_TYPE STREQUAL "PreRelease" AND NOT OVERRIDE_VERSION)
|
if(KEEPASSXC_BUILD_TYPE STREQUAL "PreRelease" AND NOT OVERRIDE_VERSION)
|
||||||
set(KEEPASSXC_VERSION "${KEEPASSXC_VERSION}-preview")
|
set(KEEPASSXC_VERSION "${KEEPASSXC_VERSION}-preview")
|
||||||
elseif(KEEPASSXC_BUILD_TYPE STREQUAL "Snapshot")
|
elseif(KEEPASSXC_BUILD_TYPE STREQUAL "Snapshot")
|
||||||
set(KEEPASSXC_VERSION "${KEEPASSXC_VERSION}-snapshot")
|
set(KEEPASSXC_VERSION "${KEEPASSXC_VERSION}-snapshot")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(KEEPASSXC_BUILD_TYPE STREQUAL "Release")
|
if(KEEPASSXC_BUILD_TYPE STREQUAL "Release")
|
||||||
set(KEEPASSXC_BUILD_TYPE_RELEASE ON)
|
set(KEEPASSXC_BUILD_TYPE_RELEASE ON)
|
||||||
elseif(KEEPASSXC_BUILD_TYPE STREQUAL "PreRelease")
|
elseif(KEEPASSXC_BUILD_TYPE STREQUAL "PreRelease")
|
||||||
set(KEEPASSXC_BUILD_TYPE_PRE_RELEASE ON)
|
set(KEEPASSXC_BUILD_TYPE_PRE_RELEASE ON)
|
||||||
else()
|
else()
|
||||||
set(KEEPASSXC_BUILD_TYPE_SNAPSHOT ON)
|
set(KEEPASSXC_BUILD_TYPE_SNAPSHOT ON)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
message(STATUS "Setting up build for KeePassXC v${KEEPASSXC_VERSION}\n")
|
message(STATUS "Setting up build for KeePassXC v${KEEPASSXC_VERSION}\n")
|
||||||
@ -113,46 +113,46 @@ set(KEEPASSXC_DIST ON)
|
|||||||
set(KEEPASSXC_DIST_TYPE "Other" CACHE STRING "KeePassXC Distribution Type")
|
set(KEEPASSXC_DIST_TYPE "Other" CACHE STRING "KeePassXC Distribution Type")
|
||||||
set_property(CACHE KEEPASSXC_DIST_TYPE PROPERTY STRINGS Snap AppImage Other)
|
set_property(CACHE KEEPASSXC_DIST_TYPE PROPERTY STRINGS Snap AppImage Other)
|
||||||
if(KEEPASSXC_DIST_TYPE STREQUAL "Snap")
|
if(KEEPASSXC_DIST_TYPE STREQUAL "Snap")
|
||||||
set(KEEPASSXC_DIST_SNAP ON)
|
set(KEEPASSXC_DIST_SNAP ON)
|
||||||
elseif(KEEPASSXC_DIST_TYPE STREQUAL "AppImage")
|
elseif(KEEPASSXC_DIST_TYPE STREQUAL "AppImage")
|
||||||
set(KEEPASSXC_DIST_APPIMAGE ON)
|
set(KEEPASSXC_DIST_APPIMAGE ON)
|
||||||
elseif(KEEPASSXC_DIST_TYPE STREQUAL "Other")
|
elseif(KEEPASSXC_DIST_TYPE STREQUAL "Other")
|
||||||
unset(KEEPASSXC_DIST)
|
unset(KEEPASSXC_DIST)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "4")
|
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "4")
|
||||||
set(IS_32BIT TRUE)
|
set(IS_32BIT TRUE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if("${CMAKE_C_COMPILER}" MATCHES "clang$" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang")
|
if("${CMAKE_C_COMPILER}" MATCHES "clang$" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang")
|
||||||
set(CMAKE_COMPILER_IS_CLANG 1)
|
set(CMAKE_COMPILER_IS_CLANG 1)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if("${CMAKE_CXX_COMPILER}" MATCHES "clang(\\+\\+)?$" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
if("${CMAKE_CXX_COMPILER}" MATCHES "clang(\\+\\+)?$" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||||
set(CMAKE_COMPILER_IS_CLANGXX 1)
|
set(CMAKE_COMPILER_IS_CLANGXX 1)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
macro(add_gcc_compiler_cxxflags FLAGS)
|
macro(add_gcc_compiler_cxxflags FLAGS)
|
||||||
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANGXX)
|
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANGXX)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLAGS}")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLAGS}")
|
||||||
endif()
|
endif()
|
||||||
endmacro(add_gcc_compiler_cxxflags)
|
endmacro(add_gcc_compiler_cxxflags)
|
||||||
|
|
||||||
macro(add_gcc_compiler_cflags FLAGS)
|
macro(add_gcc_compiler_cflags FLAGS)
|
||||||
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_CLANG)
|
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_CLANG)
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${FLAGS}")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${FLAGS}")
|
||||||
endif()
|
endif()
|
||||||
endmacro(add_gcc_compiler_cflags)
|
endmacro(add_gcc_compiler_cflags)
|
||||||
|
|
||||||
macro(add_gcc_compiler_flags FLAGS)
|
macro(add_gcc_compiler_flags FLAGS)
|
||||||
add_gcc_compiler_cxxflags("${FLAGS}")
|
add_gcc_compiler_cxxflags("${FLAGS}")
|
||||||
add_gcc_compiler_cflags("${FLAGS}")
|
add_gcc_compiler_cflags("${FLAGS}")
|
||||||
endmacro(add_gcc_compiler_flags)
|
endmacro(add_gcc_compiler_flags)
|
||||||
|
|
||||||
add_definitions(-DQT_NO_EXCEPTIONS -DQT_STRICT_ITERATORS -DQT_NO_CAST_TO_ASCII)
|
add_definitions(-DQT_NO_EXCEPTIONS -DQT_STRICT_ITERATORS -DQT_NO_CAST_TO_ASCII)
|
||||||
|
|
||||||
if(WITH_APP_BUNDLE)
|
if(WITH_APP_BUNDLE)
|
||||||
add_definitions(-DWITH_APP_BUNDLE)
|
add_definitions(-DWITH_APP_BUNDLE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_gcc_compiler_flags("-fno-common")
|
add_gcc_compiler_flags("-fno-common")
|
||||||
@ -162,7 +162,7 @@ add_gcc_compiler_flags("-fvisibility=hidden")
|
|||||||
add_gcc_compiler_cxxflags("-fvisibility-inlines-hidden")
|
add_gcc_compiler_cxxflags("-fvisibility-inlines-hidden")
|
||||||
|
|
||||||
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||||
add_gcc_compiler_flags("-Werror")
|
add_gcc_compiler_flags("-Werror")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if((CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.8.999) OR CMAKE_COMPILER_IS_CLANGXX)
|
if((CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.8.999) OR CMAKE_COMPILER_IS_CLANGXX)
|
||||||
@ -176,147 +176,144 @@ add_gcc_compiler_cxxflags("-Wnon-virtual-dtor -Wold-style-cast -Woverloaded-virt
|
|||||||
add_gcc_compiler_cflags("-Wchar-subscripts -Wwrite-strings")
|
add_gcc_compiler_cflags("-Wchar-subscripts -Wwrite-strings")
|
||||||
|
|
||||||
if(WITH_ASAN)
|
if(WITH_ASAN)
|
||||||
if(NOT (CMAKE_SYSTEM_NAME STREQUAL "Linux" OR APPLE))
|
if(NOT (CMAKE_SYSTEM_NAME STREQUAL "Linux" OR APPLE))
|
||||||
message(FATAL_ERROR "WITH_ASAN is only supported on Linux / macOS at the moment.")
|
message(FATAL_ERROR "WITH_ASAN is only supported on Linux / macOS at the moment.")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_gcc_compiler_flags("-fsanitize=address -DWITH_ASAN")
|
add_gcc_compiler_flags("-fsanitize=address -DWITH_ASAN")
|
||||||
|
|
||||||
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||||
if(NOT (CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.9))
|
if(NOT (CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.9))
|
||||||
add_gcc_compiler_flags("-fsanitize=leak -DWITH_LSAN")
|
add_gcc_compiler_flags("-fsanitize=leak -DWITH_LSAN")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endif()
|
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
string(TOLOWER "${CMAKE_BUILD_TYPE}" CMAKE_BUILD_TYPE_LOWER)
|
string(TOLOWER "${CMAKE_BUILD_TYPE}" CMAKE_BUILD_TYPE_LOWER)
|
||||||
if (CMAKE_BUILD_TYPE_LOWER MATCHES "(release|relwithdebinfo|minsizerel)")
|
if(CMAKE_BUILD_TYPE_LOWER MATCHES "(release|relwithdebinfo|minsizerel)")
|
||||||
add_gcc_compiler_flags("-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2")
|
add_gcc_compiler_flags("-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
check_c_compiler_flag("-Werror=format-security -Werror=implicit-function-declaration" WERROR_C_AVAILABLE)
|
check_c_compiler_flag("-Werror=format-security -Werror=implicit-function-declaration" WERROR_C_AVAILABLE)
|
||||||
check_cxx_compiler_flag("-Werror=format-security" WERROR_CXX_AVAILABLE)
|
check_cxx_compiler_flag("-Werror=format-security" WERROR_CXX_AVAILABLE)
|
||||||
if(WERROR_C_AVAILABLE AND WERROR_CXX_AVAILABLE)
|
if(WERROR_C_AVAILABLE AND WERROR_CXX_AVAILABLE)
|
||||||
add_gcc_compiler_flags("-Werror=format-security")
|
add_gcc_compiler_flags("-Werror=format-security")
|
||||||
add_gcc_compiler_cflags("-Werror=implicit-function-declaration")
|
add_gcc_compiler_cflags("-Werror=implicit-function-declaration")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(CMAKE_COMPILER_IS_GNUCXX)
|
if(CMAKE_COMPILER_IS_GNUCXX)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wcast-align")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wcast-align")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(CMAKE_COMPILER_IS_GNUCC)
|
if(CMAKE_COMPILER_IS_GNUCC)
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wcast-align")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wcast-align")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||||
if (CMAKE_COMPILER_IS_CLANGXX)
|
if(CMAKE_COMPILER_IS_CLANGXX)
|
||||||
add_gcc_compiler_flags("-Qunused-arguments")
|
add_gcc_compiler_flags("-Qunused-arguments")
|
||||||
endif()
|
endif()
|
||||||
add_gcc_compiler_flags("-pie -fPIE")
|
add_gcc_compiler_flags("-pie -fPIE")
|
||||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--no-add-needed -Wl,--as-needed -Wl,--no-undefined")
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--no-add-needed -Wl,--as-needed -Wl,--no-undefined")
|
||||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,relro,-z,now")
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,relro,-z,now")
|
||||||
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--no-add-needed -Wl,--as-needed")
|
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--no-add-needed -Wl,--as-needed")
|
||||||
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,-z,relro,-z,now")
|
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,-z,relro,-z,now")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_gcc_compiler_cflags("-std=c99")
|
add_gcc_compiler_cflags("-std=c99")
|
||||||
add_gcc_compiler_cxxflags("-std=c++11")
|
add_gcc_compiler_cxxflags("-std=c++11")
|
||||||
|
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
add_gcc_compiler_cxxflags("-stdlib=libc++")
|
add_gcc_compiler_cxxflags("-stdlib=libc++")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_DEV_BUILD)
|
if(WITH_DEV_BUILD)
|
||||||
add_definitions(-DQT_DEPRECATED_WARNINGS -DGCRYPT_NO_DEPRECATED)
|
add_definitions(-DQT_DEPRECATED_WARNINGS -DGCRYPT_NO_DEPRECATED)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(MINGW)
|
if(MINGW)
|
||||||
set(CMAKE_RC_COMPILER_INIT windres)
|
set(CMAKE_RC_COMPILER_INIT windres)
|
||||||
enable_language(RC)
|
enable_language(RC)
|
||||||
set(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> <FLAGS> -O coff <DEFINES> -i <SOURCE> -o <OBJECT>")
|
set(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> <FLAGS> -O coff <DEFINES> -i <SOURCE> -o <OBJECT>")
|
||||||
if(NOT (CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo"))
|
if(NOT (CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo"))
|
||||||
# Enable DEP and ASLR
|
# Enable DEP and ASLR
|
||||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--nxcompat -Wl,--dynamicbase")
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--nxcompat -Wl,--dynamicbase")
|
||||||
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--nxcompat -Wl,--dynamicbase")
|
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--nxcompat -Wl,--dynamicbase")
|
||||||
# Enable high entropy ASLR for 64-bit builds
|
# Enable high entropy ASLR for 64-bit builds
|
||||||
if(NOT IS_32BIT)
|
if(NOT IS_32BIT)
|
||||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--high-entropy-va")
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--high-entropy-va")
|
||||||
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--high-entropy-va")
|
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--high-entropy-va")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(APPLE AND WITH_APP_BUNDLE OR MINGW)
|
if(APPLE AND WITH_APP_BUNDLE OR MINGW)
|
||||||
set(PROGNAME KeePassXC)
|
set(PROGNAME KeePassXC)
|
||||||
else()
|
else()
|
||||||
set(PROGNAME keepassxc)
|
set(PROGNAME keepassxc)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(APPLE AND WITH_APP_BUNDLE AND "${CMAKE_INSTALL_PREFIX}" STREQUAL "/usr/local")
|
if(APPLE AND WITH_APP_BUNDLE AND "${CMAKE_INSTALL_PREFIX}" STREQUAL "/usr/local")
|
||||||
set(CMAKE_INSTALL_PREFIX "/Applications")
|
set(CMAKE_INSTALL_PREFIX "/Applications")
|
||||||
set(CMAKE_INSTALL_MANDIR "/usr/local/share/man")
|
set(CMAKE_INSTALL_MANDIR "/usr/local/share/man")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(MINGW)
|
if(MINGW)
|
||||||
set(CLI_INSTALL_DIR ".")
|
set(CLI_INSTALL_DIR ".")
|
||||||
set(PROXY_INSTALL_DIR ".")
|
set(PROXY_INSTALL_DIR ".")
|
||||||
set(BIN_INSTALL_DIR ".")
|
set(BIN_INSTALL_DIR ".")
|
||||||
set(PLUGIN_INSTALL_DIR ".")
|
set(PLUGIN_INSTALL_DIR ".")
|
||||||
set(DATA_INSTALL_DIR "share")
|
set(DATA_INSTALL_DIR "share")
|
||||||
elseif(APPLE AND WITH_APP_BUNDLE)
|
elseif(APPLE AND WITH_APP_BUNDLE)
|
||||||
set(CLI_INSTALL_DIR "/usr/local/bin")
|
set(CLI_INSTALL_DIR "/usr/local/bin")
|
||||||
set(PROXY_INSTALL_DIR "/usr/local/bin")
|
set(PROXY_INSTALL_DIR "/usr/local/bin")
|
||||||
set(BIN_INSTALL_DIR ".")
|
set(BIN_INSTALL_DIR ".")
|
||||||
set(PLUGIN_INSTALL_DIR "${PROGNAME}.app/Contents/PlugIns")
|
set(PLUGIN_INSTALL_DIR "${PROGNAME}.app/Contents/PlugIns")
|
||||||
set(DATA_INSTALL_DIR "${PROGNAME}.app/Contents/Resources")
|
set(DATA_INSTALL_DIR "${PROGNAME}.app/Contents/Resources")
|
||||||
else()
|
else()
|
||||||
include(GNUInstallDirs)
|
include(GNUInstallDirs)
|
||||||
|
|
||||||
set(CLI_INSTALL_DIR "${CMAKE_INSTALL_BINDIR}")
|
set(CLI_INSTALL_DIR "${CMAKE_INSTALL_BINDIR}")
|
||||||
set(PROXY_INSTALL_DIR "${CMAKE_INSTALL_BINDIR}")
|
set(PROXY_INSTALL_DIR "${CMAKE_INSTALL_BINDIR}")
|
||||||
set(BIN_INSTALL_DIR "${CMAKE_INSTALL_BINDIR}")
|
set(BIN_INSTALL_DIR "${CMAKE_INSTALL_BINDIR}")
|
||||||
set(PLUGIN_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/keepassxc")
|
set(PLUGIN_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/keepassxc")
|
||||||
set(DATA_INSTALL_DIR "${CMAKE_INSTALL_DATADIR}/keepassxc")
|
set(DATA_INSTALL_DIR "${CMAKE_INSTALL_DATADIR}/keepassxc")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_TESTS)
|
if(WITH_TESTS)
|
||||||
enable_testing()
|
enable_testing()
|
||||||
endif(WITH_TESTS)
|
endif(WITH_TESTS)
|
||||||
|
|
||||||
if(WITH_COVERAGE)
|
if(WITH_COVERAGE)
|
||||||
# Include code coverage, use with -DCMAKE_BUILD_TYPE=Debug
|
# Include code coverage, use with -DCMAKE_BUILD_TYPE=Debug
|
||||||
include(CodeCoverage)
|
include(CodeCoverage)
|
||||||
set(COVERAGE_GCOVR_EXCLUDES
|
set(COVERAGE_GCOVR_EXCLUDES
|
||||||
"\\(.+/\\)?tests/.\\*"
|
"\\(.+/\\)?tests/.\\*"
|
||||||
".\\*/moc_\\[^/\\]+\\.cpp"
|
".\\*/moc_\\[^/\\]+\\.cpp"
|
||||||
".\\*/ui_\\[^/\\]+\\.h"
|
".\\*/ui_\\[^/\\]+\\.h"
|
||||||
"\\(.+/\\)?zxcvbn/.\\*")
|
"\\(.+/\\)?zxcvbn/.\\*")
|
||||||
append_coverage_compiler_flags()
|
append_coverage_compiler_flags()
|
||||||
setup_target_for_coverage_gcovr_html(
|
setup_target_for_coverage_gcovr_html(
|
||||||
NAME coverage
|
NAME coverage
|
||||||
EXECUTABLE $(MAKE) && $(MAKE) test
|
EXECUTABLE $(MAKE) && $(MAKE) test
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
include(CLangFormat)
|
include(CLangFormat)
|
||||||
|
|
||||||
|
set(QT_COMPONENTS Core Network Concurrent Gui Svg Widgets Test LinguistTools)
|
||||||
if(UNIX AND NOT APPLE)
|
if(UNIX AND NOT APPLE)
|
||||||
find_package(Qt5 COMPONENTS Core Network Concurrent Gui Svg Widgets Test LinguistTools DBus REQUIRED)
|
find_package(Qt5 COMPONENTS ${QT_COMPONENTS} DBus REQUIRED)
|
||||||
elseif(APPLE)
|
elseif(APPLE)
|
||||||
find_package(Qt5 COMPONENTS Core Network Concurrent Gui Svg Widgets Test LinguistTools REQUIRED
|
find_package(Qt5 COMPONENTS ${QT_COMPONENTS} REQUIRED HINTS /usr/local/Cellar/qt/*/lib/cmake ENV PATH)
|
||||||
HINTS /usr/local/Cellar/qt/*/lib/cmake ENV PATH
|
find_package(Qt5 COMPONENTS MacExtras HINTS /usr/local/Cellar/qt/*/lib/cmake ENV PATH)
|
||||||
)
|
|
||||||
find_package(Qt5 COMPONENTS MacExtras
|
|
||||||
HINTS /usr/local/Cellar/qt/*/lib/cmake ENV PATH
|
|
||||||
)
|
|
||||||
else()
|
else()
|
||||||
find_package(Qt5 COMPONENTS Core Network Concurrent Gui Svg Widgets Test LinguistTools REQUIRED)
|
find_package(Qt5 COMPONENTS ${QT_COMPONENTS} REQUIRED)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(Qt5Core_VERSION VERSION_LESS "5.2.0")
|
if(Qt5Core_VERSION VERSION_LESS "5.2.0")
|
||||||
message(FATAL_ERROR "Qt version 5.2.0 or higher is required")
|
message(FATAL_ERROR "Qt version 5.2.0 or higher is required")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
get_filename_component(Qt5_PREFIX ${Qt5_DIR}/../../.. REALPATH)
|
get_filename_component(Qt5_PREFIX ${Qt5_DIR}/../../.. REALPATH)
|
||||||
@ -329,13 +326,13 @@ set(CMAKE_AUTOUIC ON)
|
|||||||
set(CMAKE_AUTORCC ON)
|
set(CMAKE_AUTORCC ON)
|
||||||
|
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
set(CMAKE_MACOSX_RPATH TRUE)
|
set(CMAKE_MACOSX_RPATH TRUE)
|
||||||
find_program(MACDEPLOYQT_EXE macdeployqt HINTS ${Qt5_PREFIX}/bin ENV PATH)
|
find_program(MACDEPLOYQT_EXE macdeployqt HINTS ${Qt5_PREFIX}/bin ENV PATH)
|
||||||
if(NOT MACDEPLOYQT_EXE)
|
if(NOT MACDEPLOYQT_EXE)
|
||||||
message(FATAL_ERROR "macdeployqt is required to build in macOS")
|
message(FATAL_ERROR "macdeployqt is required to build in macOS")
|
||||||
else()
|
else()
|
||||||
message(STATUS "Using macdeployqt: ${MACDEPLOYQT_EXE}")
|
message(STATUS "Using macdeployqt: ${MACDEPLOYQT_EXE}")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Debian sets the the build type to None for package builds.
|
# Debian sets the the build type to None for package builds.
|
||||||
@ -351,24 +348,24 @@ find_package(QREncode REQUIRED)
|
|||||||
set(CMAKE_REQUIRED_INCLUDES ${ZLIB_INCLUDE_DIR})
|
set(CMAKE_REQUIRED_INCLUDES ${ZLIB_INCLUDE_DIR})
|
||||||
|
|
||||||
if(ZLIB_VERSION_STRING VERSION_LESS "1.2.0")
|
if(ZLIB_VERSION_STRING VERSION_LESS "1.2.0")
|
||||||
message(FATAL_ERROR "zlib 1.2.0 or higher is required to use the gzip format")
|
message(FATAL_ERROR "zlib 1.2.0 or higher is required to use the gzip format")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
include_directories(SYSTEM ${ARGON2_INCLUDE_DIR})
|
include_directories(SYSTEM ${ARGON2_INCLUDE_DIR})
|
||||||
|
|
||||||
# Optional
|
# Optional
|
||||||
if(WITH_XC_YUBIKEY)
|
if(WITH_XC_YUBIKEY)
|
||||||
find_package(YubiKey REQUIRED)
|
find_package(YubiKey REQUIRED)
|
||||||
|
|
||||||
include_directories(SYSTEM ${YUBIKEY_INCLUDE_DIRS})
|
include_directories(SYSTEM ${YUBIKEY_INCLUDE_DIRS})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(UNIX)
|
if(UNIX)
|
||||||
check_cxx_source_compiles("#include <sys/prctl.h>
|
check_cxx_source_compiles("#include <sys/prctl.h>
|
||||||
int main() { prctl(PR_SET_DUMPABLE, 0); return 0; }"
|
int main() { prctl(PR_SET_DUMPABLE, 0); return 0; }"
|
||||||
HAVE_PR_SET_DUMPABLE)
|
HAVE_PR_SET_DUMPABLE)
|
||||||
|
|
||||||
check_cxx_source_compiles("#include <sys/resource.h>
|
check_cxx_source_compiles("#include <sys/resource.h>
|
||||||
int main() {
|
int main() {
|
||||||
struct rlimit limit;
|
struct rlimit limit;
|
||||||
limit.rlim_cur = 0;
|
limit.rlim_cur = 0;
|
||||||
@ -377,12 +374,12 @@ if(UNIX)
|
|||||||
return 0;
|
return 0;
|
||||||
}" HAVE_RLIMIT_CORE)
|
}" HAVE_RLIMIT_CORE)
|
||||||
|
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
check_cxx_source_compiles("#include <sys/types.h>
|
check_cxx_source_compiles("#include <sys/types.h>
|
||||||
#include <sys/ptrace.h>
|
#include <sys/ptrace.h>
|
||||||
int main() { ptrace(PT_DENY_ATTACH, 0, 0, 0); return 0; }"
|
int main() { ptrace(PT_DENY_ATTACH, 0, 0, 0); return 0; }"
|
||||||
HAVE_PT_DENY_ATTACH)
|
HAVE_PT_DENY_ATTACH)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
include_directories(SYSTEM ${GCRYPT_INCLUDE_DIR} ${ZLIB_INCLUDE_DIR})
|
include_directories(SYSTEM ${GCRYPT_INCLUDE_DIR} ${ZLIB_INCLUDE_DIR})
|
||||||
@ -392,14 +389,14 @@ include(FeatureSummary)
|
|||||||
add_subdirectory(src)
|
add_subdirectory(src)
|
||||||
add_subdirectory(share)
|
add_subdirectory(share)
|
||||||
if(WITH_TESTS)
|
if(WITH_TESTS)
|
||||||
add_subdirectory(tests)
|
add_subdirectory(tests)
|
||||||
endif(WITH_TESTS)
|
endif(WITH_TESTS)
|
||||||
|
|
||||||
if(PRINT_SUMMARY)
|
if(PRINT_SUMMARY)
|
||||||
# This will print ENABLED, REQUIRED and DISABLED
|
# This will print ENABLED, REQUIRED and DISABLED
|
||||||
feature_summary(WHAT ALL)
|
feature_summary(WHAT ALL)
|
||||||
else()
|
else()
|
||||||
# This will only print ENABLED and DISABLED feature
|
# This will only print ENABLED and DISABLED feature
|
||||||
feature_summary(WHAT ENABLED_FEATURES DESCRIPTION "Enabled features:")
|
feature_summary(WHAT ENABLED_FEATURES DESCRIPTION "Enabled features:")
|
||||||
feature_summary(WHAT DISABLED_FEATURES DESCRIPTION "Disabled features:")
|
feature_summary(WHAT DISABLED_FEATURES DESCRIPTION "Disabled features:")
|
||||||
endif()
|
endif()
|
||||||
|
@ -14,45 +14,43 @@
|
|||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
set(EXCLUDED_DIRS
|
set(EXCLUDED_DIRS
|
||||||
# third-party directories
|
# third-party directories
|
||||||
zxcvbn/
|
zxcvbn/
|
||||||
streams/QtIOCompressor
|
streams/QtIOCompressor
|
||||||
# objective-c directories
|
# objective-c directories
|
||||||
autotype/mac
|
autotype/mac)
|
||||||
)
|
|
||||||
|
|
||||||
set(EXCLUDED_FILES
|
set(EXCLUDED_FILES
|
||||||
# third-party files
|
# third-party files
|
||||||
streams/qtiocompressor.cpp
|
streams/qtiocompressor.cpp
|
||||||
streams/qtiocompressor.h
|
streams/qtiocompressor.h
|
||||||
gui/KMessageWidget.h
|
gui/KMessageWidget.h
|
||||||
gui/KMessageWidget.cpp
|
gui/KMessageWidget.cpp
|
||||||
gui/MainWindowAdaptor.h
|
gui/MainWindowAdaptor.h
|
||||||
gui/MainWindowAdaptor.cpp
|
gui/MainWindowAdaptor.cpp
|
||||||
sshagent/bcrypt_pbkdf.cpp
|
sshagent/bcrypt_pbkdf.cpp
|
||||||
sshagent/blf.h
|
sshagent/blf.h
|
||||||
sshagent/blowfish.c
|
sshagent/blowfish.c
|
||||||
tests/modeltest.cpp
|
tests/modeltest.cpp
|
||||||
tests/modeltest.h
|
tests/modeltest.h
|
||||||
# objective-c files
|
# objective-c files
|
||||||
core/ScreenLockListenerMac.h
|
core/ScreenLockListenerMac.h
|
||||||
core/ScreenLockListenerMac.cpp
|
core/ScreenLockListenerMac.cpp)
|
||||||
)
|
|
||||||
|
|
||||||
file(GLOB_RECURSE ALL_SOURCE_FILES *.cpp *.h)
|
file(GLOB_RECURSE ALL_SOURCE_FILES *.cpp *.h)
|
||||||
foreach (SOURCE_FILE ${ALL_SOURCE_FILES})
|
foreach(SOURCE_FILE ${ALL_SOURCE_FILES})
|
||||||
foreach (EXCLUDED_DIR ${EXCLUDED_DIRS})
|
foreach(EXCLUDED_DIR ${EXCLUDED_DIRS})
|
||||||
string(FIND ${SOURCE_FILE} ${EXCLUDED_DIR} SOURCE_FILE_EXCLUDED)
|
string(FIND ${SOURCE_FILE} ${EXCLUDED_DIR} SOURCE_FILE_EXCLUDED)
|
||||||
if (NOT ${SOURCE_FILE_EXCLUDED} EQUAL -1)
|
if(NOT ${SOURCE_FILE_EXCLUDED} EQUAL -1)
|
||||||
list(REMOVE_ITEM ALL_SOURCE_FILES ${SOURCE_FILE})
|
list(REMOVE_ITEM ALL_SOURCE_FILES ${SOURCE_FILE})
|
||||||
endif ()
|
endif()
|
||||||
endforeach ()
|
endforeach()
|
||||||
foreach (EXCLUDED_FILE ${EXCLUDED_FILES})
|
foreach(EXCLUDED_FILE ${EXCLUDED_FILES})
|
||||||
if (${SOURCE_FILE} MATCHES ".*${EXCLUDED_FILE}$")
|
if(${SOURCE_FILE} MATCHES ".*${EXCLUDED_FILE}$")
|
||||||
list(REMOVE_ITEM ALL_SOURCE_FILES ${SOURCE_FILE})
|
list(REMOVE_ITEM ALL_SOURCE_FILES ${SOURCE_FILE})
|
||||||
endif ()
|
endif()
|
||||||
endforeach ()
|
endforeach()
|
||||||
endforeach ()
|
endforeach()
|
||||||
|
|
||||||
add_custom_target(
|
add_custom_target(
|
||||||
format
|
format
|
||||||
|
@ -14,21 +14,21 @@
|
|||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
find_path(ARGON2_INCLUDE_DIR argon2.h)
|
find_path(ARGON2_INCLUDE_DIR argon2.h)
|
||||||
if (MINGW)
|
if(MINGW)
|
||||||
# find static library on Windows, and redefine used symbols to
|
# find static library on Windows, and redefine used symbols to
|
||||||
# avoid definition name conflicts with libsodium
|
# avoid definition name conflicts with libsodium
|
||||||
find_library(ARGON2_SYS_LIBRARIES libargon2.a)
|
find_library(ARGON2_SYS_LIBRARIES libargon2.a)
|
||||||
message(STATUS "Patching libargon2...\n")
|
message(STATUS "Patching libargon2...\n")
|
||||||
execute_process(COMMAND objcopy
|
execute_process(COMMAND objcopy
|
||||||
--redefine-sym argon2_hash=libargon2_argon2_hash
|
--redefine-sym argon2_hash=libargon2_argon2_hash
|
||||||
--redefine-sym _argon2_hash=_libargon2_argon2_hash
|
--redefine-sym _argon2_hash=_libargon2_argon2_hash
|
||||||
--redefine-sym argon2_error_message=libargon2_argon2_error_message
|
--redefine-sym argon2_error_message=libargon2_argon2_error_message
|
||||||
--redefine-sym _argon2_error_message=_libargon2_argon2_error_message
|
--redefine-sym _argon2_error_message=_libargon2_argon2_error_message
|
||||||
${ARGON2_SYS_LIBRARIES} ${CMAKE_BINARY_DIR}/libargon2_patched.a
|
${ARGON2_SYS_LIBRARIES} ${CMAKE_BINARY_DIR}/libargon2_patched.a
|
||||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
|
||||||
find_library(ARGON2_LIBRARIES libargon2_patched.a PATHS ${CMAKE_BINARY_DIR} NO_DEFAULT_PATH)
|
find_library(ARGON2_LIBRARIES libargon2_patched.a PATHS ${CMAKE_BINARY_DIR} NO_DEFAULT_PATH)
|
||||||
else()
|
else()
|
||||||
find_library(ARGON2_LIBRARIES argon2)
|
find_library(ARGON2_LIBRARIES argon2)
|
||||||
endif()
|
endif()
|
||||||
mark_as_advanced(ARGON2_LIBRARIES ARGON2_INCLUDE_DIR)
|
mark_as_advanced(ARGON2_LIBRARIES ARGON2_INCLUDE_DIR)
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ mark_as_advanced(GCRYPT_LIBRARIES GCRYPT_INCLUDE_DIR)
|
|||||||
if(GCRYPT_INCLUDE_DIR AND EXISTS "${GCRYPT_INCLUDE_DIR}/gcrypt.h")
|
if(GCRYPT_INCLUDE_DIR AND EXISTS "${GCRYPT_INCLUDE_DIR}/gcrypt.h")
|
||||||
file(STRINGS "${GCRYPT_INCLUDE_DIR}/gcrypt.h" GCRYPT_H REGEX "^#define GCRYPT_VERSION \"[^\"]*\"$")
|
file(STRINGS "${GCRYPT_INCLUDE_DIR}/gcrypt.h" GCRYPT_H REGEX "^#define GCRYPT_VERSION \"[^\"]*\"$")
|
||||||
string(REGEX REPLACE "^.*GCRYPT_VERSION \"([0-9]+).*$" "\\1" GCRYPT_VERSION_MAJOR "${GCRYPT_H}")
|
string(REGEX REPLACE "^.*GCRYPT_VERSION \"([0-9]+).*$" "\\1" GCRYPT_VERSION_MAJOR "${GCRYPT_H}")
|
||||||
string(REGEX REPLACE "^.*GCRYPT_VERSION \"[0-9]+\\.([0-9]+).*$" "\\1" GCRYPT_VERSION_MINOR "${GCRYPT_H}")
|
string(REGEX REPLACE "^.*GCRYPT_VERSION \"[0-9]+\\.([0-9]+).*$" "\\1" GCRYPT_VERSION_MINOR "${GCRYPT_H}")
|
||||||
string(REGEX REPLACE "^.*GCRYPT_VERSION \"[0-9]+\\.[0-9]+\\.([0-9]+).*$" "\\1" GCRYPT_VERSION_PATCH "${GCRYPT_H}")
|
string(REGEX REPLACE "^.*GCRYPT_VERSION \"[0-9]+\\.[0-9]+\\.([0-9]+).*$" "\\1" GCRYPT_VERSION_PATCH "${GCRYPT_H}")
|
||||||
set(GCRYPT_VERSION_STRING "${GCRYPT_VERSION_MAJOR}.${GCRYPT_VERSION_MINOR}.${GCRYPT_VERSION_PATCH}")
|
set(GCRYPT_VERSION_STRING "${GCRYPT_VERSION_MAJOR}.${GCRYPT_VERSION_MINOR}.${GCRYPT_VERSION_PATCH}")
|
||||||
endif()
|
endif()
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (C) 2017 KeePassXC Team <team@keepassxc.org>
|
# Copyright (C) 2018 KeePassXC Team <team@keepassxc.org>
|
||||||
# Copyright (C) 2010 Felix Geyer <debfx@fobos.de>
|
# Copyright (C) 2010 Felix Geyer <debfx@fobos.de>
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
@ -22,193 +22,191 @@ include(GetGitRevisionDescription)
|
|||||||
get_git_head_revision(GIT_REFSPEC GIT_HEAD)
|
get_git_head_revision(GIT_REFSPEC GIT_HEAD)
|
||||||
git_describe(GIT_DESCRIBE --long)
|
git_describe(GIT_DESCRIBE --long)
|
||||||
|
|
||||||
if (NOT GIT_HEAD OR NOT GIT_DESCRIBE)
|
if(NOT GIT_HEAD OR NOT GIT_DESCRIBE)
|
||||||
set(GIT_HEAD "")
|
set(GIT_HEAD "")
|
||||||
set(GIT_DESCRIBE "")
|
set(GIT_DESCRIBE "")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
find_library(ZXCVBN_LIBRARIES zxcvbn)
|
find_library(ZXCVBN_LIBRARIES zxcvbn)
|
||||||
if(NOT ZXCVBN_LIBRARIES)
|
if(NOT ZXCVBN_LIBRARIES)
|
||||||
add_library(zxcvbn STATIC zxcvbn/zxcvbn.c)
|
add_library(zxcvbn STATIC zxcvbn/zxcvbn.c)
|
||||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/zxcvbn)
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/zxcvbn)
|
||||||
set(ZXCVBN_LIBRARIES zxcvbn)
|
set(ZXCVBN_LIBRARIES zxcvbn)
|
||||||
endif(NOT ZXCVBN_LIBRARIES)
|
endif(NOT ZXCVBN_LIBRARIES)
|
||||||
|
|
||||||
configure_file(version.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/version.h @ONLY)
|
configure_file(version.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/version.h @ONLY)
|
||||||
|
|
||||||
set(keepassx_SOURCES
|
set(keepassx_SOURCES
|
||||||
core/AutoTypeAssociations.cpp
|
core/AutoTypeAssociations.cpp
|
||||||
core/AsyncTask.h
|
core/AsyncTask.h
|
||||||
core/AutoTypeMatch.cpp
|
core/AutoTypeMatch.cpp
|
||||||
core/Compare.cpp
|
core/Compare.cpp
|
||||||
core/Config.cpp
|
core/Config.cpp
|
||||||
core/CsvParser.cpp
|
core/CsvParser.cpp
|
||||||
core/CustomData.cpp
|
core/CustomData.cpp
|
||||||
core/Database.cpp
|
core/Database.cpp
|
||||||
core/DatabaseIcons.cpp
|
core/DatabaseIcons.cpp
|
||||||
core/Entry.cpp
|
core/Entry.cpp
|
||||||
core/EntryAttachments.cpp
|
core/EntryAttachments.cpp
|
||||||
core/EntryAttributes.cpp
|
core/EntryAttributes.cpp
|
||||||
core/EntrySearcher.cpp
|
core/EntrySearcher.cpp
|
||||||
core/FilePath.cpp
|
core/FilePath.cpp
|
||||||
core/Bootstrap.cpp
|
core/Bootstrap.cpp
|
||||||
core/Global.h
|
core/Global.h
|
||||||
core/Group.cpp
|
core/Group.cpp
|
||||||
core/InactivityTimer.cpp
|
core/InactivityTimer.cpp
|
||||||
core/ListDeleter.h
|
core/ListDeleter.h
|
||||||
core/Merger.cpp
|
core/Merger.cpp
|
||||||
core/Metadata.cpp
|
core/Metadata.cpp
|
||||||
core/PasswordGenerator.cpp
|
core/PasswordGenerator.cpp
|
||||||
core/PassphraseGenerator.cpp
|
core/PassphraseGenerator.cpp
|
||||||
core/SignalMultiplexer.cpp
|
core/SignalMultiplexer.cpp
|
||||||
core/ScreenLockListener.cpp
|
core/ScreenLockListener.cpp
|
||||||
core/ScreenLockListener.h
|
core/ScreenLockListener.h
|
||||||
core/ScreenLockListenerPrivate.h
|
core/ScreenLockListenerPrivate.h
|
||||||
core/ScreenLockListenerPrivate.cpp
|
core/ScreenLockListenerPrivate.cpp
|
||||||
core/TimeDelta.cpp
|
core/TimeDelta.cpp
|
||||||
core/TimeInfo.cpp
|
core/TimeInfo.cpp
|
||||||
core/Clock.cpp
|
core/Clock.cpp
|
||||||
core/Tools.cpp
|
core/Tools.cpp
|
||||||
core/Translator.cpp
|
core/Translator.cpp
|
||||||
core/Base32.h
|
core/Base32.h
|
||||||
core/Base32.cpp
|
core/Base32.cpp
|
||||||
cli/Utils.cpp
|
cli/Utils.cpp
|
||||||
cli/Utils.h
|
cli/Utils.h
|
||||||
crypto/Crypto.cpp
|
crypto/Crypto.cpp
|
||||||
crypto/CryptoHash.cpp
|
crypto/CryptoHash.cpp
|
||||||
crypto/Random.cpp
|
crypto/Random.cpp
|
||||||
crypto/SymmetricCipher.cpp
|
crypto/SymmetricCipher.cpp
|
||||||
crypto/SymmetricCipherBackend.h
|
crypto/SymmetricCipherBackend.h
|
||||||
crypto/SymmetricCipherGcrypt.cpp
|
crypto/SymmetricCipherGcrypt.cpp
|
||||||
crypto/kdf/Kdf.cpp
|
crypto/kdf/Kdf.cpp
|
||||||
crypto/kdf/Kdf_p.h
|
crypto/kdf/Kdf_p.h
|
||||||
crypto/kdf/AesKdf.cpp
|
crypto/kdf/AesKdf.cpp
|
||||||
crypto/kdf/Argon2Kdf.cpp
|
crypto/kdf/Argon2Kdf.cpp
|
||||||
format/CsvExporter.cpp
|
format/CsvExporter.cpp
|
||||||
format/KeePass1.h
|
format/KeePass1.h
|
||||||
format/KeePass1Reader.cpp
|
format/KeePass1Reader.cpp
|
||||||
format/KeePass2.cpp
|
format/KeePass2.cpp
|
||||||
format/KeePass2RandomStream.cpp
|
format/KeePass2RandomStream.cpp
|
||||||
format/KdbxReader.cpp
|
format/KdbxReader.cpp
|
||||||
format/KdbxWriter.cpp
|
format/KdbxWriter.cpp
|
||||||
format/KdbxXmlReader.cpp
|
format/KdbxXmlReader.cpp
|
||||||
format/KeePass2Reader.cpp
|
format/KeePass2Reader.cpp
|
||||||
format/KeePass2Writer.cpp
|
format/KeePass2Writer.cpp
|
||||||
format/Kdbx3Reader.cpp
|
format/Kdbx3Reader.cpp
|
||||||
format/Kdbx3Writer.cpp
|
format/Kdbx3Writer.cpp
|
||||||
format/Kdbx4Reader.cpp
|
format/Kdbx4Reader.cpp
|
||||||
format/Kdbx4Writer.cpp
|
format/Kdbx4Writer.cpp
|
||||||
format/KdbxXmlWriter.cpp
|
format/KdbxXmlWriter.cpp
|
||||||
gui/AboutDialog.cpp
|
gui/AboutDialog.cpp
|
||||||
gui/Application.cpp
|
gui/Application.cpp
|
||||||
gui/CategoryListWidget.cpp
|
gui/CategoryListWidget.cpp
|
||||||
gui/Clipboard.cpp
|
gui/Clipboard.cpp
|
||||||
gui/CloneDialog.cpp
|
gui/CloneDialog.cpp
|
||||||
gui/DatabaseOpenWidget.cpp
|
gui/DatabaseOpenWidget.cpp
|
||||||
gui/DatabaseTabWidget.cpp
|
gui/DatabaseTabWidget.cpp
|
||||||
gui/DatabaseWidget.cpp
|
gui/DatabaseWidget.cpp
|
||||||
gui/DatabaseWidgetStateSync.cpp
|
gui/DatabaseWidgetStateSync.cpp
|
||||||
gui/EntryPreviewWidget.cpp
|
gui/EntryPreviewWidget.cpp
|
||||||
gui/DialogyWidget.cpp
|
gui/DialogyWidget.cpp
|
||||||
gui/DragTabBar.cpp
|
gui/DragTabBar.cpp
|
||||||
gui/EditWidget.cpp
|
gui/EditWidget.cpp
|
||||||
gui/EditWidgetIcons.cpp
|
gui/EditWidgetIcons.cpp
|
||||||
gui/EditWidgetProperties.cpp
|
gui/EditWidgetProperties.cpp
|
||||||
gui/FileDialog.cpp
|
gui/FileDialog.cpp
|
||||||
gui/Font.cpp
|
gui/Font.cpp
|
||||||
gui/IconModels.cpp
|
gui/IconModels.cpp
|
||||||
gui/KeePass1OpenWidget.cpp
|
gui/KeePass1OpenWidget.cpp
|
||||||
gui/KMessageWidget.cpp
|
gui/KMessageWidget.cpp
|
||||||
gui/LineEdit.cpp
|
gui/LineEdit.cpp
|
||||||
gui/MainWindow.cpp
|
gui/MainWindow.cpp
|
||||||
gui/MessageBox.cpp
|
gui/MessageBox.cpp
|
||||||
gui/MessageWidget.cpp
|
gui/MessageWidget.cpp
|
||||||
gui/PasswordEdit.cpp
|
gui/PasswordEdit.cpp
|
||||||
gui/PasswordGeneratorWidget.cpp
|
gui/PasswordGeneratorWidget.cpp
|
||||||
gui/ApplicationSettingsWidget.cpp
|
gui/ApplicationSettingsWidget.cpp
|
||||||
gui/SearchWidget.cpp
|
gui/SearchWidget.cpp
|
||||||
gui/SortFilterHideProxyModel.cpp
|
gui/SortFilterHideProxyModel.cpp
|
||||||
gui/SquareSvgWidget.cpp
|
gui/SquareSvgWidget.cpp
|
||||||
gui/TotpSetupDialog.cpp
|
gui/TotpSetupDialog.cpp
|
||||||
gui/TotpDialog.cpp
|
gui/TotpDialog.cpp
|
||||||
gui/TotpExportSettingsDialog.cpp
|
gui/TotpExportSettingsDialog.cpp
|
||||||
gui/UnlockDatabaseWidget.cpp
|
gui/UnlockDatabaseWidget.cpp
|
||||||
gui/UnlockDatabaseDialog.cpp
|
gui/UnlockDatabaseDialog.cpp
|
||||||
gui/WelcomeWidget.cpp
|
gui/WelcomeWidget.cpp
|
||||||
gui/widgets/ElidedLabel.cpp
|
gui/widgets/ElidedLabel.cpp
|
||||||
gui/csvImport/CsvImportWidget.cpp
|
gui/csvImport/CsvImportWidget.cpp
|
||||||
gui/csvImport/CsvImportWizard.cpp
|
gui/csvImport/CsvImportWizard.cpp
|
||||||
gui/csvImport/CsvParserModel.cpp
|
gui/csvImport/CsvParserModel.cpp
|
||||||
gui/entry/AutoTypeAssociationsModel.cpp
|
gui/entry/AutoTypeAssociationsModel.cpp
|
||||||
gui/entry/AutoTypeMatchModel.cpp
|
gui/entry/AutoTypeMatchModel.cpp
|
||||||
gui/entry/AutoTypeMatchView.cpp
|
gui/entry/AutoTypeMatchView.cpp
|
||||||
gui/entry/EditEntryWidget.cpp
|
gui/entry/EditEntryWidget.cpp
|
||||||
gui/entry/EditEntryWidget_p.h
|
gui/entry/EditEntryWidget_p.h
|
||||||
gui/entry/EntryAttachmentsModel.cpp
|
gui/entry/EntryAttachmentsModel.cpp
|
||||||
gui/entry/EntryAttachmentsWidget.cpp
|
gui/entry/EntryAttachmentsWidget.cpp
|
||||||
gui/entry/EntryAttributesModel.cpp
|
gui/entry/EntryAttributesModel.cpp
|
||||||
gui/entry/EntryHistoryModel.cpp
|
gui/entry/EntryHistoryModel.cpp
|
||||||
gui/entry/EntryModel.cpp
|
gui/entry/EntryModel.cpp
|
||||||
gui/entry/EntryView.cpp
|
gui/entry/EntryView.cpp
|
||||||
gui/group/EditGroupWidget.cpp
|
gui/group/EditGroupWidget.cpp
|
||||||
gui/group/GroupModel.cpp
|
gui/group/GroupModel.cpp
|
||||||
gui/group/GroupView.cpp
|
gui/group/GroupView.cpp
|
||||||
gui/masterkey/KeyComponentWidget.cpp
|
gui/masterkey/KeyComponentWidget.cpp
|
||||||
gui/masterkey/PasswordEditWidget.cpp
|
gui/masterkey/PasswordEditWidget.cpp
|
||||||
gui/masterkey/YubiKeyEditWidget.cpp
|
gui/masterkey/YubiKeyEditWidget.cpp
|
||||||
gui/masterkey/KeyFileEditWidget.cpp
|
gui/masterkey/KeyFileEditWidget.cpp
|
||||||
gui/dbsettings/DatabaseSettingsWidget.cpp
|
gui/dbsettings/DatabaseSettingsWidget.cpp
|
||||||
gui/dbsettings/DatabaseSettingsDialog.cpp
|
gui/dbsettings/DatabaseSettingsDialog.cpp
|
||||||
gui/dbsettings/DatabaseSettingsWidgetGeneral.cpp
|
gui/dbsettings/DatabaseSettingsWidgetGeneral.cpp
|
||||||
gui/dbsettings/DatabaseSettingsWidgetMetaDataSimple.cpp
|
gui/dbsettings/DatabaseSettingsWidgetMetaDataSimple.cpp
|
||||||
gui/dbsettings/DatabaseSettingsWidgetEncryption.cpp
|
gui/dbsettings/DatabaseSettingsWidgetEncryption.cpp
|
||||||
gui/dbsettings/DatabaseSettingsWidgetMasterKey.cpp
|
gui/dbsettings/DatabaseSettingsWidgetMasterKey.cpp
|
||||||
gui/settings/SettingsWidget.cpp
|
gui/settings/SettingsWidget.cpp
|
||||||
gui/wizard/NewDatabaseWizard.cpp
|
gui/wizard/NewDatabaseWizard.cpp
|
||||||
gui/wizard/NewDatabaseWizardPage.cpp
|
gui/wizard/NewDatabaseWizardPage.cpp
|
||||||
gui/wizard/NewDatabaseWizardPageMetaData.cpp
|
gui/wizard/NewDatabaseWizardPageMetaData.cpp
|
||||||
gui/wizard/NewDatabaseWizardPageEncryption.cpp
|
gui/wizard/NewDatabaseWizardPageEncryption.cpp
|
||||||
gui/wizard/NewDatabaseWizardPageMasterKey.cpp
|
gui/wizard/NewDatabaseWizardPageMasterKey.cpp
|
||||||
keys/ChallengeResponseKey.h
|
keys/ChallengeResponseKey.h
|
||||||
keys/CompositeKey.cpp
|
keys/CompositeKey.cpp
|
||||||
keys/drivers/YubiKey.h
|
keys/drivers/YubiKey.h
|
||||||
keys/FileKey.cpp
|
keys/FileKey.cpp
|
||||||
keys/Key.h
|
keys/Key.h
|
||||||
keys/PasswordKey.cpp
|
keys/PasswordKey.cpp
|
||||||
keys/YkChallengeResponseKey.cpp
|
keys/YkChallengeResponseKey.cpp
|
||||||
streams/HashedBlockStream.cpp
|
streams/HashedBlockStream.cpp
|
||||||
streams/HmacBlockStream.cpp
|
streams/HmacBlockStream.cpp
|
||||||
streams/LayeredStream.cpp
|
streams/LayeredStream.cpp
|
||||||
streams/qtiocompressor.cpp
|
streams/qtiocompressor.cpp
|
||||||
streams/StoreDataStream.cpp
|
streams/StoreDataStream.cpp
|
||||||
streams/SymmetricCipherStream.cpp
|
streams/SymmetricCipherStream.cpp
|
||||||
totp/totp.h
|
totp/totp.h
|
||||||
totp/totp.cpp)
|
totp/totp.cpp)
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
set(keepassx_SOURCES ${keepassx_SOURCES}
|
set(keepassx_SOURCES
|
||||||
core/ScreenLockListenerMac.h
|
${keepassx_SOURCES}
|
||||||
core/ScreenLockListenerMac.cpp
|
core/ScreenLockListenerMac.h
|
||||||
core/MacPasteboard.h
|
core/ScreenLockListenerMac.cpp
|
||||||
core/MacPasteboard.cpp
|
core/MacPasteboard.h
|
||||||
)
|
core/MacPasteboard.cpp)
|
||||||
endif()
|
endif()
|
||||||
if(UNIX AND NOT APPLE)
|
if(UNIX AND NOT APPLE)
|
||||||
set(keepassx_SOURCES ${keepassx_SOURCES}
|
set(keepassx_SOURCES
|
||||||
core/ScreenLockListenerDBus.h
|
${keepassx_SOURCES}
|
||||||
core/ScreenLockListenerDBus.cpp
|
core/ScreenLockListenerDBus.h
|
||||||
gui/MainWindowAdaptor.cpp
|
core/ScreenLockListenerDBus.cpp
|
||||||
)
|
gui/MainWindowAdaptor.cpp)
|
||||||
endif()
|
endif()
|
||||||
if(MINGW)
|
if(MINGW)
|
||||||
set(keepassx_SOURCES ${keepassx_SOURCES}
|
set(keepassx_SOURCES
|
||||||
core/ScreenLockListenerWin.h
|
${keepassx_SOURCES}
|
||||||
core/ScreenLockListenerWin.cpp
|
core/ScreenLockListenerWin.h
|
||||||
)
|
core/ScreenLockListenerWin.cpp)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(keepassx_SOURCES_MAINEXE
|
set(keepassx_SOURCES_MAINEXE main.cpp)
|
||||||
main.cpp
|
|
||||||
)
|
|
||||||
|
|
||||||
add_feature_info(Auto-Type WITH_XC_AUTOTYPE "Automatic password typing")
|
add_feature_info(Auto-Type WITH_XC_AUTOTYPE "Automatic password typing")
|
||||||
add_feature_info(Networking WITH_XC_NETWORKING "Compile KeePassXC with network access code (e.g. for downloading website icons)")
|
add_feature_info(Networking WITH_XC_NETWORKING "Compile KeePassXC with network access code (e.g. for downloading website icons)")
|
||||||
@ -237,32 +235,29 @@ if(WITH_XC_SSHAGENT)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(autotype_SOURCES
|
set(autotype_SOURCES
|
||||||
core/Tools.cpp
|
core/Tools.cpp
|
||||||
autotype/AutoType.cpp
|
autotype/AutoType.cpp
|
||||||
autotype/AutoTypeAction.cpp
|
autotype/AutoTypeAction.cpp
|
||||||
autotype/AutoTypePlatformPlugin.h
|
autotype/AutoTypePlatformPlugin.h
|
||||||
autotype/AutoTypeSelectDialog.cpp
|
autotype/AutoTypeSelectDialog.cpp
|
||||||
autotype/AutoTypeSelectView.cpp
|
autotype/AutoTypeSelectView.cpp
|
||||||
autotype/ShortcutWidget.cpp
|
autotype/ShortcutWidget.cpp
|
||||||
autotype/WildcardMatcher.cpp
|
autotype/WildcardMatcher.cpp
|
||||||
autotype/WindowSelectComboBox.cpp
|
autotype/WindowSelectComboBox.cpp
|
||||||
autotype/test/AutoTypeTestInterface.h
|
autotype/test/AutoTypeTestInterface.h)
|
||||||
)
|
|
||||||
|
|
||||||
if(MINGW)
|
if(MINGW)
|
||||||
set(keepassx_SOURCES_MAINEXE
|
set(keepassx_SOURCES_MAINEXE ${keepassx_SOURCES_MAINEXE} ${CMAKE_SOURCE_DIR}/share/windows/icon.rc)
|
||||||
${keepassx_SOURCES_MAINEXE}
|
|
||||||
${CMAKE_SOURCE_DIR}/share/windows/icon.rc)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_XC_YUBIKEY)
|
if(WITH_XC_YUBIKEY)
|
||||||
list(APPEND keepassx_SOURCES keys/drivers/YubiKey.cpp)
|
list(APPEND keepassx_SOURCES keys/drivers/YubiKey.cpp)
|
||||||
else()
|
else()
|
||||||
list(APPEND keepassx_SOURCES keys/drivers/YubiKeyStub.cpp)
|
list(APPEND keepassx_SOURCES keys/drivers/YubiKeyStub.cpp)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_XC_TOUCHID)
|
if(WITH_XC_TOUCHID)
|
||||||
list(APPEND keepassx_SOURCES touchid/TouchID.mm)
|
list(APPEND keepassx_SOURCES touchid/TouchID.mm)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_library(autotype STATIC ${autotype_SOURCES})
|
add_library(autotype STATIC ${autotype_SOURCES})
|
||||||
@ -272,35 +267,35 @@ add_library(keepassx_core STATIC ${keepassx_SOURCES})
|
|||||||
|
|
||||||
set_target_properties(keepassx_core PROPERTIES COMPILE_DEFINITIONS KEEPASSX_BUILDING_CORE)
|
set_target_properties(keepassx_core PROPERTIES COMPILE_DEFINITIONS KEEPASSX_BUILDING_CORE)
|
||||||
target_link_libraries(keepassx_core
|
target_link_libraries(keepassx_core
|
||||||
autotype
|
autotype
|
||||||
${keepassxcbrowser_LIB}
|
${keepassxcbrowser_LIB}
|
||||||
${sshagent_LIB}
|
${sshagent_LIB}
|
||||||
${qrcode_LIB}
|
${qrcode_LIB}
|
||||||
Qt5::Core
|
Qt5::Core
|
||||||
Qt5::Concurrent
|
Qt5::Concurrent
|
||||||
Qt5::Network
|
Qt5::Network
|
||||||
Qt5::Widgets
|
Qt5::Widgets
|
||||||
${CURL_LIBRARIES}
|
${CURL_LIBRARIES}
|
||||||
${YUBIKEY_LIBRARIES}
|
${YUBIKEY_LIBRARIES}
|
||||||
${ZXCVBN_LIBRARIES}
|
${ZXCVBN_LIBRARIES}
|
||||||
${ARGON2_LIBRARIES}
|
${ARGON2_LIBRARIES}
|
||||||
${GCRYPT_LIBRARIES}
|
${GCRYPT_LIBRARIES}
|
||||||
${GPGERROR_LIBRARIES}
|
${GPGERROR_LIBRARIES}
|
||||||
${YUBIKEY_LIBRARIES}
|
${YUBIKEY_LIBRARIES}
|
||||||
${ZLIB_LIBRARIES}
|
${ZLIB_LIBRARIES}
|
||||||
${ZXCVBN_LIBRARIES})
|
${ZXCVBN_LIBRARIES})
|
||||||
|
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
target_link_libraries(keepassx_core "-framework Foundation")
|
target_link_libraries(keepassx_core "-framework Foundation")
|
||||||
if(Qt5MacExtras_FOUND)
|
if(Qt5MacExtras_FOUND)
|
||||||
target_link_libraries(keepassx_core Qt5::MacExtras)
|
target_link_libraries(keepassx_core Qt5::MacExtras)
|
||||||
endif()
|
endif()
|
||||||
if(WITH_XC_TOUCHID)
|
if(WITH_XC_TOUCHID)
|
||||||
target_link_libraries(keepassx_core "-framework Security")
|
target_link_libraries(keepassx_core "-framework Security")
|
||||||
target_link_libraries(keepassx_core "-framework LocalAuthentication")
|
target_link_libraries(keepassx_core "-framework LocalAuthentication")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
if (UNIX AND NOT APPLE)
|
if(UNIX AND NOT APPLE)
|
||||||
target_link_libraries(keepassx_core Qt5::DBus)
|
target_link_libraries(keepassx_core Qt5::DBus)
|
||||||
endif()
|
endif()
|
||||||
if(MINGW)
|
if(MINGW)
|
||||||
@ -308,15 +303,15 @@ if(MINGW)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(MINGW)
|
if(MINGW)
|
||||||
include(GenerateProductVersion)
|
include(GenerateProductVersion)
|
||||||
generate_product_version(
|
generate_product_version(
|
||||||
WIN32_ProductVersionFiles
|
WIN32_ProductVersionFiles
|
||||||
NAME "KeePassXC"
|
NAME "KeePassXC"
|
||||||
COMPANY_NAME "KeePassXC Team"
|
COMPANY_NAME "KeePassXC Team"
|
||||||
VERSION_MAJOR ${KEEPASSXC_VERSION_MAJOR}
|
VERSION_MAJOR ${KEEPASSXC_VERSION_MAJOR}
|
||||||
VERSION_MINOR ${KEEPASSXC_VERSION_MINOR}
|
VERSION_MINOR ${KEEPASSXC_VERSION_MINOR}
|
||||||
VERSION_PATCH ${KEEPASSXC_VERSION_PATCH}
|
VERSION_PATCH ${KEEPASSXC_VERSION_PATCH}
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_executable(${PROGNAME} WIN32 ${keepassx_SOURCES_MAINEXE} ${WIN32_ProductVersionFiles})
|
add_executable(${PROGNAME} WIN32 ${keepassx_SOURCES_MAINEXE} ${WIN32_ProductVersionFiles})
|
||||||
@ -325,116 +320,116 @@ target_link_libraries(${PROGNAME} keepassx_core)
|
|||||||
set_target_properties(${PROGNAME} PROPERTIES ENABLE_EXPORTS ON)
|
set_target_properties(${PROGNAME} PROPERTIES ENABLE_EXPORTS ON)
|
||||||
|
|
||||||
if(APPLE AND WITH_APP_BUNDLE)
|
if(APPLE AND WITH_APP_BUNDLE)
|
||||||
configure_file(${CMAKE_SOURCE_DIR}/share/macosx/Info.plist.cmake ${CMAKE_CURRENT_BINARY_DIR}/Info.plist)
|
configure_file(${CMAKE_SOURCE_DIR}/share/macosx/Info.plist.cmake ${CMAKE_CURRENT_BINARY_DIR}/Info.plist)
|
||||||
set_target_properties(${PROGNAME} PROPERTIES
|
|
||||||
MACOSX_BUNDLE ON
|
|
||||||
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_BINARY_DIR}/Info.plist)
|
|
||||||
|
|
||||||
if(WITH_XC_TOUCHID)
|
|
||||||
set_target_properties(${PROGNAME} PROPERTIES
|
set_target_properties(${PROGNAME} PROPERTIES
|
||||||
CPACK_BUNDLE_APPLE_ENTITLEMENTS "${CMAKE_SOURCE_DIR}/share/macosx/keepassxc.entitlements" )
|
MACOSX_BUNDLE ON
|
||||||
endif()
|
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_BINARY_DIR}/Info.plist)
|
||||||
|
|
||||||
if(QT_MAC_USE_COCOA AND EXISTS "${QT_LIBRARY_DIR}/Resources/qt_menu.nib")
|
if(WITH_XC_TOUCHID)
|
||||||
install(DIRECTORY "${QT_LIBRARY_DIR}/Resources/qt_menu.nib"
|
set_target_properties(${PROGNAME} PROPERTIES
|
||||||
DESTINATION "${DATA_INSTALL_DIR}")
|
CPACK_BUNDLE_APPLE_ENTITLEMENTS "${CMAKE_SOURCE_DIR}/share/macosx/keepassxc.entitlements")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(CPACK_GENERATOR "DragNDrop")
|
if(QT_MAC_USE_COCOA AND EXISTS "${QT_LIBRARY_DIR}/Resources/qt_menu.nib")
|
||||||
set(CPACK_DMG_FORMAT "UDBZ")
|
install(DIRECTORY "${QT_LIBRARY_DIR}/Resources/qt_menu.nib"
|
||||||
set(CPACK_DMG_DS_STORE "${CMAKE_SOURCE_DIR}/share/macosx/DS_Store.in")
|
DESTINATION "${DATA_INSTALL_DIR}")
|
||||||
set(CPACK_DMG_BACKGROUND_IMAGE "${CMAKE_SOURCE_DIR}/share/macosx/background.tiff")
|
endif()
|
||||||
set(CPACK_DMG_VOLUME_NAME "${PROGNAME}")
|
|
||||||
set(CPACK_SYSTEM_NAME "OSX")
|
|
||||||
set(CPACK_STRIP_FILES ON)
|
|
||||||
set(CPACK_PACKAGE_FILE_NAME "${PROGNAME}-${KEEPASSXC_VERSION}")
|
|
||||||
include(CPack)
|
|
||||||
|
|
||||||
add_custom_command(TARGET ${PROGNAME}
|
set(CPACK_GENERATOR "DragNDrop")
|
||||||
POST_BUILD
|
set(CPACK_DMG_FORMAT "UDBZ")
|
||||||
COMMAND ${MACDEPLOYQT_EXE} ${PROGNAME}.app
|
set(CPACK_DMG_DS_STORE "${CMAKE_SOURCE_DIR}/share/macosx/DS_Store.in")
|
||||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/src
|
set(CPACK_DMG_BACKGROUND_IMAGE "${CMAKE_SOURCE_DIR}/share/macosx/background.tiff")
|
||||||
COMMENT "Deploying app bundle")
|
set(CPACK_DMG_VOLUME_NAME "${PROGNAME}")
|
||||||
|
set(CPACK_SYSTEM_NAME "OSX")
|
||||||
|
set(CPACK_STRIP_FILES ON)
|
||||||
|
set(CPACK_PACKAGE_FILE_NAME "${PROGNAME}-${KEEPASSXC_VERSION}")
|
||||||
|
include(CPack)
|
||||||
|
|
||||||
|
add_custom_command(TARGET ${PROGNAME}
|
||||||
|
POST_BUILD
|
||||||
|
COMMAND ${MACDEPLOYQT_EXE} ${PROGNAME}.app
|
||||||
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/src
|
||||||
|
COMMENT "Deploying app bundle")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
install(TARGETS ${PROGNAME}
|
install(TARGETS ${PROGNAME}
|
||||||
BUNDLE DESTINATION . COMPONENT Runtime
|
BUNDLE DESTINATION . COMPONENT Runtime
|
||||||
RUNTIME DESTINATION ${BIN_INSTALL_DIR} COMPONENT Runtime)
|
RUNTIME DESTINATION ${BIN_INSTALL_DIR} COMPONENT Runtime)
|
||||||
|
|
||||||
if(MINGW)
|
if(MINGW)
|
||||||
if(${CMAKE_SIZEOF_VOID_P} EQUAL "8")
|
if(${CMAKE_SIZEOF_VOID_P} EQUAL "8")
|
||||||
set(OUTPUT_FILE_POSTFIX "Win64")
|
set(OUTPUT_FILE_POSTFIX "Win64")
|
||||||
else()
|
else()
|
||||||
set(OUTPUT_FILE_POSTFIX "Win32")
|
set(OUTPUT_FILE_POSTFIX "Win32")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# We have to copy the license file in the configuration phase.
|
# We have to copy the license file in the configuration phase.
|
||||||
# CMake checks that CPACK_RESOURCE_FILE_LICENSE actually exists and
|
# CMake checks that CPACK_RESOURCE_FILE_LICENSE actually exists and
|
||||||
# we have to copy it because WiX needs it to have a .txt extension.
|
# we have to copy it because WiX needs it to have a .txt extension.
|
||||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy
|
execute_process(COMMAND ${CMAKE_COMMAND} -E copy
|
||||||
"${CMAKE_SOURCE_DIR}/LICENSE.GPL-2"
|
"${CMAKE_SOURCE_DIR}/LICENSE.GPL-2"
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/INSTALLER_LICENSE.txt")
|
"${CMAKE_CURRENT_BINARY_DIR}/INSTALLER_LICENSE.txt")
|
||||||
|
|
||||||
string(REGEX REPLACE "-snapshot$" "" KEEPASSXC_VERSION_CLEAN ${KEEPASSXC_VERSION})
|
string(REGEX REPLACE "-snapshot$" "" KEEPASSXC_VERSION_CLEAN ${KEEPASSXC_VERSION})
|
||||||
|
|
||||||
set(CPACK_GENERATOR "ZIP;NSIS")
|
set(CPACK_GENERATOR "ZIP;NSIS")
|
||||||
set(CPACK_STRIP_FILES OFF)
|
set(CPACK_STRIP_FILES OFF)
|
||||||
set(CPACK_PACKAGE_FILE_NAME "${PROGNAME}-${KEEPASSXC_VERSION}-${OUTPUT_FILE_POSTFIX}")
|
set(CPACK_PACKAGE_FILE_NAME "${PROGNAME}-${KEEPASSXC_VERSION}-${OUTPUT_FILE_POSTFIX}")
|
||||||
set(CPACK_PACKAGE_INSTALL_DIRECTORY ${PROGNAME})
|
set(CPACK_PACKAGE_INSTALL_DIRECTORY ${PROGNAME})
|
||||||
set(CPACK_PACKAGE_VERSION ${KEEPASSXC_VERSION_CLEAN})
|
set(CPACK_PACKAGE_VERSION ${KEEPASSXC_VERSION_CLEAN})
|
||||||
set(CPACK_PACKAGE_VENDOR "${PROGNAME} Team")
|
set(CPACK_PACKAGE_VENDOR "${PROGNAME} Team")
|
||||||
string(REGEX REPLACE "/" "\\\\\\\\" CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/share/windows/installer-header.bmp")
|
string(REGEX REPLACE "/" "\\\\\\\\" CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/share/windows/installer-header.bmp")
|
||||||
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/INSTALLER_LICENSE.txt")
|
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/INSTALLER_LICENSE.txt")
|
||||||
set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON)
|
set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON)
|
||||||
set(CPACK_NSIS_MUI_ICON "${CMAKE_SOURCE_DIR}/share/windows/keepassxc.ico")
|
set(CPACK_NSIS_MUI_ICON "${CMAKE_SOURCE_DIR}/share/windows/keepassxc.ico")
|
||||||
set(CPACK_NSIS_MUI_UNIICON "${CPACK_NSIS_MUI_ICON}")
|
set(CPACK_NSIS_MUI_UNIICON "${CPACK_NSIS_MUI_ICON}")
|
||||||
set(CPACK_NSIS_INSTALLED_ICON_NAME "\\\\${PROGNAME}.exe")
|
set(CPACK_NSIS_INSTALLED_ICON_NAME "\\\\${PROGNAME}.exe")
|
||||||
string(REGEX REPLACE "/" "\\\\\\\\" CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP "${CMAKE_SOURCE_DIR}/share/windows/installer-wizard.bmp")
|
string(REGEX REPLACE "/" "\\\\\\\\" CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP "${CMAKE_SOURCE_DIR}/share/windows/installer-wizard.bmp")
|
||||||
set(CPACK_NSIS_MUI_UNWELCOMEFINISHPAGE_BITMAP "${CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP}")
|
set(CPACK_NSIS_MUI_UNWELCOMEFINISHPAGE_BITMAP "${CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP}")
|
||||||
set(CPACK_NSIS_CREATE_ICONS_EXTRA "CreateShortCut '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\${PROGNAME}.lnk' '$INSTDIR\\\\${PROGNAME}.exe'")
|
set(CPACK_NSIS_CREATE_ICONS_EXTRA "CreateShortCut '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\${PROGNAME}.lnk' '$INSTDIR\\\\${PROGNAME}.exe'")
|
||||||
set(CPACK_NSIS_DELETE_ICONS_EXTRA "Delete '$SMPROGRAMS\\\\$START_MENU\\\\${PROGNAME}.lnk'")
|
set(CPACK_NSIS_DELETE_ICONS_EXTRA "Delete '$SMPROGRAMS\\\\$START_MENU\\\\${PROGNAME}.lnk'")
|
||||||
set(CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS "ExecWait 'Taskkill /IM KeePassXC.exe'")
|
set(CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS "ExecWait 'Taskkill /IM KeePassXC.exe'")
|
||||||
set(CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS "${CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS}\nExecWait 'Taskkill /IM keepassxc-proxy.exe /F'")
|
set(CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS "${CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS}\nExecWait 'Taskkill /IM keepassxc-proxy.exe /F'")
|
||||||
set(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "ExecWait 'Taskkill /IM KeePassXC.exe'")
|
set(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "ExecWait 'Taskkill /IM KeePassXC.exe'")
|
||||||
set(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "${CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS}\nExecWait 'Taskkill /IM keepassxc-proxy.exe /F'")
|
set(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "${CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS}\nExecWait 'Taskkill /IM keepassxc-proxy.exe /F'")
|
||||||
set(CPACK_NSIS_URL_INFO_ABOUT "https://keepassxc.org")
|
set(CPACK_NSIS_URL_INFO_ABOUT "https://keepassxc.org")
|
||||||
set(CPACK_NSIS_DISPLAY_NAME ${PROGNAME})
|
set(CPACK_NSIS_DISPLAY_NAME ${PROGNAME})
|
||||||
set(CPACK_NSIS_PACKAGE_NAME "${PROGNAME} v${KEEPASSXC_VERSION}")
|
set(CPACK_NSIS_PACKAGE_NAME "${PROGNAME} v${KEEPASSXC_VERSION}")
|
||||||
set(CPACK_NSIS_MUI_FINISHPAGE_RUN "../${PROGNAME}.exe")
|
set(CPACK_NSIS_MUI_FINISHPAGE_RUN "../${PROGNAME}.exe")
|
||||||
set(CPACK_WIX_UPGRADE_GUID 88785A72-3EAE-4F29-89E3-BC6B19BA9A5B)
|
set(CPACK_WIX_UPGRADE_GUID 88785A72-3EAE-4F29-89E3-BC6B19BA9A5B)
|
||||||
set(CPACK_WIX_PRODUCT_ICON "${CMAKE_SOURCE_DIR}/share/windows/keepassxc.ico")
|
set(CPACK_WIX_PRODUCT_ICON "${CMAKE_SOURCE_DIR}/share/windows/keepassxc.ico")
|
||||||
set(CPACK_WIX_UI_BANNER "${CMAKE_SOURCE_DIR}/share/windows/wix-banner.bmp")
|
set(CPACK_WIX_UI_BANNER "${CMAKE_SOURCE_DIR}/share/windows/wix-banner.bmp")
|
||||||
set(CPACK_WIX_UI_DIALOG "${CMAKE_SOURCE_DIR}/share/windows/wix-dialog.bmp")
|
set(CPACK_WIX_UI_DIALOG "${CMAKE_SOURCE_DIR}/share/windows/wix-dialog.bmp")
|
||||||
set(CPACK_WIX_TEMPLATE "${CMAKE_SOURCE_DIR}/share/windows/wix-template.xml")
|
set(CPACK_WIX_TEMPLATE "${CMAKE_SOURCE_DIR}/share/windows/wix-template.xml")
|
||||||
set(CPACK_WIX_PATCH_FILE "${CMAKE_SOURCE_DIR}/share/windows/wix-patch.xml")
|
set(CPACK_WIX_PATCH_FILE "${CMAKE_SOURCE_DIR}/share/windows/wix-patch.xml")
|
||||||
set(CPACK_WIX_PROPERTY_ARPURLINFOABOUT "https://keepassxc.org")
|
set(CPACK_WIX_PROPERTY_ARPURLINFOABOUT "https://keepassxc.org")
|
||||||
set(CPACK_WIX_EXTENSIONS "WixUtilExtension.dll")
|
set(CPACK_WIX_EXTENSIONS "WixUtilExtension.dll")
|
||||||
include(CPack)
|
include(CPack)
|
||||||
|
|
||||||
install(CODE "
|
install(CODE "
|
||||||
set(gp_tool \"objdump\")
|
set(gp_tool \"objdump\")
|
||||||
" COMPONENT Runtime)
|
" COMPONENT Runtime)
|
||||||
|
|
||||||
include(DeployQt4)
|
include(DeployQt4)
|
||||||
install_qt4_executable(${PROGNAME}.exe)
|
install_qt4_executable(${PROGNAME}.exe)
|
||||||
|
|
||||||
# install Qt5 plugins
|
# install Qt5 plugins
|
||||||
set(PLUGINS_DIR ${Qt5_PREFIX}/share/qt5/plugins)
|
set(PLUGINS_DIR ${Qt5_PREFIX}/share/qt5/plugins)
|
||||||
install(FILES
|
install(FILES
|
||||||
${PLUGINS_DIR}/platforms/qwindows$<$<CONFIG:Debug>:d>.dll
|
${PLUGINS_DIR}/platforms/qwindows$<$<CONFIG:Debug>:d>.dll
|
||||||
${PLUGINS_DIR}/platforms/qdirect2d$<$<CONFIG:Debug>:d>.dll
|
${PLUGINS_DIR}/platforms/qdirect2d$<$<CONFIG:Debug>:d>.dll
|
||||||
DESTINATION "platforms")
|
DESTINATION "platforms")
|
||||||
install(FILES ${PLUGINS_DIR}/styles/qwindowsvistastyle$<$<CONFIG:Debug>:d>.dll DESTINATION "styles")
|
install(FILES ${PLUGINS_DIR}/styles/qwindowsvistastyle$<$<CONFIG:Debug>:d>.dll DESTINATION "styles")
|
||||||
install(FILES ${PLUGINS_DIR}/platforminputcontexts/qtvirtualkeyboardplugin$<$<CONFIG:Debug>:d>.dll DESTINATION "platforminputcontexts")
|
install(FILES ${PLUGINS_DIR}/platforminputcontexts/qtvirtualkeyboardplugin$<$<CONFIG:Debug>:d>.dll DESTINATION "platforminputcontexts")
|
||||||
install(FILES ${PLUGINS_DIR}/iconengines/qsvgicon$<$<CONFIG:Debug>:d>.dll DESTINATION "iconengines")
|
install(FILES ${PLUGINS_DIR}/iconengines/qsvgicon$<$<CONFIG:Debug>:d>.dll DESTINATION "iconengines")
|
||||||
install(FILES
|
install(FILES
|
||||||
${PLUGINS_DIR}/imageformats/qgif$<$<CONFIG:Debug>:d>.dll
|
${PLUGINS_DIR}/imageformats/qgif$<$<CONFIG:Debug>:d>.dll
|
||||||
${PLUGINS_DIR}/imageformats/qicns$<$<CONFIG:Debug>:d>.dll
|
${PLUGINS_DIR}/imageformats/qicns$<$<CONFIG:Debug>:d>.dll
|
||||||
${PLUGINS_DIR}/imageformats/qico$<$<CONFIG:Debug>:d>.dll
|
${PLUGINS_DIR}/imageformats/qico$<$<CONFIG:Debug>:d>.dll
|
||||||
${PLUGINS_DIR}/imageformats/qjpeg$<$<CONFIG:Debug>:d>.dll
|
${PLUGINS_DIR}/imageformats/qjpeg$<$<CONFIG:Debug>:d>.dll
|
||||||
${PLUGINS_DIR}/imageformats/qwebp$<$<CONFIG:Debug>:d>.dll
|
${PLUGINS_DIR}/imageformats/qwebp$<$<CONFIG:Debug>:d>.dll
|
||||||
DESTINATION "imageformats")
|
DESTINATION "imageformats")
|
||||||
|
|
||||||
# install CA cert chains
|
# install CA cert chains
|
||||||
install(FILES ${Qt5_PREFIX}/ssl/certs/ca-bundle.crt DESTINATION "ssl/certs")
|
install(FILES ${Qt5_PREFIX}/ssl/certs/ca-bundle.crt DESTINATION "ssl/certs")
|
||||||
endif()
|
endif()
|
||||||
|
@ -1,23 +1,23 @@
|
|||||||
if(WITH_XC_AUTOTYPE)
|
if(WITH_XC_AUTOTYPE)
|
||||||
if(UNIX AND NOT APPLE)
|
if(UNIX AND NOT APPLE)
|
||||||
find_package(X11)
|
find_package(X11)
|
||||||
find_package(Qt5X11Extras 5.2)
|
find_package(Qt5X11Extras 5.2)
|
||||||
if(PRINT_SUMMARY)
|
if(PRINT_SUMMARY)
|
||||||
add_feature_info(libXi X11_Xi_FOUND "The X11 Xi Protocol library is required for auto-type")
|
add_feature_info(libXi X11_Xi_FOUND "The X11 Xi Protocol library is required for auto-type")
|
||||||
add_feature_info(libXtst X11_XTest_FOUND "The X11 XTEST Protocol library is required for auto-type")
|
add_feature_info(libXtst X11_XTest_FOUND "The X11 XTEST Protocol library is required for auto-type")
|
||||||
add_feature_info(Qt5X11Extras Qt5X11Extras_FOUND "The Qt5X11Extras library is required for auto-type")
|
add_feature_info(Qt5X11Extras Qt5X11Extras_FOUND "The Qt5X11Extras library is required for auto-type")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(X11_FOUND AND X11_Xi_FOUND AND X11_XTest_FOUND AND Qt5X11Extras_FOUND)
|
||||||
|
add_subdirectory(xcb)
|
||||||
|
endif()
|
||||||
|
elseif(APPLE)
|
||||||
|
add_subdirectory(mac)
|
||||||
|
elseif(WIN32)
|
||||||
|
add_subdirectory(windows)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(X11_FOUND AND X11_Xi_FOUND AND X11_XTest_FOUND AND Qt5X11Extras_FOUND)
|
if(WITH_TESTS)
|
||||||
add_subdirectory(xcb)
|
add_subdirectory(test)
|
||||||
endif()
|
endif()
|
||||||
elseif(APPLE)
|
|
||||||
add_subdirectory(mac)
|
|
||||||
elseif(WIN32)
|
|
||||||
add_subdirectory(windows)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(WITH_TESTS)
|
|
||||||
add_subdirectory(test)
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
@ -1,24 +1,20 @@
|
|||||||
set(autotype_mac_SOURCES
|
set(autotype_mac_SOURCES AutoTypeMac.cpp)
|
||||||
AutoTypeMac.cpp
|
|
||||||
)
|
|
||||||
|
|
||||||
set(autotype_mac_mm_SOURCES
|
set(autotype_mac_mm_SOURCES AppKitImpl.mm)
|
||||||
AppKitImpl.mm
|
|
||||||
)
|
|
||||||
|
|
||||||
add_library(keepassx-autotype-cocoa MODULE ${autotype_mac_SOURCES} ${autotype_mac_mm_SOURCES})
|
add_library(keepassx-autotype-cocoa MODULE ${autotype_mac_SOURCES} ${autotype_mac_mm_SOURCES})
|
||||||
set_target_properties(keepassx-autotype-cocoa PROPERTIES LINK_FLAGS "-framework Foundation -framework AppKit -framework Carbon")
|
set_target_properties(keepassx-autotype-cocoa PROPERTIES LINK_FLAGS "-framework Foundation -framework AppKit -framework Carbon")
|
||||||
target_link_libraries(keepassx-autotype-cocoa ${PROGNAME} Qt5::Core Qt5::Widgets)
|
target_link_libraries(keepassx-autotype-cocoa ${PROGNAME} Qt5::Core Qt5::Widgets)
|
||||||
|
|
||||||
if(WITH_APP_BUNDLE)
|
if(WITH_APP_BUNDLE)
|
||||||
add_custom_command(TARGET keepassx-autotype-cocoa
|
add_custom_command(TARGET keepassx-autotype-cocoa
|
||||||
POST_BUILD
|
POST_BUILD
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/libkeepassx-autotype-cocoa.so ${PLUGIN_INSTALL_DIR}
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/libkeepassx-autotype-cocoa.so ${PLUGIN_INSTALL_DIR}
|
||||||
COMMAND ${MACDEPLOYQT_EXE} ${PROGNAME}.app -executable=${PLUGIN_INSTALL_DIR}/libkeepassx-autotype-cocoa.so -no-plugins
|
COMMAND ${MACDEPLOYQT_EXE} ${PROGNAME}.app -executable=${PLUGIN_INSTALL_DIR}/libkeepassx-autotype-cocoa.so -no-plugins
|
||||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/src
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/src
|
||||||
COMMENT "Deploying autotype plugin")
|
COMMENT "Deploying autotype plugin")
|
||||||
else()
|
else()
|
||||||
install(TARGETS keepassx-autotype-cocoa
|
install(TARGETS keepassx-autotype-cocoa
|
||||||
BUNDLE DESTINATION . COMPONENT Runtime
|
BUNDLE DESTINATION . COMPONENT Runtime
|
||||||
LIBRARY DESTINATION ${PLUGIN_INSTALL_DIR} COMPONENT Runtime)
|
LIBRARY DESTINATION ${PLUGIN_INSTALL_DIR} COMPONENT Runtime)
|
||||||
endif()
|
endif()
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
set(autotype_test_SOURCES
|
set(autotype_test_SOURCES AutoTypeTest.cpp)
|
||||||
AutoTypeTest.cpp
|
|
||||||
)
|
|
||||||
|
|
||||||
add_library(keepassx-autotype-test MODULE ${autotype_test_SOURCES})
|
add_library(keepassx-autotype-test MODULE ${autotype_test_SOURCES})
|
||||||
target_link_libraries(keepassx-autotype-test keepassx_core ${autotype_LIB} Qt5::Core Qt5::Widgets)
|
target_link_libraries(keepassx-autotype-test keepassx_core ${autotype_LIB} Qt5::Core Qt5::Widgets)
|
||||||
|
@ -1,9 +1,7 @@
|
|||||||
set(autotype_win_SOURCES
|
set(autotype_win_SOURCES AutoTypeWindows.cpp)
|
||||||
AutoTypeWindows.cpp
|
|
||||||
)
|
|
||||||
|
|
||||||
add_library(keepassx-autotype-windows MODULE ${autotype_win_SOURCES})
|
add_library(keepassx-autotype-windows MODULE ${autotype_win_SOURCES})
|
||||||
target_link_libraries(keepassx-autotype-windows keepassx_core ${autotype_LIB} Qt5::Core Qt5::Widgets)
|
target_link_libraries(keepassx-autotype-windows keepassx_core ${autotype_LIB} Qt5::Core Qt5::Widgets)
|
||||||
install(TARGETS keepassx-autotype-windows
|
install(TARGETS keepassx-autotype-windows
|
||||||
BUNDLE DESTINATION . COMPONENT Runtime
|
BUNDLE DESTINATION . COMPONENT Runtime
|
||||||
LIBRARY DESTINATION ${PLUGIN_INSTALL_DIR} COMPONENT Runtime)
|
LIBRARY DESTINATION ${PLUGIN_INSTALL_DIR} COMPONENT Runtime)
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
include_directories(SYSTEM ${X11_X11_INCLUDE_PATH})
|
include_directories(SYSTEM ${X11_X11_INCLUDE_PATH})
|
||||||
|
|
||||||
set(autotype_XCB_SOURCES
|
set(autotype_XCB_SOURCES AutoTypeXCB.cpp)
|
||||||
AutoTypeXCB.cpp
|
|
||||||
)
|
|
||||||
|
|
||||||
add_library(keepassx-autotype-xcb MODULE ${autotype_XCB_SOURCES})
|
add_library(keepassx-autotype-xcb MODULE ${autotype_XCB_SOURCES})
|
||||||
target_link_libraries(keepassx-autotype-xcb keepassx_core Qt5::Core Qt5::Widgets Qt5::X11Extras ${X11_X11_LIB} ${X11_Xi_LIB} ${X11_XTest_LIB})
|
target_link_libraries(keepassx-autotype-xcb keepassx_core Qt5::Core Qt5::Widgets Qt5::X11Extras ${X11_X11_LIB} ${X11_Xi_LIB} ${X11_XTest_LIB})
|
||||||
|
@ -19,19 +19,18 @@ if(WITH_XC_BROWSER)
|
|||||||
find_package(sodium 1.0.12 REQUIRED)
|
find_package(sodium 1.0.12 REQUIRED)
|
||||||
|
|
||||||
set(keepassxcbrowser_SOURCES
|
set(keepassxcbrowser_SOURCES
|
||||||
BrowserAccessControlDialog.cpp
|
BrowserAccessControlDialog.cpp
|
||||||
BrowserAction.cpp
|
BrowserAction.cpp
|
||||||
BrowserClients.cpp
|
BrowserClients.cpp
|
||||||
BrowserEntryConfig.cpp
|
BrowserEntryConfig.cpp
|
||||||
BrowserEntrySaveDialog.cpp
|
BrowserEntrySaveDialog.cpp
|
||||||
BrowserOptionDialog.cpp
|
BrowserOptionDialog.cpp
|
||||||
BrowserService.cpp
|
BrowserService.cpp
|
||||||
BrowserSettings.cpp
|
BrowserSettings.cpp
|
||||||
HostInstaller.cpp
|
HostInstaller.cpp
|
||||||
NativeMessagingBase.cpp
|
NativeMessagingBase.cpp
|
||||||
NativeMessagingHost.cpp
|
NativeMessagingHost.cpp
|
||||||
Variant.cpp
|
Variant.cpp)
|
||||||
)
|
|
||||||
|
|
||||||
add_library(keepassxcbrowser STATIC ${keepassxcbrowser_SOURCES})
|
add_library(keepassxcbrowser STATIC ${keepassxcbrowser_SOURCES})
|
||||||
target_link_libraries(keepassxcbrowser Qt5::Core Qt5::Concurrent Qt5::Widgets Qt5::Network sodium)
|
target_link_libraries(keepassxcbrowser Qt5::Core Qt5::Concurrent Qt5::Widgets Qt5::Network sodium)
|
||||||
|
@ -14,46 +14,46 @@
|
|||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
set(cli_SOURCES
|
set(cli_SOURCES
|
||||||
Add.cpp
|
Add.cpp
|
||||||
Add.h
|
Add.h
|
||||||
Clip.cpp
|
Clip.cpp
|
||||||
Clip.h
|
Clip.h
|
||||||
Command.cpp
|
Command.cpp
|
||||||
Command.h
|
Command.h
|
||||||
Diceware.cpp
|
Diceware.cpp
|
||||||
Diceware.h
|
Diceware.h
|
||||||
Edit.cpp
|
Edit.cpp
|
||||||
Edit.h
|
Edit.h
|
||||||
Estimate.cpp
|
Estimate.cpp
|
||||||
Estimate.h
|
Estimate.h
|
||||||
Extract.cpp
|
Extract.cpp
|
||||||
Extract.h
|
Extract.h
|
||||||
Generate.cpp
|
Generate.cpp
|
||||||
Generate.h
|
Generate.h
|
||||||
List.cpp
|
List.cpp
|
||||||
List.h
|
List.h
|
||||||
Locate.cpp
|
Locate.cpp
|
||||||
Locate.h
|
Locate.h
|
||||||
Merge.cpp
|
Merge.cpp
|
||||||
Merge.h
|
Merge.h
|
||||||
Remove.cpp
|
Remove.cpp
|
||||||
Remove.h
|
Remove.h
|
||||||
Show.cpp
|
Show.cpp
|
||||||
Show.h)
|
Show.h)
|
||||||
|
|
||||||
add_library(cli STATIC ${cli_SOURCES})
|
add_library(cli STATIC ${cli_SOURCES})
|
||||||
target_link_libraries(cli Qt5::Core Qt5::Widgets)
|
target_link_libraries(cli Qt5::Core Qt5::Widgets)
|
||||||
|
|
||||||
add_executable(keepassxc-cli keepassxc-cli.cpp)
|
add_executable(keepassxc-cli keepassxc-cli.cpp)
|
||||||
target_link_libraries(keepassxc-cli
|
target_link_libraries(keepassxc-cli
|
||||||
cli
|
cli
|
||||||
keepassx_core
|
keepassx_core
|
||||||
Qt5::Core
|
Qt5::Core
|
||||||
${GCRYPT_LIBRARIES}
|
${GCRYPT_LIBRARIES}
|
||||||
${ARGON2_LIBRARIES}
|
${ARGON2_LIBRARIES}
|
||||||
${GPGERROR_LIBRARIES}
|
${GPGERROR_LIBRARIES}
|
||||||
${ZLIB_LIBRARIES}
|
${ZLIB_LIBRARIES}
|
||||||
${ZXCVBN_LIBRARIES})
|
${ZXCVBN_LIBRARIES})
|
||||||
|
|
||||||
install(TARGETS keepassxc-cli
|
install(TARGETS keepassxc-cli
|
||||||
BUNDLE DESTINATION . COMPONENT Runtime
|
BUNDLE DESTINATION . COMPONENT Runtime
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
# Copyright (C) 2018 KeePassXC Team <team@keepassxc.org>
|
||||||
# Copyright (C) 2010 Felix Geyer <debfx@fobos.de>
|
# Copyright (C) 2010 Felix Geyer <debfx@fobos.de>
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
@ -13,7 +14,11 @@
|
|||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/src ${CMAKE_CURRENT_BINARY_DIR}/../src)
|
include_directories(
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}
|
||||||
|
${CMAKE_SOURCE_DIR}/src
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/../src)
|
||||||
|
|
||||||
add_definitions(-DQT_TEST_LIB)
|
add_definitions(-DQT_TEST_LIB)
|
||||||
|
|
||||||
@ -21,99 +26,98 @@ set(KEEPASSX_TEST_DATA_DIR ${CMAKE_CURRENT_SOURCE_DIR}/data)
|
|||||||
configure_file(config-keepassx-tests.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-keepassx-tests.h)
|
configure_file(config-keepassx-tests.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-keepassx-tests.h)
|
||||||
|
|
||||||
macro(parse_arguments prefix arg_names option_names)
|
macro(parse_arguments prefix arg_names option_names)
|
||||||
set(DEFAULT_ARGS)
|
set(DEFAULT_ARGS)
|
||||||
foreach(arg_name ${arg_names})
|
foreach(arg_name ${arg_names})
|
||||||
set(${prefix}_${arg_name})
|
set(${prefix}_${arg_name})
|
||||||
endforeach(arg_name)
|
endforeach(arg_name)
|
||||||
foreach(option ${option_names})
|
foreach(option ${option_names})
|
||||||
set(${prefix}_${option} FALSE)
|
set(${prefix}_${option} FALSE)
|
||||||
endforeach(option)
|
endforeach(option)
|
||||||
|
|
||||||
set(current_arg_name DEFAULT_ARGS)
|
set(current_arg_name DEFAULT_ARGS)
|
||||||
set(current_arg_list)
|
set(current_arg_list)
|
||||||
foreach(arg ${ARGN})
|
foreach(arg ${ARGN})
|
||||||
set(larg_names ${arg_names})
|
set(larg_names ${arg_names})
|
||||||
list(FIND larg_names "${arg}" is_arg_name)
|
list(FIND larg_names "${arg}" is_arg_name)
|
||||||
if(is_arg_name GREATER -1)
|
if(is_arg_name GREATER -1)
|
||||||
set(${prefix}_${current_arg_name} ${current_arg_list})
|
set(${prefix}_${current_arg_name} ${current_arg_list})
|
||||||
set(current_arg_name ${arg})
|
set(current_arg_name ${arg})
|
||||||
set(current_arg_list)
|
set(current_arg_list)
|
||||||
else()
|
else()
|
||||||
set(loption_names ${option_names})
|
set(loption_names ${option_names})
|
||||||
list(FIND loption_names "${arg}" is_option)
|
list(FIND loption_names "${arg}" is_option)
|
||||||
if(is_option GREATER -1)
|
if(is_option GREATER -1)
|
||||||
set(${prefix}_${arg} TRUE)
|
set(${prefix}_${arg} TRUE)
|
||||||
else(is_option GREATER -1)
|
else(is_option GREATER -1)
|
||||||
set(current_arg_list ${current_arg_list} ${arg})
|
set(current_arg_list ${current_arg_list} ${arg})
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endforeach(arg)
|
endforeach(arg)
|
||||||
set(${prefix}_${current_arg_name} ${current_arg_list})
|
set(${prefix}_${current_arg_name} ${current_arg_list})
|
||||||
endmacro(parse_arguments)
|
endmacro(parse_arguments)
|
||||||
|
|
||||||
macro(add_unit_test)
|
macro(add_unit_test)
|
||||||
parse_arguments(TEST "NAME;SOURCES;LIBS" "" ${ARGN})
|
parse_arguments(TEST "NAME;SOURCES;LIBS" "" ${ARGN})
|
||||||
set(_test_NAME ${TEST_NAME})
|
set(_test_NAME ${TEST_NAME})
|
||||||
set(_srcList ${TEST_SOURCES})
|
set(_srcList ${TEST_SOURCES})
|
||||||
add_executable(${_test_NAME} ${_srcList})
|
add_executable(${_test_NAME} ${_srcList})
|
||||||
target_link_libraries(${_test_NAME} ${TEST_LIBS})
|
target_link_libraries(${_test_NAME} ${TEST_LIBS})
|
||||||
|
|
||||||
if(NOT TEST_OUTPUT)
|
if(NOT TEST_OUTPUT)
|
||||||
set(TEST_OUTPUT plaintext)
|
set(TEST_OUTPUT plaintext)
|
||||||
endif(NOT TEST_OUTPUT)
|
endif(NOT TEST_OUTPUT)
|
||||||
set(TEST_OUTPUT ${TEST_OUTPUT} CACHE STRING "The output to generate when running the QTest unit tests")
|
set(TEST_OUTPUT ${TEST_OUTPUT} CACHE STRING "The output to generate when running the QTest unit tests")
|
||||||
|
|
||||||
if(KDE4_TEST_OUTPUT STREQUAL "xml")
|
if(KDE4_TEST_OUTPUT STREQUAL "xml")
|
||||||
add_test(${_test_NAME} ${_test_NAME} -xml -o ${_test_NAME}.tml)
|
add_test(${_test_NAME} ${_test_NAME} -xml -o ${_test_NAME}.tml)
|
||||||
else(KDE4_TEST_OUTPUT STREQUAL "xml")
|
else(KDE4_TEST_OUTPUT STREQUAL "xml")
|
||||||
add_test(${_test_NAME} ${_test_NAME})
|
add_test(${_test_NAME} ${_test_NAME})
|
||||||
endif(KDE4_TEST_OUTPUT STREQUAL "xml")
|
endif(KDE4_TEST_OUTPUT STREQUAL "xml")
|
||||||
|
|
||||||
if(NOT MSVC_IDE) #not needed for the ide
|
if(NOT MSVC_IDE) #not needed for the ide
|
||||||
# if the tests are EXCLUDE_FROM_ALL, add a target "buildtests" to build all tests
|
# if the tests are EXCLUDE_FROM_ALL, add a target "buildtests" to build all tests
|
||||||
if(NOT WITH_TESTS)
|
if(NOT WITH_TESTS)
|
||||||
get_directory_property(_buildtestsAdded BUILDTESTS_ADDED)
|
get_directory_property(_buildtestsAdded BUILDTESTS_ADDED)
|
||||||
if(NOT _buildtestsAdded)
|
if(NOT _buildtestsAdded)
|
||||||
add_custom_target(buildtests)
|
add_custom_target(buildtests)
|
||||||
set_directory_properties(PROPERTIES BUILDTESTS_ADDED TRUE)
|
set_directory_properties(PROPERTIES BUILDTESTS_ADDED TRUE)
|
||||||
endif()
|
endif()
|
||||||
add_dependencies(buildtests ${_test_NAME})
|
add_dependencies(buildtests ${_test_NAME})
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endif()
|
|
||||||
endmacro(add_unit_test)
|
endmacro(add_unit_test)
|
||||||
|
|
||||||
set(TEST_LIBRARIES
|
set(TEST_LIBRARIES
|
||||||
keepassx_core
|
keepassx_core
|
||||||
${keepasshttp_LIB}
|
${keepasshttp_LIB}
|
||||||
${autotype_LIB}
|
${autotype_LIB}
|
||||||
Qt5::Core
|
Qt5::Core
|
||||||
Qt5::Concurrent
|
Qt5::Concurrent
|
||||||
Qt5::Widgets
|
Qt5::Widgets
|
||||||
Qt5::Test
|
Qt5::Test
|
||||||
${GCRYPT_LIBRARIES}
|
${GCRYPT_LIBRARIES}
|
||||||
${GPGERROR_LIBRARIES}
|
${GPGERROR_LIBRARIES}
|
||||||
${ZLIB_LIBRARIES}
|
${ZLIB_LIBRARIES})
|
||||||
)
|
|
||||||
|
|
||||||
set(testsupport_SOURCES TestGlobal.h modeltest.cpp FailDevice.cpp mock/MockClock.cpp util/TemporaryFile.cpp)
|
set(testsupport_SOURCES TestGlobal.h modeltest.cpp FailDevice.cpp mock/MockClock.cpp util/TemporaryFile.cpp)
|
||||||
add_library(testsupport STATIC ${testsupport_SOURCES})
|
add_library(testsupport STATIC ${testsupport_SOURCES})
|
||||||
target_link_libraries(testsupport Qt5::Core Qt5::Concurrent Qt5::Widgets Qt5::Test)
|
target_link_libraries(testsupport Qt5::Core Qt5::Concurrent Qt5::Widgets Qt5::Test)
|
||||||
|
|
||||||
if(YUBIKEY_FOUND)
|
if(YUBIKEY_FOUND)
|
||||||
set(TEST_LIBRARIES ${TEST_LIBRARIES} ${YUBIKEY_LIBRARIES})
|
set(TEST_LIBRARIES ${TEST_LIBRARIES} ${YUBIKEY_LIBRARIES})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_unit_test(NAME testgroup SOURCES TestGroup.cpp
|
add_unit_test(NAME testgroup SOURCES TestGroup.cpp
|
||||||
LIBS testsupport ${TEST_LIBRARIES})
|
LIBS testsupport ${TEST_LIBRARIES})
|
||||||
|
|
||||||
add_unit_test(NAME testkdbx2 SOURCES TestKdbx2.cpp
|
add_unit_test(NAME testkdbx2 SOURCES TestKdbx2.cpp
|
||||||
LIBS ${TEST_LIBRARIES})
|
LIBS ${TEST_LIBRARIES})
|
||||||
|
|
||||||
add_unit_test(NAME testkdbx3 SOURCES TestKeePass2Format.cpp FailDevice.cpp TestKdbx3.cpp
|
add_unit_test(NAME testkdbx3 SOURCES TestKeePass2Format.cpp FailDevice.cpp TestKdbx3.cpp
|
||||||
LIBS testsupport ${TEST_LIBRARIES})
|
LIBS testsupport ${TEST_LIBRARIES})
|
||||||
|
|
||||||
add_unit_test(NAME testkdbx4 SOURCES TestKeePass2Format.cpp FailDevice.cpp mock/MockChallengeResponseKey.cpp TestKdbx4.cpp
|
add_unit_test(NAME testkdbx4 SOURCES TestKeePass2Format.cpp FailDevice.cpp mock/MockChallengeResponseKey.cpp TestKdbx4.cpp
|
||||||
LIBS testsupport ${TEST_LIBRARIES})
|
LIBS testsupport ${TEST_LIBRARIES})
|
||||||
|
|
||||||
add_unit_test(NAME testkeys SOURCES TestKeys.cpp mock/MockChallengeResponseKey.cpp
|
add_unit_test(NAME testkeys SOURCES TestKeys.cpp mock/MockChallengeResponseKey.cpp
|
||||||
LIBS ${TEST_LIBRARIES})
|
LIBS ${TEST_LIBRARIES})
|
||||||
@ -137,7 +141,7 @@ add_unit_test(NAME testkeepass2randomstream SOURCES TestKeePass2RandomStream.cpp
|
|||||||
LIBS ${TEST_LIBRARIES})
|
LIBS ${TEST_LIBRARIES})
|
||||||
|
|
||||||
add_unit_test(NAME testmodified SOURCES TestModified.cpp
|
add_unit_test(NAME testmodified SOURCES TestModified.cpp
|
||||||
LIBS testsupport ${TEST_LIBRARIES})
|
LIBS testsupport ${TEST_LIBRARIES})
|
||||||
|
|
||||||
add_unit_test(NAME testdeletedobjects SOURCES TestDeletedObjects.cpp
|
add_unit_test(NAME testdeletedobjects SOURCES TestDeletedObjects.cpp
|
||||||
LIBS ${TEST_LIBRARIES})
|
LIBS ${TEST_LIBRARIES})
|
||||||
@ -149,14 +153,14 @@ add_unit_test(NAME testwildcardmatcher SOURCES TestWildcardMatcher.cpp
|
|||||||
LIBS ${TEST_LIBRARIES})
|
LIBS ${TEST_LIBRARIES})
|
||||||
|
|
||||||
if(WITH_XC_AUTOTYPE)
|
if(WITH_XC_AUTOTYPE)
|
||||||
add_unit_test(NAME testautotype SOURCES TestAutoType.cpp
|
add_unit_test(NAME testautotype SOURCES TestAutoType.cpp
|
||||||
LIBS ${TEST_LIBRARIES})
|
LIBS ${TEST_LIBRARIES})
|
||||||
set_target_properties(testautotype PROPERTIES ENABLE_EXPORTS ON)
|
set_target_properties(testautotype PROPERTIES ENABLE_EXPORTS ON)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_XC_SSHAGENT)
|
if(WITH_XC_SSHAGENT)
|
||||||
add_unit_test(NAME testopensshkey SOURCES TestOpenSSHKey.cpp
|
add_unit_test(NAME testopensshkey SOURCES TestOpenSSHKey.cpp
|
||||||
LIBS sshagent ${TEST_LIBRARIES})
|
LIBS sshagent ${TEST_LIBRARIES})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_unit_test(NAME testentry SOURCES TestEntry.cpp
|
add_unit_test(NAME testentry SOURCES TestEntry.cpp
|
||||||
@ -183,7 +187,7 @@ add_unit_test(NAME testrandom SOURCES TestRandom.cpp
|
|||||||
add_unit_test(NAME testentrysearcher SOURCES TestEntrySearcher.cpp
|
add_unit_test(NAME testentrysearcher SOURCES TestEntrySearcher.cpp
|
||||||
LIBS ${TEST_LIBRARIES})
|
LIBS ${TEST_LIBRARIES})
|
||||||
|
|
||||||
add_unit_test(NAME testcsveporter SOURCES TestCsvExporter.cpp
|
add_unit_test(NAME testcsvexporter SOURCES TestCsvExporter.cpp
|
||||||
LIBS ${TEST_LIBRARIES})
|
LIBS ${TEST_LIBRARIES})
|
||||||
|
|
||||||
add_unit_test(NAME testykchallengeresponsekey
|
add_unit_test(NAME testykchallengeresponsekey
|
||||||
@ -198,9 +202,9 @@ add_unit_test(NAME testtools SOURCES TestTools.cpp
|
|||||||
|
|
||||||
|
|
||||||
if(WITH_GUI_TESTS)
|
if(WITH_GUI_TESTS)
|
||||||
# CLI clip tests need X environment on Linux
|
# CLI clip tests need X environment on Linux
|
||||||
add_unit_test(NAME testcli SOURCES TestCli.cpp
|
add_unit_test(NAME testcli SOURCES TestCli.cpp
|
||||||
LIBS testsupport cli ${TEST_LIBRARIES})
|
LIBS testsupport cli ${TEST_LIBRARIES})
|
||||||
|
|
||||||
add_subdirectory(gui)
|
add_subdirectory(gui)
|
||||||
endif(WITH_GUI_TESTS)
|
endif(WITH_GUI_TESTS)
|
||||||
|
Loading…
Reference in New Issue
Block a user