cmake_minimum_required(VERSION3.13...3.19FATAL_ERROR)project(libjsonutilsVERSION1.0.0LANGUAGESCXX)#Make sure that custom modules like FindRapidJSON are foundlist(INSERTCMAKE_MODULE_PATH0${CMAKE_SOURCE_DIR}/cmake)# Find system dependenciesset(MIN_BOOST_VERSION1.65)find_package(Boost ${MIN_BOOST_V...
cmake .. -DCMAKE_SKIP_RPATH=TRUE或CMakelist中加set(CMAKE_SKIP_BUILD_RPATH TRUE) 第二个和第三个变量也比较简单,就是分别在构建期间和安装期间不允许CMake给你加入相关RPATH cmake .. -DCMAKE_SKIP_BUILD_RPATH=TRUE 或CMakelist中加set(CMAKE_SKIP_BUILD_RPATH=TRUE) cmake .. -DCMAKE_SKIP_I...
# If the package has been found, several variables will # be set, you can find the full list with descriptions # in the OpenCVConfig.cmake file. # Print some message showing some of them message(STATUS "OpenCV library status:") message(STATUS " config: ${OpenCV_DIR}") message(STATUS ...
五,开发场景中常见的CMakeList样例 场景一,简单应用 cmake_minimum_required(VERSION 3.1...3.24) #项目声明:项目名/版本号/编码语言 project( ModernCMakeExample VERSION 1.0 LANGUAGES C++) #把源代码添加进构建的目标库 add_library(MyLibExample simple_lib.cpp simple_lib.hpp) #生成可执行文件 add_executa...
aux_source_directory (test_func1 SRC_LIST1) add_executable (main main.c ${SRC_LIST} ${SRC_LIST1}) 这里出现了一个新的命令:include_directories。 该命令是用来向工程添加多个指定头文件的搜索路径,路径之间用空格分隔。 因为main.c里include了testFunc.h和testFunc1.h,如果没有这个命令来指定头文件所...
foreach(<loop_variable>IN[LISTS<lists>][ITEMS<items>]) CMake 将从所有提供的<lists> 列表变量中获取元素,也就是输入循环中的list可以是多个,然后再是从所有显式声明的<items>中获取元素值,并将它们都存储在<loop_variable> 中,对每个项逐个执行<commands>。可以选择只提供列表,只提供值或者两者都提供,见...
CMake 3.3及更高版本支持IN_LIST查询,这允许开发者检查一个变量或字符串是否在一个给定的列表中。 set(MY_LIST apple banana cherry) set(MY_ITEM apple) if(MY_ITEM IN_LIST MY_LIST) message("${MY_ITEM} is in the list.") else() message("${MY_ITEM} is not in the list.") endif() 比较...
2.5.4 foreach循环变量 + IN LISTS 列表 语法格式: foreach(循环变量 IN LISTS 列表) COMMAND(ARGS...) endforeach(循环变量) set(list_var 1 2 3)foreach(item4 IN LISTS list_var)message(WARNING"item4 =${item4}")endforeach(item4)
使用aux_source_directory把当前目录下的源文件存列表存放到变量SRC_LIST里,然后在add_executable里调用SRC_LIST(注意调用变量时的写法)。 再次执行cmake和make,并运行main, 可以看到运行成功了。 aux_source_directory()也存在弊端,它会把指定目录下的所有源文件都加进来,可能会加入一些我们不需要的文件,此时我们可以...
通过这种方式CMakeLists.txt文件之间的父子关系就被构建出来了。 1.2 解决问题 在上面的目录中我们要做如下事情: 通过test1 目录中的测试文件进行计算器相关的测试 通过test2 目录中的测试文件进行排序相关的测试 现在相当于是要进行模块化测试,对于calc和sort目录中的源文件来说,可以将它们先编译成库文件(可以是静态...