当前位置: 首页 > news >正文

[Gtk] 工程

MediaPlayer

可执行文件工程

结构

.
├── BUILD
├── ButtonHelper.cpp
├── ButtonHelper.h
├── CMakeLists.txt
├── DrawingAreaHelper.cpp
├── DrawingAreaHelper.h
├── layout.ui
└── main.cpp
 


CMakeLists.txt

# 1) cmake basic
cmake_minimum_required(VERSION 3.12) #cmake version check
set(CXX_STANDARD 17) #c++ standard version)# 2) project info
#auto generated variables as below:
#PROJECT_NAME: "hello"
#hello_BINARY_DIR: build root dir
#hello_SOURCE_DIR: source root dir
project(hello LANGUAGES C CXX)  #project name
message("build root dir: ${hello_BINARY_DIR}")
message("source root dir: ${hello_SOURCE_DIR}")# 3) specify source files and create target
#SOURCE_FILES: all c cpp and hpp as source file
file(GLOB_RECURSE SOURCE_FILES  #glob all source files(c cpp hpp , h is excluded)${hello_SOURCE_DIR}/*.c${hello_SOURCE_DIR}/*.cpp${hello_SOURCE_DIR}/*.hpp
)
list(FILTER SOURCE_FILES EXCLUDE REGEX "CMakeFiles/*")   #exclude cmake files from source list
message("source files: ${SOURCE_FILES}")
add_executable(${PROJECT_NAME} ${SOURCE_FILES}) #add executable file# 4) package dependency (pkg-config)
find_package(PkgConfig REQUIRED)#GTK_INCLUDE_DIRS : HEADER SERARCH PATHS
#GTK_LIBRARIES : LIBRARY NAME
#GTK_LIBRARY_DIRS : LIBRARY PATHS
pkg_check_modules(GTK REQUIRED gtk+-3.0)pkg_check_modules(GLIB REQUIRED glib-2.0)# 5) include and link
include_directories(                    #head search path${GTK_INCLUDE_DIRS}
)
link_directories(                      #library search path ${GTK_LIBRARY_DIRS}
)
target_link_libraries(${PROJECT_NAME}   #what libraries needs to link${GTK_LIBRARIES}
)# 6) ADD_DEFINITIONS
ADD_DEFINITIONS(-D LINUX)# 7) install
#install ${PROJECT_NAME} to ~/bin
set(INSTALL_PATH ~/bin)
install(TARGETS ${PROJECT_NAME} DESTINATION ${INSTALL_PATH}
)
#install config file to ~/bin
set(INSTALL_PATH ~/bin)
file(GLOB_RECURSE CONFIG_FILES ${hello_SOURCE_DIR}/*.ui${hello_SOURCE_DIR}/*.ini${hello_SOURCE_DIR}/*.conf
)
install(FILES ${CONFIG_FILES}DESTINATION ${INSTALL_PATH}
)



http://www.lryc.cn/news/464972.html

相关文章:

  • 基于Multisim的汽车尾灯控制电路设计与仿真
  • Leetcode 3326. Minimum Division Operations to Make Array Non Decreasing
  • redo文件误删除后通过逻辑备份进行恢复
  • 7805的输出电压如何调整?
  • git命令使用一览【自用】
  • MES系列-报表和分析
  • 如何在分布式环境中实现高可靠性分布式锁
  • Vue基础(4)
  • Redis高阶篇之Redis单线程与多线程
  • 【C++】STL——priority_queue优先级队列
  • 大数据新视界 --大数据大厂之大数据在智慧城市建设中的应用:打造智能生活的基石
  • 使用枚举来实现策略模式
  • 区块链技术原理
  • Spring Boot 接口数据加解密
  • 2018年计算机网络408真题解析
  • Javascript 脚本查找B站限时免费番剧
  • YoloV10改进策略:主干网络改进|DeBiFormer,可变形双级路由注意力|全网首发
  • C#学习笔记(一)
  • MATLAB边缘检测
  • Tortoise SVN 安装汉化教程(乌龟SVN)
  • 深入了解Spring重试组件spring-retry
  • 海南聚广众达电子商务咨询有限公司靠谱吗怎么样?
  • Java的魔法世界:面向对象编程(OOP)是什么?
  • 软件测试笔记——接口测试
  • 东方通 TongRDS V2 配置与开机自启指南及 Spring Boot 集成
  • 在 VS Code 中调试 Tensor 形状不显示的问题及解决方案
  • Linux 时间获取全面总结
  • SQL 自学:游标(Cursors)的理解与应用
  • IO多路复用概述与epoll简介
  • 关于region_to_label算子的想法