Conan.io和netbeans - 如何设置项目

时间:2017-10-06 18:33:21

标签: netbeans conan

我尝试使用NetBeans作为我的c ++新IDE。我很想用conan.io作为包经理。

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

class MyConanTestProj(ConanFile):
    settings = "os", "compiler", "build_type", "arch"
    requires = "Protobuf/3.1.0@inexorgame/stable", "Boost/1.64.0@conan/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; }

当我创建构建目录并运行conan install等时,它可以工作:

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

但是在NetBeans中它向我显示了一个未解析的包含(netbeans不知道conan已存储了boost文件)。

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

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

1 个答案:

答案 0 :(得分:0)

Netbeans可能正在使用特定的构建文件夹布局,就像之前版本的CLion所做的那样,只是将&#34;临时&#34;在系统中的某处构建文件夹。

我猜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具有相应的配置(请注意,可能需要针对不同的配置运行此过程,例如Debug / Release)。