diff --git a/CMakeLists.txt b/CMakeLists.txt index 55458617..ce42e696 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,7 +21,7 @@ endif() project(KeePassX) -cmake_minimum_required(VERSION 2.6.4) +cmake_minimum_required(VERSION 2.8.12) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake) @@ -62,7 +62,7 @@ macro(add_gcc_compiler_flags FLAGS) add_gcc_compiler_cflags("${FLAGS}") endmacro(add_gcc_compiler_flags) -add_definitions(-DQT_NO_KEYWORDS -DQT_NO_EXCEPTIONS -DQT_NO_STL -DQT_STRICT_ITERATORS -DQT_NO_CAST_TO_ASCII) +add_definitions(-DQT_NO_KEYWORDS -DQT_NO_EXCEPTIONS -DQT_STRICT_ITERATORS -DQT_NO_CAST_TO_ASCII) add_gcc_compiler_flags("-fno-common -fstack-protector --param=ssp-buffer-size=4") add_gcc_compiler_flags("-Wall -Wextra -Wundef -Wpointer-arith -Wno-long-long") @@ -161,10 +161,12 @@ if(WITH_TESTS) enable_testing() endif(WITH_TESTS) -set(QT_REQUIRED_MODULES QtCore QtGui QtTest) +find_package(Qt5Core REQUIRED) +find_package(Qt5Widgets REQUIRED) +find_package(Qt5Test REQUIRED) +find_package(Qt5LinguistTools REQUIRED) +set(CMAKE_AUTOMOC ON) -find_package(Qt4 4.6.0 REQUIRED ${QT_REQUIRED_MODULES}) -include(${QT_USE_FILE}) # Debian sets the the build type to None for package builds. # Make sure we don't enable asserts there. set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS_NONE QT_NO_DEBUG) @@ -214,10 +216,7 @@ endif() include_directories(SYSTEM ${GCRYPT_INCLUDE_DIR} ${ZLIB_INCLUDE_DIR}) -if(NOT (${CMAKE_VERSION} VERSION_LESS 2.8.3)) - set(PRINT_SUMMARY ON) - include(FeatureSummary) -endif() +include(FeatureSummary) add_subdirectory(src) add_subdirectory(share) diff --git a/share/translations/CMakeLists.txt b/share/translations/CMakeLists.txt index b1aa8785..c62abcbf 100644 --- a/share/translations/CMakeLists.txt +++ b/share/translations/CMakeLists.txt @@ -19,7 +19,7 @@ list(REMOVE_ITEM TRANSLATION_FILES keepassx_en.ts) list(REMOVE_ITEM TRANSLATION_FILES ${TRANSLATION_EN_ABS}) message(STATUS ${TRANSLATION_FILES}) -qt4_add_translation(QM_FILES ${TRANSLATION_FILES}) +qt5_add_translation(QM_FILES ${TRANSLATION_FILES}) install(FILES ${QM_FILES} DESTINATION ${DATA_INSTALL_DIR}/translations) add_custom_target(translations DEPENDS ${QM_FILES}) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1270d346..0baed8fa 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -159,65 +159,6 @@ set(keepassx_SOURCES_MAINEXE main.cpp ) -set(keepassx_MOC - autotype/AutoType.h - autotype/AutoTypeSelectDialog.h - autotype/AutoTypeSelectView.h - autotype/ShortcutWidget.h - autotype/WindowSelectComboBox.h - core/AutoTypeAssociations.h - core/Config.h - core/Database.h - core/Entry.h - core/EntryAttachments.h - core/EntryAttributes.h - core/Group.h - core/InactivityTimer.h - core/Metadata.h - core/qsavefile.h - gui/AboutDialog.h - gui/Application.h - gui/ChangeMasterKeyWidget.h - gui/Clipboard.h - gui/DatabaseOpenWidget.h - gui/DatabaseSettingsWidget.h - gui/DatabaseTabWidget.h - gui/DatabaseWidget.h - gui/DatabaseWidgetStateSync.h - gui/DialogyWidget.h - gui/DragTabBar.h - gui/EditWidget.h - gui/EditWidgetIcons.h - gui/EditWidgetProperties.h - gui/IconModels.h - gui/KeePass1OpenWidget.h - gui/LineEdit.h - gui/MainWindow.h - gui/PasswordEdit.h - gui/PasswordGeneratorWidget.h - gui/PasswordComboBox.h - gui/SettingsWidget.h - gui/SortFilterHideProxyModel.h - gui/UnlockDatabaseWidget.h - gui/WelcomeWidget.h - gui/entry/AutoTypeAssociationsModel.h - gui/entry/EditEntryWidget.h - gui/entry/EntryAttachmentsModel.h - gui/entry/EntryAttributesModel.h - gui/entry/EntryHistoryModel.h - gui/entry/EntryModel.h - gui/entry/EntryView.h - gui/group/EditGroupWidget.h - gui/group/GroupModel.h - gui/group/GroupView.h - keys/CompositeKey_p.h - streams/HashedBlockStream.h - streams/LayeredStream.h - streams/qtiocompressor.h - streams/StoreDataStream.h - streams/SymmetricCipherStream.h -) - set(keepassx_FORMS gui/AboutDialog.ui gui/ChangeMasterKeyWidget.ui @@ -245,17 +186,17 @@ if(MINGW) ${CMAKE_SOURCE_DIR}/share/windows/icon.rc) endif() -qt4_wrap_ui(keepassx_SOURCES ${keepassx_FORMS}) -qt4_wrap_cpp(keepassx_SOURCES ${keepassx_MOC}) +qt5_wrap_ui(keepassx_SOURCES ${keepassx_FORMS}) add_library(keepassx_core STATIC ${keepassx_SOURCES}) set_target_properties(keepassx_core PROPERTIES COMPILE_DEFINITIONS KEEPASSX_BUILDING_CORE) +target_link_libraries(keepassx_core Qt5::Core Qt5::Widgets) add_executable(${PROGNAME} WIN32 MACOSX_BUNDLE ${keepassx_SOURCES_MAINEXE}) target_link_libraries(${PROGNAME} keepassx_core - ${QT_QTCORE_LIBRARY} - ${QT_QTGUI_LIBRARY} + Qt5::Core + Qt5::Widgets ${GCRYPT_LIBRARIES} ${ZLIB_LIBRARIES}) @@ -273,7 +214,7 @@ install(TARGETS ${PROGNAME} add_subdirectory(autotype) -if(APPLE AND NOT (${CMAKE_VERSION} VERSION_LESS 2.8.8)) +if(APPLE) if(QT_MAC_USE_COCOA AND EXISTS "${QT_LIBRARY_DIR}/Resources/qt_menu.nib") install(DIRECTORY "${QT_LIBRARY_DIR}/Resources/qt_menu.nib" DESTINATION "${DATA_INSTALL_DIR}") @@ -291,7 +232,7 @@ if(APPLE AND NOT (${CMAKE_VERSION} VERSION_LESS 2.8.8)) install_qt4_executable(${PROGNAME}.app "qjpeg;qgif;qico;qtaccessiblewidgets") endif() -if(MINGW AND NOT (${CMAKE_VERSION} VERSION_LESS 2.8.8)) +if(MINGW ) set(CPACK_GENERATOR "ZIP") set(CPACK_STRIP_FILES ON) set(CPACK_PACKAGE_FILE_NAME "${PROGNAME}-${KEEPASSX_VERSION_NUM}") diff --git a/src/autotype/CMakeLists.txt b/src/autotype/CMakeLists.txt index 0bf5fc25..fff36864 100644 --- a/src/autotype/CMakeLists.txt +++ b/src/autotype/CMakeLists.txt @@ -1,10 +1,10 @@ -if(Q_WS_X11) +if(UNIX AND NOT APPLE) find_package(X11) - if(PRINT_SUMMARY) - add_feature_info(libXtest X11_XTest_FOUND "The X11 XTEST Protocol library is required for auto-type") - endif() + find_package(Qt5X11Extras) + add_feature_info(libXtest X11_XTest_FOUND "The X11 XTEST Protocol library is required for auto-type") + add_feature_info(libXtest Qt5X11Extras_FOUND "The Qt5X11Extras library is required for auto-type") - if(X11_FOUND AND X11_XTest_FOUND) + if(X11_FOUND AND X11_XTest_FOUND AND Qt5X11Extras_FOUND) add_subdirectory(x11) endif() endif() diff --git a/src/autotype/test/CMakeLists.txt b/src/autotype/test/CMakeLists.txt index 749f7d5f..9b3dbd49 100644 --- a/src/autotype/test/CMakeLists.txt +++ b/src/autotype/test/CMakeLists.txt @@ -2,11 +2,5 @@ set(autotype_test_SOURCES AutoTypeTest.cpp ) -set(autotype_test_MOC - AutoTypeTest.h -) - -qt4_wrap_cpp(autotype_test_SOURCES ${autotype_test_MOC}) - add_library(keepassx-autotype-test MODULE ${autotype_test_SOURCES}) -target_link_libraries(keepassx-autotype-test testautotype ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY}) +target_link_libraries(keepassx-autotype-test testautotype Qt5::Core Qt5::Widgets) diff --git a/src/autotype/x11/CMakeLists.txt b/src/autotype/x11/CMakeLists.txt index e9835577..5361571a 100644 --- a/src/autotype/x11/CMakeLists.txt +++ b/src/autotype/x11/CMakeLists.txt @@ -4,14 +4,8 @@ set(autotype_X11_SOURCES AutoTypeX11.cpp ) -set(autotype_X11_MOC - AutoTypeX11.h -) - -qt4_wrap_cpp(autotype_X11_SOURCES ${autotype_X11_MOC}) - add_library(keepassx-autotype-x11 MODULE ${autotype_X11_SOURCES}) -target_link_libraries(keepassx-autotype-x11 ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY} ${X11_X11_LIB} ${X11_XTest_LIB}) +target_link_libraries(keepassx-autotype-x11 Qt5::Core Qt5::Widgets Qt5::X11Extras ${X11_X11_LIB} ${X11_XTest_LIB}) install(TARGETS keepassx-autotype-x11 BUNDLE DESTINATION . COMPONENT Runtime LIBRARY DESTINATION ${PLUGIN_INSTALL_DIR} COMPONENT Runtime) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 2de7094d..73e9fb0e 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -52,10 +52,9 @@ macro(parse_arguments prefix arg_names option_names) endmacro(parse_arguments) macro(add_unit_test) - parse_arguments(TEST "NAME;SOURCES;MOCS;LIBS" "" ${ARGN}) + parse_arguments(TEST "NAME;SOURCES;LIBS" "" ${ARGN}) set(_test_NAME ${TEST_NAME}) set(_srcList ${TEST_SOURCES}) - qt4_wrap_cpp(_srcList ${TEST_MOCS}) add_executable(${_test_NAME} ${_srcList}) target_link_libraries(${_test_NAME} ${TEST_LIBS}) @@ -86,85 +85,85 @@ endmacro(add_unit_test) set(TEST_LIBRARIES keepassx_core - ${QT_QTCORE_LIBRARY} - ${QT_QTGUI_LIBRARY} - ${QT_QTTEST_LIBRARY} + Qt5::Core + Qt5::Widgets + Qt5::Test ${GCRYPT_LIBRARIES} ${ZLIB_LIBRARIES} ) set(testsupport_SOURCES modeltest.cpp FailDevice.cpp) -qt4_wrap_cpp(testsupport_SOURCES modeltest.h FailDevice.h) add_library(testsupport STATIC ${testsupport_SOURCES}) +target_link_libraries(testsupport Qt5::Core Qt5::Widgets Qt5::Test) -add_unit_test(NAME testgroup SOURCES TestGroup.cpp MOCS TestGroup.h +add_unit_test(NAME testgroup SOURCES TestGroup.cpp LIBS ${TEST_LIBRARIES}) -add_unit_test(NAME testkeepass2xmlreader SOURCES TestKeePass2XmlReader.cpp MOCS TestKeePass2XmlReader.h +add_unit_test(NAME testkeepass2xmlreader SOURCES TestKeePass2XmlReader.cpp LIBS ${TEST_LIBRARIES}) -add_unit_test(NAME testkeys SOURCES TestKeys.cpp MOCS TestKeys.h +add_unit_test(NAME testkeys SOURCES TestKeys.cpp LIBS ${TEST_LIBRARIES}) -add_unit_test(NAME testkeepass2reader SOURCES TestKeePass2Reader.cpp MOCS TestKeePass2Reader.h +add_unit_test(NAME testkeepass2reader SOURCES TestKeePass2Reader.cpp LIBS ${TEST_LIBRARIES}) -add_unit_test(NAME testkeepass2writer SOURCES TestKeePass2Writer.cpp MOCS TestKeePass2Writer.h +add_unit_test(NAME testkeepass2writer SOURCES TestKeePass2Writer.cpp LIBS testsupport ${TEST_LIBRARIES}) -add_unit_test(NAME testgroupmodel SOURCES TestGroupModel.cpp MOCS TestGroupModel.h +add_unit_test(NAME testgroupmodel SOURCES TestGroupModel.cpp LIBS testsupport ${TEST_LIBRARIES}) -add_unit_test(NAME testentrymodel SOURCES TestEntryModel.cpp MOCS TestEntryModel.h +add_unit_test(NAME testentrymodel SOURCES TestEntryModel.cpp LIBS testsupport ${TEST_LIBRARIES}) -add_unit_test(NAME testcryptohash SOURCES TestCryptoHash.cpp MOCS TestCryptoHash.h +add_unit_test(NAME testcryptohash SOURCES TestCryptoHash.cpp LIBS ${TEST_LIBRARIES}) -add_unit_test(NAME testsymmetriccipher SOURCES TestSymmetricCipher.cpp MOCS TestSymmetricCipher.h +add_unit_test(NAME testsymmetriccipher SOURCES TestSymmetricCipher.cpp LIBS ${TEST_LIBRARIES}) -add_unit_test(NAME testhashedblockstream SOURCES TestHashedBlockStream.cpp MOCS TestHashedBlockStream.h +add_unit_test(NAME testhashedblockstream SOURCES TestHashedBlockStream.cpp LIBS testsupport ${TEST_LIBRARIES}) -add_unit_test(NAME testkeepass2randomstream SOURCES TestKeePass2RandomStream.cpp MOCS TestKeePass2RandomStream.h +add_unit_test(NAME testkeepass2randomstream SOURCES TestKeePass2RandomStream.cpp LIBS ${TEST_LIBRARIES}) -add_unit_test(NAME testmodified SOURCES TestModified.cpp MOCS TestModified.h +add_unit_test(NAME testmodified SOURCES TestModified.cpp LIBS ${TEST_LIBRARIES}) -add_unit_test(NAME testdeletedobjects SOURCES TestDeletedObjects.cpp MOCS TestDeletedObjects.h +add_unit_test(NAME testdeletedobjects SOURCES TestDeletedObjects.cpp LIBS ${TEST_LIBRARIES}) -add_unit_test(NAME testkeepass1reader SOURCES TestKeePass1Reader.cpp MOCS TestKeePass1Reader.h +add_unit_test(NAME testkeepass1reader SOURCES TestKeePass1Reader.cpp LIBS ${TEST_LIBRARIES}) -add_unit_test(NAME testqsavefile SOURCES TestQSaveFile.cpp MOCS TestQSaveFile.h +add_unit_test(NAME testqsavefile SOURCES TestQSaveFile.cpp LIBS ${TEST_LIBRARIES}) -add_unit_test(NAME testwildcardmatcher SOURCES TestWildcardMatcher.cpp MOCS TestWildcardMatcher.h +add_unit_test(NAME testwildcardmatcher SOURCES TestWildcardMatcher.cpp LIBS ${TEST_LIBRARIES}) -add_unit_test(NAME testautotype SOURCES TestAutoType.cpp MOCS TestAutoType.h +add_unit_test(NAME testautotype SOURCES TestAutoType.cpp LIBS ${TEST_LIBRARIES}) set_target_properties(testautotype PROPERTIES ENABLE_EXPORTS ON) -add_unit_test(NAME testentry SOURCES TestEntry.cpp MOCS TestEntry.h +add_unit_test(NAME testentry SOURCES TestEntry.cpp LIBS ${TEST_LIBRARIES}) -add_unit_test(NAME testqcommandlineparser SOURCES TestQCommandLineParser.cpp MOCS TestQCommandLineParser.h +add_unit_test(NAME testqcommandlineparser SOURCES TestQCommandLineParser.cpp LIBS ${TEST_LIBRARIES}) -add_unit_test(NAME testrandom SOURCES TestRandom.cpp MOCS TestRandom.h +add_unit_test(NAME testrandom SOURCES TestRandom.cpp LIBS ${TEST_LIBRARIES}) -add_unit_test(NAME testentrysearcher SOURCES TestEntrySearcher.cpp MOCS TestEntrySearcher.h +add_unit_test(NAME testentrysearcher SOURCES TestEntrySearcher.cpp LIBS ${TEST_LIBRARIES}) -add_unit_test(NAME testexporter SOURCES TestExporter.cpp MOCS TestExporter.h +add_unit_test(NAME testexporter SOURCES TestExporter.cpp LIBS ${TEST_LIBRARIES}) -add_unit_test(NAME testcsvexporter SOURCES TestCsvExporter.cpp MOCS TestCsvExporter.h +add_unit_test(NAME testcsvexporter SOURCES TestCsvExporter.cpp LIBS ${TEST_LIBRARIES}) if(WITH_GUI_TESTS) diff --git a/tests/gui/CMakeLists.txt b/tests/gui/CMakeLists.txt index 91fcd695..a1ca914f 100644 --- a/tests/gui/CMakeLists.txt +++ b/tests/gui/CMakeLists.txt @@ -13,6 +13,6 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -add_unit_test(NAME testgui SOURCES TestGui.cpp MOCS TestGui.h LIBS ${TEST_LIBRARIES}) +add_unit_test(NAME testgui SOURCES TestGui.cpp LIBS ${TEST_LIBRARIES}) -add_unit_test(NAME testguipixmaps SOURCES TestGuiPixmaps.cpp MOCS TestGuiPixmaps.h LIBS ${TEST_LIBRARIES}) +add_unit_test(NAME testguipixmaps SOURCES TestGuiPixmaps.cpp LIBS ${TEST_LIBRARIES}) diff --git a/utils/CMakeLists.txt b/utils/CMakeLists.txt index c4aa5fa9..6f0fa635 100644 --- a/utils/CMakeLists.txt +++ b/utils/CMakeLists.txt @@ -18,7 +18,7 @@ include_directories(../src) add_executable(kdbx-extract kdbx-extract.cpp) target_link_libraries(kdbx-extract keepassx_core - ${QT_QTCORE_LIBRARY} - ${QT_QTGUI_LIBRARY} + Qt5::Core + Qt5::Widgets ${GCRYPT_LIBRARIES} ${ZLIB_LIBRARIES})