cmake_minimum_required(VERSION 3.16) project(TF_WebApp) option(TFWEBAPP_ENABLE_STATIC "Enable static build" ON) option(TFWEBAPP_ENABLE_SHARED "Enable shared build" ON) option(TFWEBAPP_ENABLE_EXAMPLES "Enable examples" OFF) option(TFWEBAPP_FETCHCONTENT "Fetch content" ON) set(TFWEBAPP_SOURCES src/lib.cpp ) include(FetchContent) FetchContent_Declare( WebView GIT_REPOSITORY https://github.com/webview/webview.git ) set(WEBVIEW_INSTALL_TARGETS ON) FetchContent_MakeAvailable(WebView) list(APPEND TessesFrameworkWebAppLibs webview_core_headers) if(TFWEBAPP_ENABLE_STATIC) add_library(tessesframework_webapp STATIC ${TFWEBAPP_SOURCES}) target_link_libraries(tessesframework_webapp PRIVATE webview::core) list(APPEND TessesFrameworkWebAppLibs tessesframework_webapp) target_include_directories(tessesframework_webapp PUBLIC "$" "$" ) endif() if(TFWEBAPP_ENABLE_SHARED) add_library(tessesframework_webapp_shared SHARED ${TFWEBAPP_SOURCES}) target_link_libraries(tessesframework_webapp_shared PRIVATE webview::core) list(APPEND TessesFrameworkWebAppLibs tessesframework_webapp_shared) target_include_directories(tessesframework_webapp_shared PUBLIC "$" "$" ) endif() if(TFWEBAPP_FETCHCONTENT) FetchContent_Declare( TessesFramework GIT_REPOSITORY https://onedev.site.tesses.net/tesses-framework.git ) FetchContent_MakeAvailable(TessesFramework) if(TFWEBAPP_ENABLE_STATIC) target_link_libraries(tessesframework_webapp PUBLIC tessesframework) endif() if(TFWEBAPP_ENABLE_SHARED) target_link_libraries(tessesframework_webapp_shared PUBLIC tessesframework_shared) endif() list(APPEND TessesFrameworkWebAppLibs ${TessesFrameworkTargets}) else() find_package(TessesFramework REQUIRED) if(TFWEBAPP_ENABLE_STATIC) target_link_libraries(tessesframework_webapp PUBLIC TessesFramework::tessesframework) endif() if(TFWEBAPP_ENABLE_SHARED) target_link_libraries(tessesframework_webapp_shared PUBLIC TessesFramework::tessesframework_shared) endif() endif() if(TFWEBAPP_ENABLE_EXAMPLES) add_executable(printargs examples/printargs.cpp) target_link_libraries(printargs PUBLIC tessesframework_webapp) endif() install(TARGETS ${TessesFrameworkWebAppLibs} EXPORT TessesFrameworkWebAppTargets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) install(FILES include/TF_WebApp.hpp DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) install(EXPORT TessesFrameworkWebAppTargets FILE TessesFrameworkWebAppTargets.cmake NAMESPACE TessesFrameworkWebApp:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/TessesFrameworkWebApp ) configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/TessesFrameworkWebAppConfig.cmake" INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/TessesFrameworkWebApp) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/TessesFrameworkWebAppConfig.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/TessesFrameworkWebApp)