当前位置: 首页 > 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.mrgr.cn/news/53225.html

相关文章:

  • OPENSSL-2023/11/10学习记录-C/C++对称分组加密DES
  • EPS导出DWG存在地物缺失或者没有编码属性的情况
  • float数据分别以int和float类型打印的反汇编分析
  • 【网络协议】之 HTTP 协议详解
  • 简单三步完成 Telegram 生态的 Web3 冷启动
  • 网络通信与并发编程(二)基于tcp的套接字、基于udp的套接字、粘包现象
  • Postman 接口测试
  • 去除视频水印的三种方法,有手就会
  • Vscode+Pycharm+Vue.js+WEUI+django火锅(7) 傍着Copliot战WEUI Picker
  • 1.1 C++语言基础面试问题
  • 试用cursor的简单的记录
  • 力扣困难题汇总
  • OQE-OPTICAL AND QUANTUM ELECTRONICS
  • 掌握高效工作汇报技巧:如何利用即时白板打造完美日报,提升职场影响力
  • C++简易日志系统:打造高效、线程安全的日志记录工具
  • D41【python 接口自动化学习】- python基础之函数
  • Linux系统下使用ncurses获取按键
  • GSM /3G/EPS/5G 的认证过程和算法、密钥
  • Linux -- 进程间通信、初始匿名管道
  • CAS详谈---无锁的锁机制