Commit 8c83f5a1db8a94ec8eb9a848fbd504c5da0ea778

Authored by Nodeduino
Committed by Moritz Wirger
1 parent 425f609f

Update README.md

- divide Build and install into smaller parts
- add Advanced usage that describes the best way to use this library with CMake
Showing 1 changed file with 26 additions and 0 deletions
README.md
@@ -93,6 +93,7 @@ which for now can be found in the regarding sourcecode file or create the docume @@ -93,6 +93,7 @@ which for now can be found in the regarding sourcecode file or create the docume
93 with the provided Doxyfile yourself. 93 with the provided Doxyfile yourself.
94 94
95 ## Build and install 95 ## Build and install
  96 +### Basic installation
96 If you want to build the library you can use cmake (at least version 2.8.3). First create a build folder and then execute cmake. 97 If you want to build the library you can use cmake (at least version 2.8.3). First create a build folder and then execute cmake.
97 ```bash 98 ```bash
98 mkdir build 99 mkdir build
@@ -114,6 +115,31 @@ To remove it @@ -114,6 +115,31 @@ To remove it
114 ```bash 115 ```bash
115 make uninstall 116 make uninstall
116 ``` 117 ```
  118 +
  119 +### Advanced usage
  120 +If you have a project that already uses CMake you probably want to add the hueplusplus library directly in your cmake file.
  121 +For that the best way is to use find_package().
  122 +When cmake finds the hueplusplus library you can then link against either the shared or static version of the library.
  123 +```cmake
  124 +find_package(hueplusplus)
  125 +
  126 +target_link_libraries(<executable> hueplusplusstatic)
  127 +```
  128 +But this will only work if the hueplusplus library is already installed.
  129 +To get around this problem there is a pretty awesome way.
  130 +If you have the hueplusplus repository included in your project repository (as a submodule) or know where the folder lives you can do the following:
  131 +```cmake
  132 +find_package(hueplusplus)
  133 +if(NOT hueplusplus_FOUND)
  134 + message(STATUS "-- hueplusplus not found, building it")
  135 + add_subdirectory("${CMAKE_SOURCE_DIR}/<path to directory>/hueplusplus" "${CMAKE_BINARY_DIR}/hueplusplus")
  136 +endif()
  137 +
  138 +target_link_libraries(<executable> hueplusplusstatic)
  139 +```
  140 +This will check if the hueplusplus library was found by find_package() and if not it will use the specified path to the library source and compile it during the build process.
  141 +
  142 +### Running tests
117 If you additionally want to run the tests you will currently need to checkout the development branch and use cmake with the option -Dhueplusplus_TESTS=ON. Testing is done with Google gtest and gmock. Note that you wont need to install gtest/gmock yourself, because cmake will automatically download them and include them during the build. Since I added a custom target you will only need to call "make unittest" and the tests are compiled and executed. 143 If you additionally want to run the tests you will currently need to checkout the development branch and use cmake with the option -Dhueplusplus_TESTS=ON. Testing is done with Google gtest and gmock. Note that you wont need to install gtest/gmock yourself, because cmake will automatically download them and include them during the build. Since I added a custom target you will only need to call "make unittest" and the tests are compiled and executed.
118 ```bash 144 ```bash
119 mkdir build 145 mkdir build