diff --git a/CMakeLists.txt b/CMakeLists.txt index 658548f70..969b3727c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -192,11 +192,13 @@ if(CMAKE_BUILD_TYPE STREQUAL "Debug") add_gcc_compiler_flags("-Werror") endif() +if (NOT HAIKU) if((CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.8.999) OR CMAKE_COMPILER_IS_CLANGXX) add_gcc_compiler_flags("-fstack-protector-strong") else() add_gcc_compiler_flags("-fstack-protector --param=ssp-buffer-size=4") endif() +endif() add_gcc_compiler_cxxflags("-fno-exceptions -fno-rtti") add_gcc_compiler_cxxflags("-Wnon-virtual-dtor -Wold-style-cast -Woverloaded-virtual") diff --git a/share/CMakeLists.txt b/share/CMakeLists.txt index 214c0ec92..635ee5963 100644 --- a/share/CMakeLists.txt +++ b/share/CMakeLists.txt @@ -23,7 +23,7 @@ file(GLOB DATABASE_ICONS icons/database/*.png) install(FILES ${DATABASE_ICONS} DESTINATION ${DATA_INSTALL_DIR}/icons/database) -if(UNIX AND NOT APPLE) +if(UNIX AND NOT APPLE AND NOT HAIKU) install(DIRECTORY icons/application/ DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor FILES_MATCHING PATTERN "keepassx*.png" PATTERN "keepassx*.svg" PATTERN "status" EXCLUDE PATTERN "actions" EXCLUDE PATTERN "categories" EXCLUDE) @@ -33,7 +33,7 @@ if(UNIX AND NOT APPLE) install(FILES linux/org.keepassxc.KeePassXC.desktop DESTINATION ${CMAKE_INSTALL_DATADIR}/applications) install(FILES linux/org.keepassxc.KeePassXC.appdata.xml DESTINATION ${CMAKE_INSTALL_DATADIR}/metainfo) install(FILES linux/keepassxc.xml DESTINATION ${CMAKE_INSTALL_DATADIR}/mime/packages) -endif(UNIX AND NOT APPLE) +endif(UNIX AND NOT APPLE AND NOT HAIKU) if(APPLE) install(FILES macosx/keepassxc.icns DESTINATION ${DATA_INSTALL_DIR}) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 110dc606c..b2cd27232 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -293,6 +293,9 @@ if(APPLE) target_link_libraries(keepassx_core "-framework LocalAuthentication") endif() endif() +if(HAIKU) + target_link_libraries(keepassx_core network) +endif() if(UNIX AND NOT APPLE) target_link_libraries(keepassx_core Qt5::DBus) endif() diff --git a/src/autotype/CMakeLists.txt b/src/autotype/CMakeLists.txt index df0483a08..6b9b8b678 100644 --- a/src/autotype/CMakeLists.txt +++ b/src/autotype/CMakeLists.txt @@ -1,5 +1,5 @@ if(WITH_XC_AUTOTYPE) - if(UNIX AND NOT APPLE) + if(UNIX AND NOT APPLE AND NOT HAIKU) find_package(X11) find_package(Qt5X11Extras 5.2) if(PRINT_SUMMARY) diff --git a/src/crypto/ssh/includes.h b/src/crypto/ssh/includes.h index 23b4aeeb6..ab29d77dd 100644 --- a/src/crypto/ssh/includes.h +++ b/src/crypto/ssh/includes.h @@ -8,7 +8,7 @@ #endif #include -#ifdef _WIN32 +#if defined(_WIN32) || defined(__HAIKU__) #include typedef uint32_t u_int32_t; diff --git a/src/gui/MainWindow.cpp b/src/gui/MainWindow.cpp index 6e3c96af0..e91f35ed9 100644 --- a/src/gui/MainWindow.cpp +++ b/src/gui/MainWindow.cpp @@ -391,8 +391,10 @@ MainWindow::MainWindow() connect(m_ui->tabWidget, SIGNAL(messageDismissGlobal()), this, SLOT(hideGlobalMessage())); +#ifndef Q_OS_HAIKU m_screenLockListener = new ScreenLockListener(this); connect(m_screenLockListener, SIGNAL(screenLocked()), SLOT(handleScreenLock())); +#endif updateTrayIcon();