culturered_client/PhotoDisplay/qzxing/CMakeLists.txt
2024-09-07 11:34:44 +08:00

125 lines
3.1 KiB
CMake

find_package(Qt6 COMPONENTS Core REQUIRED)
find_package(Qt6 COMPONENTS Gui REQUIRED)
find_package(Qt6 COMPONENTS Multimedia )
find_package(Qt6 REQUIRED Svg Quick QuickControls2)
SET(BIGINT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/zxing/bigint)
SET(WIN32_DIR ${CMAKE_CURRENT_SOURCE_DIR}/zxing/win32/zxing)
SET(ZXING_DIR ${CMAKE_CURRENT_SOURCE_DIR}/zxing/zxing)
set(CMAKE_AUTOMOC ON)
set(CMAKE_WARN_ON)
set(SOURCES
CameraImageWrapper.cpp
CameraImageWrapper.h
ImageHandler.cpp
ImageHandler.h
QZXing.cpp
QZXing.h
QZXing_global.h
)
SET(QZXING_USE_QML OFF)
if(QZXING_MULTIMEDIA)
LIST(APPEND SOURCES QZXingFilter.cpp QZXingFilter.h)
add_definitions(-DQZXING_MULTIMEDIA)
SET(QZXING_USE_QML ON)
endif(QZXING_MULTIMEDIA)
if(QZXING_USE_QML)
LIST(APPEND SOURCES QZXingImageProvider.cpp QZXingImageProvider.h)
add_definitions(-DQZXING_QML)
endif(QZXING_USE_QML)
set(QZXING_USE_ENCODER ON)
if(QZXING_USE_ENCODER)
add_definitions(-DENABLE_ENCODER_GENERIC -DENABLE_ENCODER_QR_CODE)
endif(QZXING_USE_ENCODER)
# add_library(qzxing "" ${SOURCES})
if(WIN32)
add_subdirectory(zxing/win32)
if(MSVC)
add_definitions(-D__STDC_LIMIT_MACROS)
endif(MSVC)
add_definitions(-DNO_ICONV)
endif(WIN32)
if(ANDROID)
add_definitions(-DNO_ICONV)
endif()
if(VS_WINRT_COMPONENT)
add_definitions(-DNO_ICONV)
endif(VS_WINRT_COMPONENT)
add_subdirectory(zxing/bigint)
add_subdirectory(zxing/zxing)
if(QZXING_MULTIMEDIA)
target_link_libraries(${PROJECT_NAME} Qt6::Multimedia)
target_compile_definitions(${PROJECT_NAME} PUBLIC -DQZXING_MULTIMEDIA)
endif(QZXING_MULTIMEDIA)
if(QZXING_USE_QML)
target_link_libraries(${PROJECT_NAME}
Qt6::Svg
Qt6::Quick
Qt6::QuickControls2)
target_compile_definitions(${PROJECT_NAME} PUBLIC -DQZXING_QML)
endif(QZXING_USE_QML)
if(QZXING_USE_ENCODER)
target_compile_definitions(${PROJECT_NAME} PUBLIC -DENABLE_ENCODER_GENERIC -DENABLE_ENCODER_QR_CODE)
endif(QZXING_USE_ENCODER)
if(QZXING_USE_DECODER_QR_CODE)
target_compile_definitions(${PROJECT_NAME} PRIVATE -DENABLE_DECODER_QR_CODE)
endif()
if(QZXING_USE_DECODER_1D_BARCODES)
target_compile_definitions(${PROJECT_NAME} PRIVATE -DENABLE_DECODER_1D_BARCODES)
endif()
if(QZXING_USE_DECODER_DATA_MATRIX)
target_compile_definitions(${PROJECT_NAME} PRIVATE -DENABLE_DECODER_DATA_MATRIX)
endif()
if(QZXING_USE_DECODER_AZTEC)
target_compile_definitions(${PROJECT_NAME} PRIVATE -DENABLE_DECODER_AZTEC)
endif()
if(QZXING_USE_DECODER_PDF17)
target_compile_definitions(${PROJECT_NAME} PRIVATE -DENABLE_DECODER_PDF17)
endif()
if(QZXING_USE_DECODER_1D_BARCODES)
target_compile_definitions(${PROJECT_NAME} PRIVATE -DENABLE_DECODER_1D_BARCODES)
endif()
# Change Global Definitions depending on how you want to use the library
target_compile_definitions(${PROJECT_NAME} PUBLIC DISABLE_LIBRARY_FEATURES)
# Target includes
target_include_directories(${PROJECT_NAME}
PRIVATE
.
zxing
zxing/win32/zxing
zxing/zxing
zxing/bigint
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
)