Files
2026-09-15 00:06:14 +08:00

33 lines
1.2 KiB
CMake

cmake_minimum_required(VERSION 3.15)
project(CloseWindowsService C)
file(GLOB SOURCES *.c)
list(FILTER SOURCES EXCLUDE REGEX \\.t\\.c)
list(FILTER SOURCES EXCLUDE REGEX main.c)
foreach (item IN LISTS SOURCES)
message(STATUS "[${PROJECT_NAME}] SOURCE: ${item}")
endforeach ()
if(MSVC)
add_compile_options(/utf-8)
endif()
if(MINGW)
# 检查项目根目录下是否存在 UAC.manifest 文件
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/UAC.manifest")
# 自动在 build 目录下生成一个临时的资源文件资源文件
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/uac_resource.rc" "1 24 \"${CMAKE_CURRENT_SOURCE_DIR}/UAC.manifest\"")
# 将生成的 .rc 文件作为一个源文件加入列表中
set(UAC_RESOURCE_SRC "${CMAKE_CURRENT_BINARY_DIR}/uac_resource.rc")
else()
message(FATAL_ERROR "未找到 UAC.manifest 文件,请确保它存在于项目根目录下!")
endif()
endif()
add_executable(${PROJECT_NAME} main.c ${SOURCES})
target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_LIST_DIR} )
if(MSVC)
target_link_options(${PROJECT_NAME} PRIVATE "/MANIFESTUAC:level='requireAdministrator' uiAccess='false'")
endif()