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

[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.kler.cn/news/361083.html

相关文章:

  • 集合相关:asList()和subList()方法的作用?
  • PeptidesFunctionalDataset(helpers.dataset_classes文件中的lrgb.py)
  • 约克VRF打造舒适绿色无污染的生活环境
  • 基于Java+ssm的名著阅读网站
  • CSP-S模拟5复盘
  • 【计网】理解TCP全连接队列与tcpdump抓包
  • HCIP-HarmonyOS Application Developer 习题(十三)
  • 革新你的智能体验:AIStarter 3.1.1正式版现已上线【安全认证】ai应用市场,数字人,ai绘画,ai视频,大模型,工作流因有尽有
  • CZX前端秘籍2
  • WebGL编程指南 - 绘制和变换三角形
  • 计算机在我们生活中的应用
  • Go 切片的扩容规则是怎么样的
  • 【数据库】T SQL语句和SSMS有啥联系?
  • 学习鸿蒙Next 之路 http
  • JAVA继承和多态
  • 18.VScode写Java项目的教程
  • 使用ETL进行数据接入的方式
  • 深入探索LINUX中AWK命令:强大的文本处理工具
  • 后端常用安全措施
  • idea中,git提交时忽略某些本地修改.将文件从git暂存区移除