2026-01-25 23:46:14 +08:00
|
|
|
cmake_minimum_required(VERSION 3.0...9.0)
|
|
|
|
|
|
|
|
|
|
#gui库的包含目录位置
|
|
|
|
|
set(include ../include)
|
|
|
|
|
|
|
|
|
|
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
|
|
|
|
set(ARCH_NAME "x64")
|
|
|
|
|
else()
|
|
|
|
|
set(ARCH_NAME "x86")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#一个简单的helloworld
|
|
|
|
|
project(helloWorld)
|
|
|
|
|
file(GLOB src helloWorld/*.*)
|
|
|
|
|
add_executable(helloWorld WIN32 ${src})
|
|
|
|
|
target_include_directories(helloWorld PRIVATE ${include})
|
|
|
|
|
target_link_libraries(helloWorld PRIVATE EzUI)
|
|
|
|
|
set_property(TARGET helloWorld PROPERTY FOLDER "demo")
|
|
|
|
|
|
|
|
|
|
#资源打包器
|
|
|
|
|
project(ResPackage)
|
|
|
|
|
file(GLOB src ./ResPackage/*.*)
|
|
|
|
|
add_executable(ResPackage WIN32 ${src} )
|
|
|
|
|
target_include_directories(ResPackage PRIVATE ${include})
|
|
|
|
|
target_link_libraries(ResPackage PRIVATE EzUI)
|
2026-01-27 14:45:32 +08:00
|
|
|
set_property(TARGET ResPackage PROPERTY FOLDER "demo")
|
2026-01-25 23:46:14 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
#仿QQ登录界面
|
|
|
|
|
project(QQ)
|
|
|
|
|
#主程序
|
|
|
|
|
file(GLOB src CONFIGURE_DEPENDS
|
|
|
|
|
"./QQ/*.h"
|
|
|
|
|
"./QQ/*.hpp"
|
|
|
|
|
"./QQ/*.c"
|
|
|
|
|
"./QQ/*.cpp"
|
|
|
|
|
"./QQ/*.rc"
|
|
|
|
|
)
|
|
|
|
|
add_executable(QQ WIN32 ${src})
|
|
|
|
|
target_include_directories(QQ PRIVATE ${include})
|
|
|
|
|
target_link_libraries(QQ PRIVATE EzUI)
|
|
|
|
|
# 添加资源文件到"Res"筛选项下
|
|
|
|
|
file(GLOB_RECURSE res_files CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/QQ/res/*.*")
|
|
|
|
|
target_sources(QQ PRIVATE ${res_files})
|
|
|
|
|
source_group(TREE "${CMAKE_CURRENT_SOURCE_DIR}/QQ/res" PREFIX "res" FILES ${res_files})
|
|
|
|
|
add_resource_package(QQ ./QQ/res ./QQ/QQ.res)
|
|
|
|
|
set_property(TARGET QQ PROPERTY FOLDER "demo")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#模仿酷狗音乐demo
|
|
|
|
|
project(kugou)
|
|
|
|
|
#主程序
|
|
|
|
|
file(GLOB src CONFIGURE_DEPENDS
|
|
|
|
|
"./kugou/*.h"
|
|
|
|
|
"./kugou/*.hpp"
|
|
|
|
|
"./kugou/*.c"
|
|
|
|
|
"./kugou/*.cpp"
|
|
|
|
|
"./kugou/*.rc"
|
|
|
|
|
)
|
|
|
|
|
add_executable(kugou WIN32 ${src})
|
|
|
|
|
|
|
|
|
|
# 添加资源文件到"Res"筛选项下
|
|
|
|
|
file(GLOB_RECURSE res_files CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/kugou/res/*.*")
|
|
|
|
|
target_sources(kugou PRIVATE ${res_files})
|
|
|
|
|
source_group(TREE "${CMAKE_CURRENT_SOURCE_DIR}/kugou/res" PREFIX "res" FILES ${res_files})
|
|
|
|
|
|
|
|
|
|
target_include_directories(kugou PRIVATE ${include})
|
|
|
|
|
#添加常用库依赖
|
|
|
|
|
target_include_directories(kugou PRIVATE ./kugou/include/Common/include)
|
|
|
|
|
target_include_directories(kugou PRIVATE ./kugou/include/vlc/include)
|
|
|
|
|
#添加vlc解码器依赖
|
|
|
|
|
target_link_directories(kugou PRIVATE ./kugou/lib/${ARCH_NAME}/Common)
|
|
|
|
|
target_link_directories(kugou PRIVATE ./kugou/lib/${ARCH_NAME}/vlc)
|
|
|
|
|
|
|
|
|
|
set_property(TARGET kugou PROPERTY FOLDER "demo")
|
|
|
|
|
#添加引用
|
|
|
|
|
target_link_libraries(kugou PRIVATE EzUI)
|
|
|
|
|
#解决 "模块对于 SAFESEH 映像是不安全的" 的报错
|
|
|
|
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SAFESEH:NO")
|
|
|
|
|
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /SAFESEH:NO")
|
|
|
|
|
#指定为c++编译
|
|
|
|
|
set_target_properties(kugou PROPERTIES LINKER_LANGUAGE CXX)
|
|
|
|
|
target_compile_definitions(kugou PRIVATE WIN32_LEAN_AND_MEAN)
|
|
|
|
|
|
|
|
|
|
#打包kugou/res文件夹下的所有资源 输出至kugou/kugou.res
|
|
|
|
|
add_resource_package(kugou ./kugou/res ./kugou/kugou.res)
|
|
|
|
|
|
|
|
|
|
#执行解压vlc的解码库
|
|
|
|
|
add_custom_command(
|
|
|
|
|
TARGET kugou
|
|
|
|
|
POST_BUILD
|
|
|
|
|
COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/kugou/extract${ARCH_NAME}.bat" "$<TARGET_FILE_DIR:kugou>"
|
|
|
|
|
COMMENT "Running extract.bat to conditionally extract dll.zip"
|
|
|
|
|
)
|
2026-02-20 12:18:52 +08:00
|
|
|
|
|
|
|
|
# TableView Demo - LayeredWindow + VLayout + TableView + 右键菜单
|
|
|
|
|
project(TableViewDemo)
|
|
|
|
|
file(GLOB src TableViewDemo/*.*)
|
|
|
|
|
add_executable(TableViewDemo WIN32 ${src})
|
|
|
|
|
target_include_directories(TableViewDemo PRIVATE ${include})
|
|
|
|
|
target_link_libraries(TableViewDemo PRIVATE EzUI)
|
|
|
|
|
set_property(TARGET TableViewDemo PROPERTY FOLDER "demo")
|