首页 > 其他分享 >CMake学习-0

CMake学习-0

时间:2024-10-29 22:43:56浏览次数:1  
标签:set CMAKE target Sample01 学习 CMake DIR TARGET

# CMakeList.txt: Sample01 的 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 ("Sample01")
set(PROJECT_SOURCE_DIR "C:/glfw-3.4/glfw-3.4")

# 指定要引用的dll的头文件所在路径
include_directories(${PROJECT_SOURCE_DIR}/include)

# 将源代码添加到此项目的可执行文件。
add_executable (Sample01 "Sample01.cpp" "Sample01.h")

# 获取当前二进制目录到RUNTIME_OUTPUT_DIRECTORY这个变量处,也可以讲 ${CMAKE_BINARY_DIR}替换为"/path/to/your/directory"
set_target_properties(Sample01 PROPERTIES
                      RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
# 找到OpenGL库
find_package(OpenGL REQUIRED)

# 获取运行时Directory
get_target_property(TARGET_DIR Sample01 RUNTIME_OUTPUT_DIRECTORY)

# 拷贝lib到运行时DirectoryExe同级目录
add_custom_command(TARGET Sample01 POST_BUILD
                   COMMAND ${CMAKE_COMMAND} -E copy_if_different
                   ${PROJECT_SOURCE_DIR}/bin/Release/glfw3.lib
                   ${TARGET_DIR})

# 这里需要链接库
target_link_libraries(Sample01 glfw3.lib)
# 链接OpenGL库
if(OPENGL_FOUND)
    target_link_libraries(Sample01 ${OPENGL_gl_LIBRARY})
endif()

if (CMAKE_VERSION VERSION_GREATER 3.12)
  set_property(TARGET Sample01 PROPERTY CXX_STANDARD 20)
endif()

# TODO: 如有需要,请添加测试并安装目标。

标签:set,CMAKE,target,Sample01,学习,CMake,DIR,TARGET
From: https://www.cnblogs.com/jobshenlei/p/18514685

相关文章

  • cmake使用说明
    LINK_DIRECTORIES :LINK_DIRECTORIES 是CMake中用于指定链接器搜索目录的命令。它告诉CMake在构建过程中,链接器应当在哪些目录中查找库文件。这在你依赖于外部库或目标时非常有用。使用场景当你的项目依赖于某些外部库,而这些库不在系统的标准库路径下时,你可以使用 LINK_......
  • 10.29 人工智能学习内容
    上节课内容补充【给大语言模型法阅读材料】如果你手边现成有原文,而且长度合适,建议自带原文去找大语言模型Usetheprovidedarticlesdelimitedbytriplequotestoanswerquestions.Iftheanswercannotbefoundinthearticles,write"Icouldnotfindananswer."......
  • 学习笔记(十二):ArkUi-相对布局 (RelativeContainer)
    基本概念锚点:通过锚点设置当前元素基于哪个元素确定位置。对齐方式:通过对齐方式,设置当前元素是基于锚点的上中下对齐,还是基于锚点的左中右对齐。锚点设置锚点设置是指设置子元素相对于父元素或兄弟元素的位置依赖关系。在水平方向上,可以设置left、middle、right的锚点......
  • D50【python 接口自动化学习】- python基础之类
    day50init方法学习日期:20241027学习目标:类--64init方法:如何为对象传递参数?学习笔记:魔术方法init方法classKlass(object):#定义初始化方法,类实例化时自动进行初始化def__init__(self,name,age):self.name=nameself.age=agede......
  • D51【python 接口自动化学习】- python基础之模块与标准库
    day51模块的导入学习日期:20241028学习目标:模块与标准库--66模块的导入:如何使用其他人编写好的代码功能?学习笔记模块的作用导入模块的方法#导入模块#方式一importos#获取当前的位置print(os.getcwd())#方式二fromosimportgetcwd#获取当前的位置pr......
  • 拓扑排序学习笔记
    图论系列:前言:ぽつり夕立を食らった此処に帰る傘はないんだふたりで嵐を待ったどこへ行こうか探してんだ相关题单:戳我一.图论基本定义其实可以查oiwiki的。1.图图:图是一个二元组\(G=(V(G),E(G))\),其中\(V(G)\)是非空点集,由图的各个顶点组成,\(E(G)\)是各点之间的......
  • BUUCTF pwn学习日记
    我是纯新手,零基础的开始学Pwn喽时间:2024年10月29日BUUCTFPwn学习日记1.test_your_nc下载附件,用IDA打开发现直接nc就可以获得flagcatflag得到flag{07c0b69c-dcbf-4991-8cc6-05660b1a2dd2}2.ripIDA打开发现没有看见有用信息,Shift+F12发现了/bin/sh初步怀疑是栈溢......
  • [分享]Python学习你看这一篇就够了!(四)
    本文你将看到四.面向对象编程8:面向对象编程基础类和对象的概念类(Class):类是一种抽象的数据类型,它是对具有相同属性和行为的一组对象的描述。可以将类看作是创建对象的蓝图或模板。例如,“汽车”是一个类,它定义了汽车共有的属性(如品牌、颜色、车轮数量等)和行为(如启动、......
  • servlet学习
    1.Servlet是一种通过实现javax.servlet.Servlet接口的Java类,用于处理HTTP请求并返回HTTP响应。它能够接受来自客户端(如浏览器)的请求,进行处理,并生成响应内容(通常是HTML)。2.Servlet的工作原理客户端(浏览器)发出HTTP请求。Web服务器接收到请求,并将其交给负责该请求......
  • 焚化课学习笔记
    啥呀,咋还补课啊。语文数学10.29利用基本不等式求最值基本不等式:\(\frac{a+b}{2}\ge\sqrt{ab}\)。证明:\((a-b)^2\ge0\rightarrowa^2-2ab+b^2\ge0\rightarrow\frac{a^2+b^2}{2}\geab\),将\(a\leftarrow\sqrta,b\leftarrow\sqrt{b}\)即可。一元二次方程根与系数的关系......