From 007ab28d74d2d0422b83bc064d0117c4fd4379fc Mon Sep 17 00:00:00 2001 From: artwaw Date: Thu, 19 Jan 2023 13:14:02 +0000 Subject: [PATCH] Moved to cmake --- .gitignore | 1 + CMakeLists.txt | 10 ++++++ README.md | 7 +++- lzstring.pro | 5 --- src/CMakeLists.txt | 23 ++++++++++++ src/lzstring.pri | 6 ---- tests/CMakeLists.txt | 7 ++++ tests/lzstring_test/CMakeLists.txt | 38 ++++++++++++++++++++ tests/lzstring_test/lzstring_test.pro | 51 --------------------------- tests/tests.pro | 3 -- 10 files changed, 85 insertions(+), 66 deletions(-) create mode 100644 CMakeLists.txt delete mode 100644 lzstring.pro create mode 100644 src/CMakeLists.txt delete mode 100644 src/lzstring.pri create mode 100644 tests/CMakeLists.txt create mode 100644 tests/lzstring_test/CMakeLists.txt delete mode 100644 tests/lzstring_test/lzstring_test.pro delete mode 100644 tests/tests.pro diff --git a/.gitignore b/.gitignore index 9c1a3a1..b5b6ec3 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ lzstring.pro.user +.DS_Store diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..9e94470 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,10 @@ +cmake_minimum_required(VERSION 3.14) + +project( + qt-lzstring + LANGUAGES CXX + VERSION 1.4.5 + DESCRIPTION "Qt6 port of LZString compression") + +add_subdirectory(src) +add_subdirectory(tests) diff --git a/README.md b/README.md index 4d6d382..0163c83 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -

Qt implementation of LZ-String, version 1.4.4.

+

Qt6 (cmake) implementation of LZ-String, version 1.4.5.

Based on the LZ-String compression algorithm found here:
http://pieroxy.net/blog/pages/lz-string/index.html @@ -16,3 +16,8 @@ Implemented functions:

  • compressToUint8Array() / decompressFromUint8Array() - NO
  • compressToEncodedURIComponent() / decompressFromEncodedURIComponent() - NO
  • + +

    + This Qt6 port relies on Qt5-compat for classes QStringRef and QTextCodec.
    + Future improvements should focus on removing this dependency.
    +

    \ No newline at end of file diff --git a/lzstring.pro b/lzstring.pro deleted file mode 100644 index 8515aa2..0000000 --- a/lzstring.pro +++ /dev/null @@ -1,5 +0,0 @@ - -TEMPLATE = subdirs -SUBDIRS += tests - -include(src/lzstring.pri) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..bfe3ef7 --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,23 @@ +cmake_minimum_required(VERSION 3.14) + +project(qt-lzstring LANGUAGES CXX) + +set(CMAKE_AUTOUIC ON) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core) +find_package(Qt6 REQUIRED COMPONENTS Core) +find_package(Qt6 REQUIRED COMPONENTS Core5Compat) + +add_library(qt-lzstring SHARED + lzstring.cpp + lzstring.h +) + +target_link_libraries(qt-lzstring PRIVATE Qt6::Core) +target_link_libraries(qt-lzstring PRIVATE Qt6::Core5Compat) + +target_compile_definitions(qt-lzstring PRIVATE QT6LZSTRING_LIBRARY) diff --git a/src/lzstring.pri b/src/lzstring.pri deleted file mode 100644 index 15ee7b8..0000000 --- a/src/lzstring.pri +++ /dev/null @@ -1,6 +0,0 @@ - -INCLUDEPATH += $$PWD -DEPENDPATH += $$PWD - -HEADERS += $$PWD/lzstring.h -SOURCES += $$PWD/lzstring.cpp diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt new file mode 100644 index 0000000..9a952dd --- /dev/null +++ b/tests/CMakeLists.txt @@ -0,0 +1,7 @@ +cmake_minimum_required(VERSION 3.14) + +project( + qt-lzstring-tests + LANGUAGES CXX) + +add_subdirectory(lzstring_test) diff --git a/tests/lzstring_test/CMakeLists.txt b/tests/lzstring_test/CMakeLists.txt new file mode 100644 index 0000000..466f155 --- /dev/null +++ b/tests/lzstring_test/CMakeLists.txt @@ -0,0 +1,38 @@ +cmake_minimum_required(VERSION 3.5) + + +project(lzstring_tests LANGUAGES CXX) + +enable_testing() + +find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Test) +find_package(Qt6 REQUIRED COMPONENTS Test) +find_package(Qt6 REQUIRED COMPONENTS Core5Compat) + +set(CMAKE_AUTOUIC ON) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) + +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +add_executable(lzstring_tests lzstring_test.cpp) +add_test(NAME lzstring_tests COMMAND lzstring_tests) + +target_include_directories(lzstring_tests PRIVATE "../../src") + +add_custom_command( + TARGET lzstring_tests POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_SOURCE_DIR}/tests/lzstring_test/data_compressed.json + ${CMAKE_CURRENT_BINARY_DIR}/data_compressed.json) + +add_custom_command( + TARGET lzstring_tests POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_SOURCE_DIR}/tests/lzstring_test/data.json + ${CMAKE_CURRENT_BINARY_DIR}/data.json) + +target_link_libraries(lzstring_tests PRIVATE Qt6::Test) +target_link_libraries(lzstring_tests PRIVATE Qt6::Core5Compat) +target_link_libraries(lzstring_tests PRIVATE qt-lzstring) diff --git a/tests/lzstring_test/lzstring_test.pro b/tests/lzstring_test/lzstring_test.pro deleted file mode 100644 index 2be58ad..0000000 --- a/tests/lzstring_test/lzstring_test.pro +++ /dev/null @@ -1,51 +0,0 @@ -#------------------------------------------------- -# -# Project created by QtCreator 2016-09-20T08:36:19 -# -#------------------------------------------------- - -TARGET = lzstring_test -TEMPLATE = app - -QT += testlib -QT -= gui - -CONFIG += console -CONFIG -= app_bundle debug_and_release debug_and_release_target - -DEFINES += SRCDIR=\\\"$$PWD/\\\" -SOURCES += lzstring_test.cpp - -include(../../src/lzstring.pri) - -defineReplace(__quote) { - return(\"$$1\") -} - -defineTest(__copyFilesToDestdir) { - files = $$1 - isEmpty(files) { - return(1) - } - for(file, files) { - - PARTS = $$split(file, |) - FILE = $$member(PARTS, 0) - SUBDIR = $$member(PARTS, 1) - DIR = $$OUT_PWD/$$SUBDIR - - # Replace / with \. - win32:FILE ~= s,/,\\,g - win32:DIR ~= s,/,\\,g - - if (!isEmpty(SUBDIR)) { - QMAKE_PRE_LINK += $(CHK_DIR_EXISTS) $$__quote($$DIR) $(MKDIR) $$__quote($$DIR) $$escape_expand(\\n\\t) - } - QMAKE_PRE_LINK += $(COPY_FILE) $$__quote($$FILE) $$__quote($$DIR) $$escape_expand(\\n\\t) - } - - export(QMAKE_PRE_LINK) -} - -COPY_FILES += $$PWD/data.json -__copyFilesToDestdir($$COPY_FILES) diff --git a/tests/tests.pro b/tests/tests.pro deleted file mode 100644 index d015952..0000000 --- a/tests/tests.pro +++ /dev/null @@ -1,3 +0,0 @@ - -TEMPLATE = subdirs -SUBDIRS += lzstring_test