Skip to content

iXavierLiu/study

Repository files navigation

study

日常练习

项目依赖

构建项目

项目结构

本项目完全通过cmake组织的,你可以在demo/modular下看到本项目是如何通过cmake将所有模块组织在一起的。

所有子目录都会有一个子项目名,并且和他的路径关联,例如目录practices/leetcode会创建一个名为study_practices_leetcode的子项目,他在cmake中的名字是study::practices::leetcode,并且他所依赖的子项目也会以相同的规则命名。这依赖于cmake/general.cmake会自动的创建相关的命名变量——在你调用_setup_project_envcmake宏之后。

开发环境

后两者不是强制的,但是我更倾向使用可以跨平台的解决方案,所以优先推荐使用。

开始

项目克隆

一切美好的事物都是从克隆仓库开始的

git clone [email protected]:iXavierLiu/study.git

配置项目

在使用cmake生成构建项目前,你需要配置cmake预设,通过将CMakeUserPresets.json.example拷贝一份,并且去掉example后缀名来获得一份示例,这个json文件的结构非常简单和清晰,默认会有一个名为osx-local的预设作为macos上。

cd study
cp CMakeUserPresets.json.example CMakeUserPresets.json

你需要修改该预设的toolchain路径,使它指向你vcpkg对应的位置。有关CMake Prests的更多细节可以查看文档

# 配置tool chain path
vim CMakeUserPresets.json

解决依赖

然后你需要根据【依赖】章节中的需要,通过vcpkg解决项目依赖,例如解决gtest项目依赖:

cd PATH_TO_VCPKG_ROOT
./vcpkg install gtest

生成构建项目

然后使用osx-local预设生成项目,其中osx-local是要使用预设的名称,如果添加了其他的预设项目,请使用对应的预设名。

cmake --preset=osx-local

作出修改

可使用你喜欢的IDE继续完成编辑,例如使用VS Code打开项目

cd PATH_TO_PROJECT_ROOT
code .

推荐在VSCode中安装CMake Tools插件,可以使用IDE的UI快速地使用cmake配置项目。

编译

在刚刚生成的out/build/osx-local构建目录中编译整个项目,该目录是在CMakePresets.json中的default预设中指定的。

cmake --build out/build/osx-local

About

用于C++日常练习和各种突发奇想

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published