先决条件和安装

Hana是一个没有外部依赖的头文件库(甚至不依赖Boost)。因此,在您自己的项目中使用Hana非常容易。基本上,只需下载本项目并添加include/目录到你的编译器的头文件搜索路径即可。或者,以下方式可以干净地安装Hana

  1. 安装Boost

    Boost 1.61.0或更高版本开始,Hana包含在Boost中。因此,安装了Boost即可访问Hana了。

  2. 使用Homebrew

    MacOS上,可以使用Homebrew安装Hana

    1. brew install hana
  3. 手动(manually)安装

    您可以从官方GitHub存储库下载代码,并通过从项目根目录执行以下命令来手动安装库(需要CMake)。

  1. > mkdir build && cd build
  2. > cmake ..
  3. > cmake --build . --target install

这样,将在您的平台上安装Hana到缺省的安装目录(Unix/usr/local,WindowsC:\\Program Files)。如果想要安装到指定位置,可以这样做:

  1. > cmake .. -DCMAKE_INSTALL_PREFIX=/custom/install/prefix

如果您只想为Hana做出贡献,您可以看到如何在README中最佳地设置您的环境进行开发。

注意: 手动安装或者Homebrew方式安装还将安装一个与pkg-config一起使用的hana.pc文件。
不要将全局安装的Hana与全局安装的Boost混合在一起,因为这两种安装方式都会发生冲突。 您不会知道使用哪一个版本的Hana,并且可能会破坏依赖于Boost(或反之亦然)提供的Hana版本的库。 一般来说,你应该尽可能地使用本地安装(局部安装)。

最后,如果你想参与Hana开发,README文档中有相关最佳设置你的开发环境的描述。

CMake用户注意

如果你使用CMake,安装Hana会更简单。 安装时,Hana创建一个HanaConfig.cmake文件,该文件将您(通过Homebrewmanually)安装Hana时所必需的设置和接口等工作都做了。使用find_package(Hana),然后将您自己的项目与hana项目相关联。 以下是个极简的例子:

  1. cmake_minimum_required(VERSION 3.0)
  2. project(external CXX)
  3. find_package(Hana REQUIRED)
  4. add_executable(external main.cpp)
  5. target_link_libraries(external hana)

如果您已将Hana安装在非标准的位置,则可能需要设置CMAKE_PREFIX_PATH。 例如,如果您是通过“manually”的方式将Hana本地安装到另一个项目,则可能会发生这种情况。 在这种情况下,您需要告诉CMake在哪里能找到HanaConfig.cmake文件

  1. list(APPEND CMAKE_PREFIX_PATH "${INSTALLATION_PREFIX_FOR_HANA}")
  2. or
  3. cmake ... -DCMAKE_PREFIX_PATH=${INSTALLATION_PREFIX_FOR_HANA}

INSTALLATION_PREFIX_FOR_HANAHana的安装路径。

编译器要求

Hana仅依赖于C++14编译器和标准库,除此之外再无其它要求了。以下为当前支持HanaC++14编译器/工具链列表:

编译器/工具链 状态
Clang >= 3.5.0 完整支持;每次向GitHub推送前测试
Xcode >= 6.3 完整支持;每次向GitHub推送前测试
GCC >= 6.0.0 完整支持;每次向GitHub推送前测试

更具体地说,Hana需要一个支持以下C++14特性的编译器/标准库(非穷举):

  • 泛型 lambda
  • 通用 constexpr
  • 变量模板
  • 自动推导的返回类型
  • 所有支持C++14<type_traits>头文件中的类型特性

查看wiki以获取更多平台相关信息。