Files
DarkflameServer/dDashboardServer/routes/CMakeLists.txt
Aaron Kimbrell fcf68639e3 feat(dashboard): check GitHub for a newer release or newer commits
A worker thread asks GitHub's API about update_check_repo: the latest release
and, for development and CI builds, how far the build's commit is behind its
branch (or main). Unauthenticated, with ETags, every update_check_interval_hours
(default 6); offline or rate limited, the last answer stays next to the error
and a used-up limit waits for its reset. The main loop logs results, sends
them to master (UPDATE_STATUS, again when the link comes back) and pushes
update_check to open pages. GET /api/update_check, and
POST /api/update_check/check (settings permission, once a minute). Nothing is
downloaded or installed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 10:47:58 -05:00

122 lines
3.5 KiB
CMake

set(DASHBOARDROUTES_SOURCES
"APIRoutes.cpp"
"StaticRoutes.cpp"
"DashboardRoutes.cpp"
"WSRoutes.cpp"
"AuthRoutes.cpp"
"ApiKeyRoutes.cpp"
"GrantRoutes.cpp"
"GuildRoutes.cpp"
"RouteUtils.cpp"
"PlayerActions.cpp"
"AccountRoutes.cpp"
"ClientAssets.cpp"
"GameText.cpp"
"MaintenanceRoutes.cpp"
"ReportRoutes.cpp"
"EconomyPlaces.cpp"
"SecurityRoutes.cpp"
"WebhookRoutes.cpp"
"EconomyJobs.cpp"
"LiveWorld.cpp"
"LiveUpdateRoutes.cpp"
"WorldReloadRoutes.cpp"
"SettingsRoutes.cpp"
"Background.cpp"
"Scheduler.cpp"
"SettingsCatalog.cpp"
"BackupRoutes.cpp"
"BackupFiles.cpp"
"ReportViews.cpp"
"CharacterTools.cpp"
"CharacterRestore.cpp"
"MissionTools.cpp"
"CharacterProgress.cpp"
"ServerRoutes.cpp"
"LogBundle.cpp"
"Traffic.cpp"
"TrafficHistory.cpp"
"NetworkView.cpp"
"PerfHistory.cpp"
"Performance.cpp"
"LeaderboardRoutes.cpp"
"VanityRoutes.cpp"
"ChatRoutes.cpp"
"ChatHistory.cpp"
"ChatFlagRoutes.cpp"
"ClientSysInfoRoutes.cpp"
"ClientSysInfoView.cpp"
"Strikes.cpp"
"Inspector.cpp"
"CaptureReplay.cpp"
"CDClientBrowser.cpp"
"SettingsHistory.cpp"
"Announcements.cpp"
"EventsCalendar.cpp"
"LiveEventRoutes.cpp"
"ChallengeRoutes.cpp"
"InstanceLoad.cpp"
"WorldView.cpp"
"Scenery.cpp"
"WorkerPool.cpp"
"Workers.cpp"
"AccountModeration.cpp"
"ModerationTools.cpp"
"ModeratorHelper.cpp"
"../ai/ClaudeClient.cpp"
"../ai/ModeratorPrompt.cpp"
"PublicRoutes.cpp"
"Showcase.cpp"
"FeaturedProperties.cpp"
"ContrabandRoutes.cpp"
"UgcRoutes.cpp"
"UgcLinks.cpp"
"UgcFetch.cpp"
"PropertyRentRoutes.cpp"
"PasswordRecovery.cpp"
"PrometheusMetrics.cpp"
"../email/SmtpClient.cpp"
"../email/EmailService.cpp"
"../email/OAuth2.cpp"
"../notify/WebhookFormat.cpp"
"../notify/Alerts.cpp"
"../notify/UpdateCheck.cpp"
"../notify/UpdateChecker.cpp"
# Shared with the world servers, which add items and models the same way
"${PROJECT_SOURCE_DIR}/dGame/dUtilities/ObjectIDManager.cpp"
)
add_library(DashboardRoutes STATIC ${DASHBOARDROUTES_SOURCES})
target_include_directories(DashboardRoutes PRIVATE
"${PROJECT_SOURCE_DIR}/dCommon"
"${PROJECT_SOURCE_DIR}/dCommon/dClient"
"${PROJECT_SOURCE_DIR}/dCommon/dEnums"
"${PROJECT_SOURCE_DIR}/dDatabase"
"${PROJECT_SOURCE_DIR}/dDatabase/CDClientDatabase"
"${PROJECT_SOURCE_DIR}/dDatabase/CDClientDatabase/CDClientTables"
"${PROJECT_SOURCE_DIR}/dDatabase/GameDatabase"
"${PROJECT_SOURCE_DIR}/dDatabase/GameDatabase/ITables"
"${PROJECT_SOURCE_DIR}/dDatabase/GameDatabase/MySQL"
"${PROJECT_SOURCE_DIR}/dNet"
"${PROJECT_SOURCE_DIR}/dWeb"
"${PROJECT_SOURCE_DIR}/dServer"
"${PROJECT_SOURCE_DIR}/thirdparty"
"${PROJECT_SOURCE_DIR}/thirdparty/nlohmann"
"${PROJECT_SOURCE_DIR}/thirdparty/libbcrypt/include"
"${PROJECT_SOURCE_DIR}/dDashboardServer/auth"
"${PROJECT_SOURCE_DIR}/dDashboardServer/routes"
"${PROJECT_SOURCE_DIR}/dDashboardServer/email"
"${PROJECT_SOURCE_DIR}/dDashboardServer/notify"
"${PROJECT_SOURCE_DIR}/dDashboardServer/ai"
"${PROJECT_SOURCE_DIR}/dChatFilter" # word rules for the chat filter page
"${PROJECT_SOURCE_DIR}/dGame/dUtilities" # ObjectIDManager.h
)
execute_process(COMMAND git rev-parse --short HEAD WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} OUTPUT_VARIABLE DLU_GIT_COMMIT OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)
if(NOT DLU_GIT_COMMIT)
set(DLU_GIT_COMMIT "unknown")
endif()
target_compile_definitions(DashboardRoutes PRIVATE PROJECT_VERSION="\"${PROJECT_VERSION}\"" DLU_GIT_COMMIT="${DLU_GIT_COMMIT}")
target_link_libraries(DashboardRoutes PRIVATE ${COMMON_LIBRARIES} dWeb dServer dUgc sqlite3 OpenSSL::Crypto CURL::libcurl)