function(projt_add_libqrencode) # Avoid optional tools/tests that require getopt/PNG on Windows. if(WIN32) set(_qrencode_prev_build_shared_libs "${BUILD_SHARED_LIBS}") set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE) set(ENABLE_SHARED OFF CACHE BOOL "" FORCE) set(ENABLE_STATIC ON CACHE BOOL "" FORCE) endif() set(WITH_TOOLS OFF CACHE BOOL "" FORCE) set(WITH_PNG OFF CACHE BOOL "" FORCE) set(_launcher_prev_build_testing "${BUILD_TESTING}") set(_launcher_prev_with_tests "") set(_launcher_with_tests_set FALSE) if(DEFINED WITH_TESTS) set(_launcher_prev_with_tests "${WITH_TESTS}") set(_launcher_with_tests_set TRUE) endif() set(BUILD_TESTING OFF CACHE BOOL "" FORCE) set(WITH_TESTS OFF CACHE BOOL "" FORCE) set(_qrencode_prev_install_libdir "") set(_qrencode_install_libdir_set FALSE) if(APPLE) set(_qrencode_bundle_dir "ProjTLauncher.app/Contents/Frameworks") if(DEFINED Launcher_Name AND NOT Launcher_Name STREQUAL "") set(_qrencode_bundle_dir "${Launcher_Name}.app/Contents/Frameworks") endif() if(DEFINED CMAKE_INSTALL_LIBDIR) set(_qrencode_prev_install_libdir "${CMAKE_INSTALL_LIBDIR}") set(_qrencode_install_libdir_set TRUE) endif() set(CMAKE_INSTALL_LIBDIR "${_qrencode_bundle_dir}" CACHE PATH "" FORCE) endif() if(UNIX AND NOT APPLE) if(DEFINED Launcher_BUNDLED_LIBDIR AND NOT Launcher_BUNDLED_LIBDIR STREQUAL "") projt_push_install_libdir("${Launcher_BUNDLED_LIBDIR}") endif() if(DEFINED Launcher_BUNDLED_INCLUDEDIR AND NOT Launcher_BUNDLED_INCLUDEDIR STREQUAL "") projt_push_install_includedir("${Launcher_BUNDLED_INCLUDEDIR}") endif() endif() projt_push_output_dirs("libqrencode") projt_push_autogen_disabled() set(PROJT_DISABLE_SUMMARY ON CACHE BOOL "" FORCE) add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../libqrencode libqrencode) projt_pop_autogen_disabled() projt_pop_output_dirs() if(UNIX AND NOT APPLE) if(DEFINED Launcher_BUNDLED_INCLUDEDIR AND NOT Launcher_BUNDLED_INCLUDEDIR STREQUAL "") projt_pop_install_includedir() endif() if(DEFINED Launcher_BUNDLED_LIBDIR AND NOT Launcher_BUNDLED_LIBDIR STREQUAL "") projt_pop_install_libdir() endif() endif() if(APPLE) if(_qrencode_install_libdir_set) set(CMAKE_INSTALL_LIBDIR "${_qrencode_prev_install_libdir}" CACHE PATH "" FORCE) else() unset(CMAKE_INSTALL_LIBDIR CACHE) endif() endif() if(WIN32) set(BUILD_SHARED_LIBS "${_qrencode_prev_build_shared_libs}" CACHE BOOL "" FORCE) endif() set(BUILD_TESTING "${_launcher_prev_build_testing}" CACHE BOOL "" FORCE) if(_launcher_with_tests_set) set(WITH_TESTS "${_launcher_prev_with_tests}" CACHE BOOL "" FORCE) else() unset(WITH_TESTS CACHE) endif() unset(_launcher_prev_build_testing) unset(_launcher_prev_with_tests) unset(_launcher_with_tests_set) unset(_qrencode_prev_install_libdir) unset(_qrencode_install_libdir_set) add_library(qrcodegenerator ALIAS qrencode) # Ensure the qrencode target exposes include directories so consumers can find qrencode.h if(TARGET qrencode) get_target_property(_qr_inc qrencode INTERFACE_INCLUDE_DIRECTORIES) if(NOT _qr_inc) target_include_directories(qrencode PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/../libqrencode" "${CMAKE_CURRENT_SOURCE_DIR}/../libqrencode/src" "${CMAKE_CURRENT_SOURCE_DIR}/../libqrencode/lib" "${CMAKE_CURRENT_SOURCE_DIR}/../libqrencode/include") endif() endif() if(NOT DEFINED QRENCODE_INC OR QRENCODE_INC STREQUAL "") set(QRENCODE_INC "${CMAKE_CURRENT_SOURCE_DIR}/../libqrencode;${CMAKE_CURRENT_SOURCE_DIR}/../libqrencode/include;${CMAKE_CURRENT_SOURCE_DIR}/../libqrencode/lib" CACHE PATH "QRENCODE include dir" FORCE) endif() endfunction()