https://blog.csdn.net/qq_38563206/article/details/126486183
https://blog.csdn.net/HandsomeHong/article/details/120170219
cmake --build .
该命令的含义是:执行当前目录下的构建系统,生成构建目标。
cmake项目构建过程简述:
1. 首先,使用命令行:‘cmake
2. 其次,自然是对生成好的项目(project files)进行编译构建,使用到的就是你说的'cmake --build .'
3. 最后,--build后面的那个‘.’,指的是生成好的build tree的路径. 一般来说,如果你明确知道,你的系统中使用的是哪种构建器(build generator), 比如:Unix Makefiles, 你完全可以直接使用make进行项目构建.
对于这种--build的形式,多用于自动化脚本之中,或者IDE环境下.
注:
通过cmake ./cmake .. 命令创建Makefile文件后,一般使用make命令编译文件。这里的cmake --build .就与make一样的效果
为什么不直接 make,而是使用 cmake --build 形式的命令,主要是为了跨平台,使用这种形式后,不管你是使用的什么生成器,CMake 都能正确构建,否则如果使用的是 Ninja 或者其他生成器,那 make 就不生效了
示例:
https://github.com/PixarAnimationStudios/OpenSubdiv
cmake -D NO_PTEX=1 -D NO_DOC=1 \
-D NO_OMP=1 -D NO_TBB=1 -D NO_CUDA=1 -D NO_OPENCL=1 -D NO_CLEW=1 \
-D GLFW_LOCATION="*YOUR GLFW INSTALL LOCATION*" \
..
cmake --build . --config Release --target install
-DCMAKE_BUILD_TYPE=[Debug|Release]
-DCMAKE_INSTALL_PREFIX=[base path to install OpenSubdiv]
-DCMAKE_LIBDIR_BASE=[library directory basename (default: lib)]
-DCMAKE_TOOLCHAIN_FILE=[toolchain file for crossplatform builds]
-DCUDA_TOOLKIT_ROOT_DIR=[path to CUDA Toolkit]
-DOSD_CUDA_NVCC_FLAGS=[CUDA options, e.g. --gpu-architecture]
-DPTEX_LOCATION=[path to Ptex]
-DGLFW_LOCATION=[path to GLFW]
-DSTRINGIFY_LOCATION=[path to stringify utility]
-DNO_LIB=1 // disable the opensubdiv libs build (caveat emptor)
-DNO_EXAMPLES=1 // disable examples build
-DNO_TUTORIALS=1 // disable tutorials build
-DNO_REGRESSION=1 // disable regression tests build
-DNO_PTEX=1 // disable PTex support
-DNO_DOC=1 // disable documentation build
-DNO_OMP=1 // disable OpenMP
-DNO_TBB=1 // disable TBB
-DNO_CUDA=1 // disable CUDA
-DNO_OPENCL=1 // disable OpenCL
-DNO_OPENGL=1 // disable OpenGL
-DNO_CLEW=1 // disable CLEW wrapper library
-DNO_METAL=1 // disable Metal
参考:https://cmake.org/cmake/help/latest/variable/CMAKE_INSTALL_PREFIX.html
CMAKE_INSTALL_PREFIX
为cmake内置变量,是cmake install函数安装的路径前缀。其默认值为/usr/local
,也就是我们执行make install
时如果没有设置该变量,对于cmake脚本里的install函数,默认会把内容安装到/usr/local下。
如何修改cmake的安装路径呢?
cmake -DCMAKE_INSTALL_PREFIX=<你想要安装的路径>
SET(CMAKE_INSTALL_PREFIX
要加在 PROJECT(< project_name>) 之后。
在设置完install的安装目录之后,执行install时可以通过DESTINATION直接指定安装目录之下的子目录。
set(CMAKE_INSTALL_PREFIX /usr/local)
install(TARGETS test DESTINATION bin)
#将test安装到/usr/local/bin目录下
这里有一个小知识点就是,CMAKE_INSTALL_PREFIX会被添加到 CMAKE_SYSTEM_PREFIX_PATH,所以find_package、find_library等命令也会以该目录为prefix去查找。