# Copyright (C) 2019 - 2021 Robin Stuart # Adapted from qrencode/tests/CMakeLists.txt # Copyright (C) 2006-2017 Kentaro Fukuchi # vim: set ts=4 sw=4 et : cmake_minimum_required(VERSION 3.9) project(zint_backend_tests) enable_testing() set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/") option(ZINT_DEBUG "Set debug compile flag" OFF) option(ZINT_SANITIZE "Set sanitize compile/link flags" OFF) option(ZINT_TEST "Set test compile flag" OFF) find_package(LibZint REQUIRED) find_package(PNG) if(NOT PNG_FOUND) add_definitions(-DNO_PNG) endif() set(BWIPP_TAR ${CMAKE_CURRENT_SOURCE_DIR}/tools/bwipp_dump.ps.tar.xz) set(BWIPP_PS ${CMAKE_CURRENT_SOURCE_DIR}/tools/bwipp_dump.ps) if(NOT EXISTS ${BWIPP_PS}) execute_process(COMMAND ${CMAKE_COMMAND} -E tar -xf ${BWIPP_TAR} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/tools) endif() include(CheckCCompilerFlag) check_c_compiler_flag(-Wall C_COMPILER_FLAG_WALL) if(C_COMPILER_FLAG_WALL) add_compile_options("-Wall") endif() check_c_compiler_flag(-Wextra C_COMPILER_FLAG_WEXTRA) if(C_COMPILER_FLAG_WEXTRA) add_compile_options("-Wextra") endif() if(ZINT_DEBUG) check_c_compiler_flag(-g C_COMPILER_FLAG_G) if(C_COMPILER_FLAG_G) add_compile_options("-g") endif() endif() if(ZINT_SANITIZE) # check_c_compiler_flag fails for -fsanitize if(${CMAKE_C_COMPILER_ID} STREQUAL "GNU") add_compile_options("-fsanitize=undefined") add_compile_options("-fsanitize=address") link_libraries("-fsanitize=undefined -fsanitize=address") endif() endif() if(ZINT_TEST) add_definitions("-DZINT_TEST") endif() add_library(testcommon testcommon.c testcommon.h) if(PNG_FOUND) target_link_libraries(testcommon ZINT::ZINT PNG::PNG) else() target_link_libraries(testcommon ZINT::ZINT) endif() macro(zint_add_test test_name test_command) set(ADDITIONAL_LIBS "${ARGN}" ${LIBRARY_FLAGS}) add_executable(${test_command} ${test_command}.c) target_link_libraries(${test_command} testcommon ${ADDITIONAL_LIBS}) add_test(${test_name} ${test_command}) endmacro() zint_add_test(2of5, test_2of5) zint_add_test(auspost, test_auspost) zint_add_test(aztec, test_aztec) zint_add_test(big5, test_big5) zint_add_test(bmp, test_bmp) zint_add_test(channel, test_channel) zint_add_test(codablock, test_codablock) zint_add_test(code, test_code) zint_add_test(code1, test_code1) zint_add_test(code128, test_code128) zint_add_test(code16k, test_code16k) zint_add_test(code49, test_code49) zint_add_test(common, test_common) zint_add_test(composite, test_composite) zint_add_test(dmatrix, test_dmatrix) zint_add_test(dotcode, test_dotcode) zint_add_test(eci, test_eci) zint_add_test(emf, test_emf) zint_add_test(gb18030, test_gb18030) zint_add_test(gb2312, test_gb2312) zint_add_test(gif, test_gif) zint_add_test(gridmtx, test_gridmtx) zint_add_test(gs1, test_gs1) zint_add_test(hanxin, test_hanxin) zint_add_test(imail, test_imail) zint_add_test(iso3166, test_iso3166) zint_add_test(iso4217, test_iso4217) zint_add_test(ksx1001, test_ksx1001) zint_add_test(large, test_large) zint_add_test(library, test_library) zint_add_test(mailmark, test_mailmark) zint_add_test(maxicode, test_maxicode) zint_add_test(medical, test_medical) zint_add_test(pcx, test_pcx) zint_add_test(pdf417, test_pdf417) zint_add_test(plessey, test_plessey) if(PNG_FOUND) zint_add_test(png, test_png) endif() zint_add_test(postal, test_postal) zint_add_test(print, test_print) zint_add_test(ps, test_ps) zint_add_test(qr, test_qr) zint_add_test(raster, test_raster) zint_add_test(reedsol, test_reedsol) zint_add_test(rss, test_rss) zint_add_test(sjis, test_sjis) zint_add_test(svg, test_svg) zint_add_test(telepen, test_telepen) zint_add_test(tif, test_tif) zint_add_test(ultra, test_ultra) zint_add_test(upcean, test_upcean) zint_add_test(vector, test_vector)