Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
lzstring.pro.user
.DS_Store
10 changes: 10 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -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)
7 changes: 6 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

<h2>Qt implementation of LZ-String, version 1.4.4.</h2>
<h2>Qt6 (cmake) implementation of LZ-String, version 1.4.5.</h2>
<p>
Based on the LZ-String compression algorithm found here:<br/>
http://pieroxy.net/blog/pages/lz-string/index.html
Expand All @@ -16,3 +16,8 @@ Implemented functions:<br/>
<li>compressToUint8Array() / decompressFromUint8Array() - <b>NO</b></li>
<li>compressToEncodedURIComponent() / decompressFromEncodedURIComponent() - <b>NO</b></li>
</ul>

<p>
This Qt6 port relies on Qt5-compat for classes QStringRef and QTextCodec.<br/>
Future improvements should focus on removing this dependency.<br/>
<br/></p>
5 changes: 0 additions & 5 deletions lzstring.pro

This file was deleted.

23 changes: 23 additions & 0 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -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)
6 changes: 0 additions & 6 deletions src/lzstring.pri

This file was deleted.

7 changes: 7 additions & 0 deletions tests/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
cmake_minimum_required(VERSION 3.14)

project(
qt-lzstring-tests
LANGUAGES CXX)

add_subdirectory(lzstring_test)
38 changes: 38 additions & 0 deletions tests/lzstring_test/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -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)
51 changes: 0 additions & 51 deletions tests/lzstring_test/lzstring_test.pro

This file was deleted.

3 changes: 0 additions & 3 deletions tests/tests.pro

This file was deleted.