mirror of
https://onedev.site.tesses.net/tesses-framework/tessesframework-webapp
synced 2026-02-08 08:25:46 +00:00
98 lines
3.2 KiB
CMake
98 lines
3.2 KiB
CMake
cmake_minimum_required(VERSION 3.16)
|
|
|
|
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
|
|
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
|
|
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
|
|
)
|
|
endif()
|
|
if(TFWEBAPP_ENABLE_SHARED)
|
|
add_library(tessesframework_webapp_shared STATIC ${TFWEBAPP_SOURCES})
|
|
target_link_libraries(tessesframework_webapp_shared PRIVATE webview::core)
|
|
list(APPEND TessesFrameworkWebAppLibs tessesframework_webapp_shared)
|
|
|
|
target_include_directories(tessesframework_webapp_shared
|
|
PUBLIC
|
|
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
|
|
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
|
|
)
|
|
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) |