首页 > 解决方案 > 在 cmake mono 存储库中包含 cppitertools 的正确方法

问题描述

为了在我的 monorepository 中使用cppitertools,我下载了源文件并将它们移动到include我的项目的文件夹中。在根目录中CmakeLists.txt,我写了以下说明:

cmake_minimum_required(VERSION 3.16)
project(boost_test LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

add_subdirectory(include/fmt-7.1.3 EXCLUDE_FROM_ALL)
add_subdirectory(include/cppitertools-2.1 EXCLUDE_FROM_ALL)

add_subdirectory(itertools)

的内容itertools\CmakeLists.txt是:

add_executable(itertools itertools.cpp)
target_link_libraries(itertools PRIVATE cppitertools::cppitertools fmt::fmt)

但我必须写一个itertools\itertools.cpp

#include <enumerate.hpp> // <<<---- how to reach #include <cppitertools/enumerate.hpp> instead??
#include <fmt/core.h>
#include <string>
int main(){
    const std::string const_string("hello");
    for (auto&&[i, c] : iter::enumerate(const_string)) {
        fmt::print("({}, {}); ", i, c);
    }
}

注意cppitertools_INSTALL_CMAKE_DIR未设置。

标签: c++cmake

解决方案


推荐阅读