Revision control
Copy as Markdown
# Copyright (C) 2024 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
cmake_minimum_required(VERSION 3.16)
project(networkauth_oauth_snippets)
find_package(Qt6 REQUIRED COMPONENTS Core NetworkAuth Gui Widgets)
find_package(Qt6 OPTIONAL_COMPONENTS Quick WebEngineWidgets WebEngineQuick QUIET)
qt_standard_project_setup(REQUIRES 6.9)
add_executable(networkauth_oauth_snippets
main.cpp
src_oauth_replyhandlers_p.h src_oauth_replyhandlers.cpp
)
set_target_properties(networkauth_oauth_snippets PROPERTIES
WIN32_EXECUTABLE TRUE
MACOSX_BUNDLE TRUE
)
target_link_libraries(networkauth_oauth_snippets
PRIVATE
Qt6::Core
Qt6::NetworkAuth
Qt6::Gui
Qt6::Widgets
)
if(TARGET Qt6::WebEngineWidgets)
target_link_libraries(networkauth_oauth_snippets
PRIVATE
Qt6::WebEngineWidgets
)
else()
message("QtWebEngineWidgets not available, using QWebEngineView as user-agent not possible")
endif()
if(TARGET Qt6::Quick AND TARGET Qt6::WebEngineQuick)
target_link_libraries(networkauth_oauth_snippets
PRIVATE
Qt6::Quick
Qt6::WebEngineQuick
)
else()
message("QtWebEngineQuick not available, using WebEngineView as user-agent not possible")
endif()
# Check if jwt-cpp is available (it's a headers-only library => copy the project's include dir).
# Also check if we have OpenSSL, as jwt-cpp relies on it
#! [oidc-jwt-cpp-available-cmake]
find_package(OpenSSL 1.0.0 QUIET)
set(JWT_CPP_INCLUDE_DIR "${CMAKE_SOURCE_DIR}/include")
if(OPENSSL_FOUND AND EXISTS "${JWT_CPP_INCLUDE_DIR}/jwt-cpp/jwt.h")
#! [oidc-jwt-cpp-available-cmake]
message("Found OpenSSL version ${OPENSSL_VERSION}, and jwt-cpp: ${JWT_CPP_INCLUDE_DIR}")
message("Enabling jwt-cpp support")
#! [oidc-jwt-cpp-link-and-include-cmake]
target_include_directories(networkauth_oauth_snippets PRIVATE "${JWT_CPP_INCLUDE_DIR}")
target_link_libraries(networkauth_oauth_snippets PRIVATE OpenSSL::SSL OpenSSL::Crypto)
target_compile_definitions(networkauth_oauth_snippets PRIVATE JWT_CPP_AVAILABLE)
#! [oidc-jwt-cpp-link-and-include-cmake]
else()
message("jwt-cpp support not available (check if OpenSSL and "
"${JWT_CPP_INCLUDE_DIR}/jwt-cpp/jwt.h are available)")
endif()
if(TARGET Qt6::Quick AND TARGET Qt6::WebEngineQuick)
qt_add_qml_module(networkauth_oauth_snippets
URI OAuthSnippets
VERSION 1.0
SOURCES
src_oauth_replyhandlers_p.h src_oauth_replyhandlers.cpp
QML_FILES
MainWindow.qml
)
endif()