diff --git a/CMakeLists.txt b/CMakeLists.txt index 01d8038a4e..e2c64f60ae 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -467,7 +467,7 @@ if(WITH_COVERAGE) append_coverage_compiler_flags() set(COVERAGE_EXCLUDES - "'^(.+/)?(thirdparty|zxcvbn)/.*'" + "'^(.+/)?thirdparty/.*'" "'^(.+/)?main\\.cpp$$'" "'^(.+/)?cli/keepassxc-cli\\.cpp$$'" "'^(.+/)?proxy/keepassxc-proxy\\.cpp$$'") @@ -613,6 +613,12 @@ endif() include_directories(SYSTEM ${ZLIB_INCLUDE_DIR}) +find_library(ZXCVBN_LIBRARIES zxcvbn) +if(NOT ZXCVBN_LIBRARIES) + add_subdirectory(src/thirdparty/zxcvbn) + set(ZXCVBN_LIBRARIES zxcvbn) +endif(NOT ZXCVBN_LIBRARIES) + add_subdirectory(src) add_subdirectory(share) if(WITH_TESTS) diff --git a/COPYING b/COPYING index 6baf4c27e2..7e24fcf661 100644 --- a/COPYING +++ b/COPYING @@ -249,7 +249,7 @@ Files: src/streams/qtiocompressor.* Copyright: 2009-2012, Nokia Corporation and/or its subsidiary(-ies) License: LGPL-2.1 or GPL-3 -Files: src/zxcvbn/zxcvbn.* +Files: src/thirdparty/zxcvbn/zxcvbn.* Copyright: 2015-2017, Tony Evans License: MIT diff --git a/cmake/CLangFormat.cmake b/cmake/CLangFormat.cmake index 7984f25286..9ddc4edb29 100644 --- a/cmake/CLangFormat.cmake +++ b/cmake/CLangFormat.cmake @@ -16,7 +16,6 @@ set(EXCLUDED_DIRS # third-party directories src/thirdparty - src/zxcvbn # objective-c directories src/quickunlock/touchid src/autotype/mac diff --git a/codecov.yaml b/codecov.yaml index 27cb92e150..98aa33d22b 100644 --- a/codecov.yaml +++ b/codecov.yaml @@ -24,6 +24,5 @@ fixes: ignore: - "src/gui/styles/**" - "src/thirdparty/**" - - "src/zxcvbn/**" comment: require_changes: true diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index a95e58f94d..f520a3a294 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -16,20 +16,6 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) -find_library(ZXCVBN_LIBRARIES zxcvbn) -if(NOT ZXCVBN_LIBRARIES) - add_library(zxcvbn STATIC zxcvbn/zxcvbn.c) - # Disable error-level shadow issues - if(CC_HAS_Wshadow_compatible_local) - set_property(SOURCE zxcvbn/zxcvbn.c APPEND PROPERTY COMPILE_OPTIONS "-Wno-shadow-compatible-local") - endif() - if(CC_HAS_Wshadow_local) - set_property(SOURCE zxcvbn/zxcvbn.c APPEND PROPERTY COMPILE_OPTIONS "-Wno-shadow-local") - endif() - include_directories(${CMAKE_CURRENT_SOURCE_DIR}/zxcvbn) - set(ZXCVBN_LIBRARIES zxcvbn) -endif(NOT ZXCVBN_LIBRARIES) - set(keepassx_SOURCES core/Alloc.cpp core/AutoTypeAssociations.cpp diff --git a/src/cli/CMakeLists.txt b/src/cli/CMakeLists.txt index a3852c800f..5d2bb6ba19 100644 --- a/src/cli/CMakeLists.txt +++ b/src/cli/CMakeLists.txt @@ -45,7 +45,7 @@ set(cli_SOURCES Show.cpp) add_library(cli STATIC ${cli_SOURCES}) -target_link_libraries(cli Qt5::Core) +target_link_libraries(cli ${ZXCVBN_LIBRARIES} Qt5::Core) find_package(Readline) diff --git a/src/thirdparty/zxcvbn/CMakeLists.txt b/src/thirdparty/zxcvbn/CMakeLists.txt new file mode 100644 index 0000000000..dcc2a5efd6 --- /dev/null +++ b/src/thirdparty/zxcvbn/CMakeLists.txt @@ -0,0 +1,9 @@ +add_library(zxcvbn STATIC zxcvbn.c) +# Disable error-level shadow issues +if(CC_HAS_Wshadow_compatible_local) + set_property(SOURCE zxcvbn.c APPEND PROPERTY COMPILE_OPTIONS "-Wno-shadow-compatible-local") +endif() +if(CC_HAS_Wshadow_local) + set_property(SOURCE zxcvbn.c APPEND PROPERTY COMPILE_OPTIONS "-Wno-shadow-local") +endif() +target_include_directories(zxcvbn PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) diff --git a/src/zxcvbn/dict-src.h b/src/thirdparty/zxcvbn/dict-src.h similarity index 100% rename from src/zxcvbn/dict-src.h rename to src/thirdparty/zxcvbn/dict-src.h diff --git a/src/zxcvbn/zxcvbn.c b/src/thirdparty/zxcvbn/zxcvbn.c similarity index 100% rename from src/zxcvbn/zxcvbn.c rename to src/thirdparty/zxcvbn/zxcvbn.c diff --git a/src/zxcvbn/zxcvbn.h b/src/thirdparty/zxcvbn/zxcvbn.h similarity index 100% rename from src/zxcvbn/zxcvbn.h rename to src/thirdparty/zxcvbn/zxcvbn.h diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 4b26d38bc0..8fee4e8c22 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -249,7 +249,7 @@ if(WITH_XC_NETWORKING OR WITH_XC_BROWSER) endif() add_unit_test(NAME testcli SOURCES TestCli.cpp - LIBS testsupport cli ${TEST_LIBRARIES}) + LIBS testsupport cli ${ZXCVBN_LIBRARIES} ${TEST_LIBRARIES}) target_compile_definitions(testcli PRIVATE KEEPASSX_CLI_PATH="$") if(WITH_GUI_TESTS) diff --git a/tests/TestCli.cpp b/tests/TestCli.cpp index f3fa69d896..3022ae606f 100644 --- a/tests/TestCli.cpp +++ b/tests/TestCli.cpp @@ -26,7 +26,6 @@ #include "crypto/Crypto.h" #include "keys/FileKey.h" #include "keys/drivers/YubiKey.h" -#include "zxcvbn/zxcvbn.h" #include "cli/Add.h" #include "cli/AddGroup.h" @@ -59,6 +58,7 @@ #include #include #include +#include QTEST_MAIN(TestCli)