Contents

Cmake

CMake/files

1
2
wget https://cmake.org/files/v3.24/cmake-3.24.0-linux-x86_64.sh
sh cmake-3.24.0-linux-x86_64.sh --prefix=/usr/local --exclude-subdir

1
2
wget https://cmake.org/files/v3.24/cmake-3.24.0-linux-x86_64.tar.gz
export PATH=/root/cmake-3.24.0-linux-x86_64/bin:$PATH
参数含义
-S指定源文件根目录,必须包含一个CMakeLists.txt文件
-B指定构建目录,构建生成的中间文件和目标文件的生成路径
-D指定变量,格式为-D <var>=<value>,-D后面的空格可以省略

cmake --build [<dir> | --preset <preset>]

参数含义
–target指定构建目标代替默认的构建目标,可以指定多个
–parallel/-j [<jobs>]指定构建目标时使用的进程数

当前正在处理的 CMakeLists.txt 文件的完整路径

结果:/root/Cache-Management-ycy/main-project/CMakeLists.txt

get_filename_component 函数用于从给定的文件路径中提取特定的部分。

1
get_filename_component(MLIR_INSTALL_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)

获取当前 CMakeLists.txt 文件的目录路径,并将其存储在 MLIR_INSTALL_PREFIX 变量中。

结果:/root/Cache-Management-ycy/main-project

通过add_executable命令来往构建系统中添加一个可执行构建目标,同样需要指定编译需要的源文件。

1
add_executable(demo main.cpp)

target_link_libraries命令来声明构建此可执行文件需要链接的库。

1
target_link_libraries(demo MLIRIR)

get_property 函数用于查询并获取全局或局部属性值。

1
get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS)

pkg_check_modules 是 CMake 中的一个宏,用于查询由 pkg-config 管理的库,可以自动找到这些库的编译和链接标志。

指定一个变量名来存储查询结果,以及库的名称。

1
2
3
pkg_check_modules(<variable> <module> [<module>...])

pkg_check_modules(PNG libpng)

cmake -G Ninja ..
-DLLVM_ENABLE_ASSERTIONS=ON
-DCMAKE_BUILD_TYPE=RELEASE\