首页 > 其他分享 >Cmake简要配置

Cmake简要配置

时间:2024-08-28 20:36:50浏览次数:9  
标签:src 简要 Cmake Assets lib directories 配置 cpp include

编译文件

cmake --build ./build --config Release

自己的的通用模板,可以用在vscode

#CmakeLists.txt
#设置版本号
cmake_minimum_required(VERSION 3.5)

#设置项目名称和语言
project(myEngine VERSION 0.1.0 LANGUAGES C CXX)

#包含测试
include(CTest)
enable_testing()

#需要的包含目录,这里是头文件,cmake会自动去找这些头文件,这里路径都是相对于CmakeLists.txt的位置
include_directories(include)
include_directories(include/bullet)
include_directories(include/freetypefont)
include_directories(include/freetypefont/freetype)
include_directories(include/freetypefont/freetype/config)
# 有了header,还需要lib
# 添加lib的文件夹,必须在add_executable之前
link_directories(src/libs)

# 设置需要编译的文件路径
set(SOURCES
    src/main.cpp
    src/Assets/Camera.cpp
    src/Assets/LightRenderer.cpp
    src/Assets/Mesh.cpp
    src/Assets/ShaderLoader.cpp
    src/Assets/MeshRenderer.cpp
    src/Assets/TextureLoader.cpp
    src/Assets/TextRenderer.cpp
)

# 添加到自己的项目
add_executable(myEngine ${SOURCES})
# c++版本
set_property(TARGET myEngine PROPERTY CXX_STANDARD 17)

# 这里以后改成相对路径
# 相对路径参考示例:${CMAKE_CURRENT_SOURCE_DIR}/src/libs/glfw3.lib
# 一次添加一个lib的方式
add_library(MyLibName STATIC IMPORTED)
set_target_properties(MyLibName
                    PROPERTIES IMPORTED_LOCATION
                    "C:/Program Files (x86)/Windows Kits/10/Lib/10.0.22621.0/um/x64/OpenGL32.Lib")

# 回答说下面的find_library方式更好,但这里一次只有一个。
# find_library(PROTOBUF_LIBRARY protobuf HINTS /usr/lib/x86_64-linux-gnu)
# target_link_libraries(test PUBLIC ${PROTOBUF_LIBRARY})

# 会自动把文件里面带lib的给你找齐
target_link_libraries(myEngine glew32 glfw3 glfw3_mt glfw3dll BulletCollision BulletDynamics LinearMath freetype)
target_link_libraries(myEngine MyLibName)

cmake本身的一些参数设置模板,也是用在vscode

// CmakePresets.json
{
    "version": 3,
    "configurePresets": [
        {
            "name": "default",
            "description": "Default Settings for my engine",
            "hidden": false,
            "generator": "Visual Studio 17 2022",
            "binaryDir": "${workspaceFolder}/build",
            "cacheVariables": {
                "CMAKE_BUILD_TYPE": "Release",
                "CMAKE_EXPORT_COMPILE_COMMANDS": "YES"
            }
        }
    ]
}

标签:src,简要,Cmake,Assets,lib,directories,配置,cpp,include
From: https://www.cnblogs.com/zhaobangliu/p/18385509

相关文章

  • idea import配置
    简介本文记录idea中import相关配置:自动导入依赖、自动删除无用依赖、避免自动导入*包自动导入依赖在编辑代码时,当只有一个具有匹配名称的可导入声明时,会自动添加导入File->Settings->Editor->General->AutoImport勾选Addunambiguousimportsonthefly自......
  • ubuntu20.04使用systemd配置开机自启脚本
    个人学习整理,简单记录!!!实现步骤准备脚本文件1.创建脚本文件touchtest.sh2.编写完脚本文件后,修改脚本文件权限chmod777test.sh//权限设置看情况3.测试脚本效果./test.sh添加开机自启动服务1.创建service文件cd/etc/systemd/systemtouchtest.service2.编......
  • fastadmin 搭建项目,gitignore忽略文件配置,避免在操作git时产生代码冲突
    当多人进行开发fastadmin项目时,在提交代码到git仓库前,有一些文件如果不进行git忽略的话,在开发过程中很容易导致git冲突~以下是我在开发fastadmin项目时常用的gitignore文件的写法,在新项目提交到git仓库前可以进行替换(替换项目根目录的.gitignore文件内容)#BuildandReleaseFo......
  • iOS项目多环境配置
    iOS项目因为真机调试需要苹果开发证书,不同编译环境证书也不一样,我们遇到很多时候上线AppStore时与开发测试配置不一样,需要频繁手动修改,那么我们怎样优雅便捷的去做这个事情呢?三种常见的多环境配置方式,可以结合使用。首先清楚一个概念:Project:包含了项目所有代码,资源文件,所有信息;T......
  • STM32 GPIO 寄存器的配置
    32位配置寄存器:GPIOx_CRL,GPIOx_CRH32位数据寄存器:GPIOx_IDR,GPIOx_ODR32位置位/复位寄存器:GPIOx_BSRR16位复位寄存器:GPIOx_BRR32位锁定寄存器:GPIOx_LCKRGPIO寄存器详解CRL和CRH控制IO口,是四个位控制一个口,所以要两个32位的来控制16个口CRL32位端口配置低寄存器(GPIOx_......
  • 【阅己书城】配置git免密登录
    1、配置用户名gitconfig--globaluser.name"username"//(名字,随意写)2、配置邮箱gitconfig--globaluser.email"[email protected]"//注册账号时使用的邮箱3、配置ssh免密登录ssh-keygen-trsa-C"[email protected]"三次回车后生成了密钥,也可以查看密钥cat~/.ssh/id......
  • 【阅己书城】Maven setting.xml配置阿里云加速,JDK8编译
    在mavensetting.xml配置文件配置1、配置阿里云镜像<mirrors> <mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexusaliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</......
  • SpringBoot配置动态数据源 原理+实战
    若没空探究原理可直接跳转到“实现方式:注解+切面”目录数据源切换方法Spring对数据源的管理类似于策略模式,不懂策略模式也没关系,其实就是有一个全局的键值对,类型是Map<String,DataSource>。当JDBC操作数据库之时,会根据不同的key值选择不同的数据源。而这个key值可以放到方法的......
  • SpringBoot配置多个kafka配置
    引入依赖<dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId><version>2.7.14</version></dependency>yml配置有几个就配置几个......
  • Java后端微服务架构下的配置动态刷新:Spring Cloud Bus
    Java后端微服务架构下的配置动态刷新:SpringCloudBus大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在微服务架构中,服务的配置管理是一个挑战,尤其是当配置需要动态更新时。SpringCloudBus提供了一种基于消息总线的配置刷新机制,允许配置更改在服务......