Conan.io和netbeans - howto设置项目

问题描述:

我试图将NetBeans作为我的新的IDE for C++。我很乐意使用conan.io作为包管理器。Conan.io和netbeans - howto设置项目

我conanfile.py看起来像这样(从柯南网站):

class MyConanTestProj(ConanFile): 
    settings = "os", "compiler", "build_type", "arch" 
    requires = "Protobuf/[email protected]/stable", "Boost/[email protected]/stable" # comma separated list of requirements 
    generators = "cmake", "txt" 
    default_options = "Poco:shared=True", "OpenSSL:shared=True", "Boost:shared=True" 

    def imports(self): 
     self.copy("*.dll", dst="bin", src="bin") # From bin to bin 
     self.copy("*.dylib*", dst="bin", src="lib") # From lib to bin 
#  self.copy('*.so*', dst='bin', src='lib') 

    def build(self): 
     cmake = CMake(self) 
     cmake.configure() 
     cmake.build() 

我的CMakeLists.txt:

project(MyTestProj) 
cmake_minimum_required(VERSION 2.8.12) 

add_definitions("-std=c++14") 

include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) 
conan_basic_setup() 

add_executable(testProj testProj.cpp) 
target_link_libraries(testProj ${CONAN_LIBS}) 

testProj.cpp:(只是为了看看它编译和链接。 ..)

#include <boost/filesystem.hpp> 
int main(void) { return 0; } 

当我创建一个build目录并运行柯南等它安装和工作原理:

mkdir build -p && cd build && conan install .. && cmake .. -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release && cmake --build 

但在NetBeans中,它向我展示了一个未解决的include(netbeans不知道那里有conan存储boost文件)。

如何配置netbeans以使用conan生成的include路径? 柯南创建conanbildinfo.cmake和conanbuildinfo.txt包含完整路径,但我不知道如何在netbeans中使用它们。

希望有人能告诉我如何正确设置(或给我一个netbeans的简短示例项目) - 谢谢!

Netbeans可能会使用特定的构建文件夹布局,因为以前的CLion版本只是将“临时”构建文件夹放在系统中的某个位置。

我猜测CMake执行抱怨没有找到conanbuildinfo.cmake文件,而不是Boost头文件。

因此,首先要知道Netbeans使用哪个文件夹作为CMake二进制目录。你可以添加到您的CMakeLists.txt

if(NOT EXISTS ${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) 
    message(FATAL_ERROR "Missing conanbuildinfo. Move to ${CMAKE_BINARY_DIR} folder, and run conan install there") 
endif() 

include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) 
conan_basic_setup() 

然后,就cd到该文件夹​​,conan install与相应的配置(注意,此过程可能需要进行不同的配置来运行,就像调试/发布)。