-
Notifications
You must be signed in to change notification settings - Fork 67
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[docs] Add example for how to import the library via vcpkg
- Loading branch information
1 parent
6eb228e
commit adede93
Showing
6 changed files
with
100 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Submodule vcpkg
updated
1099 files
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
cmake_minimum_required(VERSION 3.15) | ||
|
||
if (NOT CMAKE_TOOLCHAIN_FILE) | ||
set(CMAKE_TOOLCHAIN_FILE "${CMAKE_SOURCE_DIR}/../vcpkg/scripts/buildsystems/vcpkg.cmake") | ||
endif () | ||
if (VCPKG_TARGET_TRIPLET MATCHES ".*windows-static") | ||
cmake_policy(SET CMP0091 NEW) | ||
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>") | ||
endif () | ||
project(PulsarDemo CXX) | ||
|
||
if (NOT CMAKE_CXX_STANDARD) | ||
set(CMAKE_CXX_STANDARD 11) | ||
endif () | ||
|
||
find_package(unofficial-pulsar CONFIG) | ||
add_executable(main main.cc) | ||
target_link_libraries(main PRIVATE unofficial::pulsar::pulsar) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
# vcpkg-example | ||
|
||
A simple example vcpkg project that imported pulsar-client-cpp 3.4.2 as the dependency. | ||
|
||
## How to build | ||
|
||
Before running the commands below, ensure the vcpkg has been installed. If you have already downloaded the submodule of this project, just run the following commands. If you want to specify an existing vcpkg installation directory (assuming it's `VCPKG_ROOT`), add the `-DCMAKE_TOOLCHAIN_FILE=$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake` option to the 1st command. | ||
|
||
```bash | ||
cmake -B build | ||
cmake --build build | ||
``` | ||
|
||
Then the `main` executable will be generated under `./build` for single-configuration generators or `build/Debug` for multi-configuration generators. | ||
|
||
## How to link release libraries | ||
|
||
By default, debug libraries are linked so that the executable can be debugged by debuggers. However, when used for production, release libraries should be linked for better performance. | ||
|
||
See [cmake-generators](https://cmake.org/cmake/help/latest/manual/cmake-generators.7.html) for the concept of a CMake Generator. | ||
|
||
### Single-configuration generator | ||
|
||
With single-configuration generators like Unix Makefiles on Linux and macOS, you need to specify the `CMAKE_BUILD_TYPE`. | ||
|
||
```bash | ||
cmake -B build -DCMAKE_BUILD_TYPE=Release | ||
cmake --build build | ||
``` | ||
|
||
The `main` executable will still be generated under the `./build` directory but release libraries are linked now. | ||
|
||
### Multi-configuration generator | ||
|
||
With multi-configuration generators like Visual Studio on Windows, you just need to specify the `--config` option. | ||
|
||
```bash | ||
cmake -B build | ||
cmake --build build --config Release | ||
``` | ||
|
||
The `main` executable that links release libraries will be generated under the `./build/Release` directory. | ||
|
||
## Link static libraries on Windows | ||
|
||
The default vcpkg triplet is `x64-windows` on Windows. If you changed the triplet for static libraries, like `x64-windows-static`, you need to add a line before the `project(PulsarDemo CXX)` in CMakeLists.txt. | ||
|
||
```cmake | ||
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>") | ||
``` | ||
|
||
See [CMAKE_MSVC_RUNTIME_LIBRARY](https://cmake.org/cmake/help/latest/variable/CMAKE_MSVC_RUNTIME_LIBRARY.html) for details. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
#include <pulsar/Client.h> | ||
using namespace pulsar; | ||
|
||
int main(int argc, char *argv[]) { | ||
Client client{"pulsar://localhost:6650"}; | ||
client.close(); | ||
return 0; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
{ | ||
"name": "vcpkg-pulsar-demo", | ||
"version-string": "0.1.0", | ||
"builtin-baseline": "38d1652f152d36481f2f4e8a85c0f1e14f3769f7", | ||
"dependencies": [ | ||
{ | ||
"name": "pulsar-client-cpp", | ||
"version>=": "3.4.2#1" | ||
} | ||
] | ||
} |