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

CMake创建OpenGL项目

在编译第三方库时,最好都用CMake来构建,这样都会有xxxConfig.cmakexxx_config.cmake,方便使用。

# CMakeList.txt: OpenGLCMakeTemplate 的 CMake 项目,在此处包括源代码并定义
# 项目特定的逻辑。
#
cmake_minimum_required (VERSION 3.8)# 如果支持,请为 MSVC 编译器启用热重载。
if (POLICY CMP0141)cmake_policy(SET CMP0141 NEW)set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "$<IF:$<AND:$<C_COMPILER_ID:MSVC>,$<CXX_COMPILER_ID:MSVC>>,$<$<CONFIG:Debug,RelWithDebInfo>:EditAndContinue>,$<$<CONFIG:Debug,RelWithDebInfo>:ProgramDatabase>>")
endif()project ("OpenGLCMakeTemplate")list(APPEND CMAKE_PREFIX_PATH
"E:/GLFW/lib/cmake"
"E:/glew/lib/cmake"
"E:/gl3w/share/gl3w"
"E:/GLFW/lib/cmake"
)
set(GLM_CMAKELIST_DIR "E:/glm")
add_subdirectory("${GLM_CMAKELIST_DIR}" "${CMAKE_BINARY_DIR}/glm_build")add_executable (${PROJECT_NAME}
"main.cpp"
"Utils.h"
"Utils.cpp"
"ErrorUtil.h"
"ErrorUtil.cpp"
)if (CMAKE_VERSION VERSION_GREATER 3.12)set_property(TARGET ${CMAKE_PROJECT_NAME} PROPERTY CXX_STANDARD 20)
endif()find_package(glew REQUIRED)
find_package(gl3w REQUIRED)
find_package(glfw3 REQUIRED)target_link_libraries(${PROJECT_NAME} PRIVATE GLEW::glew_s)
target_link_libraries(${PROJECT_NAME} PRIVATE gl3w)
target_link_libraries(${PROJECT_NAME} PRIVATE glfw)add_custom_command(TARGET ${PROJECT_NAME} POST_BUILDCOMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_SOURCE_DIR}/vertShader.glsl ${CMAKE_BINARY_DIR}
)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • golang hertz框架入门
  • 进程等待与退出
  • notepad++软件介绍(含安装包)
  • DFS算法专题(三)——综合练习之【经典回溯】
  • 一次反射型XSS漏洞发现的过程
  • 把iconfont 图标导出为json
  • Flutter 进阶:绘制加载动画
  • (每日一问)操作系统:常见的 Linux 指令详解
  • 人机交互与现代战争
  • 顺序表之创建,判满,插入,输出
  • 设计模式之状态模式 (C++ 实现)
  • 等级保护学习
  • 掏耳勺买哪种效果好?五大可视掏耳勺测评总汇
  • 前端:HTML、CSS、JS、Vue
  • 网络层ip协议
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • [译]如何构建服务器端web组件,为何要构建?
  • conda常用的命令
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • ES10 特性的完整指南
  • LeetCode29.两数相除 JavaScript
  • October CMS - 快速入门 9 Images And Galleries
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • windows下mongoDB的环境配置
  • 从0实现一个tiny react(三)生命周期
  • 大型网站性能监测、分析与优化常见问题QA
  • 区块链将重新定义世界
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 项目实战-Api的解决方案
  • - 转 Ext2.0 form使用实例
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • ​LeetCode解法汇总518. 零钱兑换 II
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • # 计算机视觉入门
  • (ros//EnvironmentVariables)ros环境变量
  • (动态规划)5. 最长回文子串 java解决
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (一)Kafka 安全之使用 SASL 进行身份验证 —— JAAS 配置、SASL 配置
  • (转) Android中ViewStub组件使用
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • .aanva
  • .mp4格式的视频为何不能通过video标签在chrome浏览器中播放?
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .NET 表达式计算:Expression Evaluator
  • .net 微服务 服务保护 自动重试 Polly
  • .NET设计模式(8):适配器模式(Adapter Pattern)
  • //解决validator验证插件多个name相同只验证第一的问题
  • @manytomany 保存后数据被删除_[Windows] 数据恢复软件RStudio v8.14.179675 便携特别版...
  • [ vulhub漏洞复现篇 ] ECShop 2.x / 3.x SQL注入/远程执行代码漏洞 xianzhi-2017-02-82239600
  • [12] 使用 CUDA 进行图像处理
  • [Android] 修改设备访问权限
  • [Angular 基础] - 数据绑定(databinding)