Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updates to get Qt6 and Qt5 support with cmake #243

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
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
26 changes: 16 additions & 10 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
cmake_minimum_required(VERSION 3.3)
project(QZXing)

find_package(Qt5 COMPONENTS Core REQUIRED)
find_package(Qt5 COMPONENTS Gui REQUIRED)
find_package(Qt5 COMPONENTS Multimedia )
find_package(Qt5 REQUIRED Svg Quick QuickControls2)
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS
Core Gui Svg Quick QuickControls2)
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core REQUIRED)
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Gui REQUIRED)
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Multimedia)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED Svg Quick QuickControls2)

SET(BIGINT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/zxing/bigint)
SET(WIN32_DIR ${CMAKE_CURRENT_SOURCE_DIR}/zxing/win32/zxing)
Expand All @@ -26,7 +28,11 @@ set(SOURCES

if(QZXING_MULTIMEDIA)

LIST(APPEND SOURCES QZXingFilter.cpp QZXingFilter.h)
if(${QT_VERSION_MAJOR} EQUAL 6)
LIST(APPEND SOURCES QZXingFilterVideoSink.cpp QZXingFilterVideoSink.h)
else()
LIST(APPEND SOURCES QZXingFilter.cpp QZXingFilter.h)
endif()
add_definitions(-DQZXING_MULTIMEDIA)

SET(QZXING_USE_QML ON)
Expand Down Expand Up @@ -65,18 +71,18 @@ add_subdirectory(zxing/bigint)

add_subdirectory(zxing/zxing)

target_link_libraries(qzxing Qt5::Core Qt5::Gui)
target_link_libraries(qzxing Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Gui)

if(QZXING_MULTIMEDIA)
target_link_libraries(qzxing Qt5::Multimedia)
target_link_libraries(qzxing Qt${QT_VERSION_MAJOR}::Multimedia)
target_compile_definitions(qzxing PUBLIC -DQZXING_MULTIMEDIA)
endif(QZXING_MULTIMEDIA)

if(QZXING_USE_QML)
target_link_libraries(qzxing
Qt5::Svg
Qt5::Quick
Qt5::QuickControls2)
Qt${QT_VERSION_MAJOR}::Svg
Qt${QT_VERSION_MAJOR}::Quick
Qt${QT_VERSION_MAJOR}::QuickControls2)
target_compile_definitions(qzxing PUBLIC -DQZXING_QML)
endif(QZXING_USE_QML)

Expand Down
71 changes: 71 additions & 0 deletions tests/src/QZXingTests/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
cmake_minimum_required(VERSION 3.1.0)

project(QZXingTests)

set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 11)

set(QZXING_USE_ENCODER ON)
set(QZXING_USE_DECODER_QR_CODE ON)
set(QZXING_USE_DECODER_1D_BARCODES ON)
set(QZXING_USE_DECODER_DATA_MATRIX ON)
set(QZXING_USE_DECODER_AZTEC ON)
set(QZXING_USE_DECODER_PDF17 ON)
set(QZXING_USE_DECODER_1D_BARCODES ON)
set(QZXING_MULTIMEDIA ON)

find_package(QT NAMES Qt5 Qt6 REQUIRED COMPONENTS
Core Gui Quick Concurrent Multimedia
)
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS
Core Gui Quick Concurrent Multimedia REQUIRED
)

add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../../../src qzxing)
include_directories(BEFORE SYSTEM
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/../../../src
${CMAKE_CURRENT_SOURCE_DIR}/../../../src/zxing
)

set(SOURCES
main.cpp
DecodeValidator.cpp
ValidationStats.cpp
EncodeValidator.cpp
TestCase.cpp
zxing/qrcode/encoder/MatrixUtilTests.cpp
zxing/qrcode/encoder/MaskUtilTests.cpp
zxing/qrcode/encoder/QRCodeTests.cpp
zxing/qrcode/encoder/EncoderTests.cpp
zxing/common/reedsolomon/ReedSolomonEncoderTests.cpp
zxing/common/BitArrayTests.cpp
zxing/qrcode/encoder/BitVectorTests.cpp
EncoderStressTest.cpp
)

set(HEADERS
DecodeValidator.h
ValidationStats.h
EncodeValidator.h
TestCase.h
zxing/qrcode/encoder/MatrixUtilTests.h
zxing/qrcode/encoder/MaskUtilTests.h
zxing/qrcode/encoder/QRCodeTests.h
zxing/qrcode/encoder/EncoderTests.h
zxing/common/reedsolomon/ReedSolomonEncoderTests.h
zxing/common/BitArrayTests.h
zxing/qrcode/encoder/BitVectorTests.h
EncoderStressTest.h
)

add_executable(${PROJECT_NAME} ${SOURCES} ${HEADERS})
target_link_libraries(${PROJECT_NAME} PRIVATE
Qt${QT_VERSION_MAJOR}::Core
Qt${QT_VERSION_MAJOR}::Gui
Qt${QT_VERSION_MAJOR}::Quick
Qt${QT_VERSION_MAJOR}::Concurrent
Qt${QT_VERSION_MAJOR}::Multimedia
qzxing
)