mirror of
https://github.com/wqking/eventpp.git
synced 2025-02-28 15:12:36 +08:00
Added cmake-pkg-demo to demonstrate using eventpp as CMake package
This commit is contained in:
parent
6e5f6ee45d
commit
0be1fb815b
23
tests/cmake-pkg-demo/CMakeLists.txt
Normal file
23
tests/cmake-pkg-demo/CMakeLists.txt
Normal file
@ -0,0 +1,23 @@
|
||||
project(eventpppkgdemo)
|
||||
|
||||
cmake_minimum_required(VERSION 3.2)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
|
||||
set(TARGET pkgdemo)
|
||||
|
||||
set(SRC
|
||||
main.cpp
|
||||
)
|
||||
|
||||
add_executable(
|
||||
${TARGET}
|
||||
${SRC}
|
||||
)
|
||||
|
||||
find_package(eventpp CONFIG REQUIRED)
|
||||
target_link_libraries(${TARGET} PRIVATE eventpp::eventpp)
|
||||
|
||||
# need this because https://github.com/Microsoft/vcpkg/issues/798
|
||||
find_path(EVENTPP_INCLUDE_DIR eventpp/eventqueue.h)
|
||||
include_directories(${EVENTPP_INCLUDE_DIR})
|
45
tests/cmake-pkg-demo/main.cpp
Normal file
45
tests/cmake-pkg-demo/main.cpp
Normal file
@ -0,0 +1,45 @@
|
||||
// eventpp library
|
||||
// Copyright (C) 2018 Wang Qi (wqking)
|
||||
// Github: https://github.com/wqking/eventpp
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
// Include the head
|
||||
#include "eventpp/eventqueue.h"
|
||||
|
||||
#include <iostream>
|
||||
|
||||
int main()
|
||||
{
|
||||
eventpp::EventQueue<int, void (const std::string &, std::unique_ptr<int> &)> queue;
|
||||
|
||||
queue.appendListener(3, [](const std::string & s, std::unique_ptr<int> & n) {
|
||||
std::cout << "Got event 3, s is " << s << " n is " << *n << std::endl;
|
||||
});
|
||||
// The listener prototype doesn't need to be exactly same as the dispatcher.
|
||||
// It would be find as long as the arguments is compatible with the dispatcher.
|
||||
queue.appendListener(5, [](std::string s, const std::unique_ptr<int> & n) {
|
||||
std::cout << "Got event 5, s is " << s << " n is " << *n << std::endl;
|
||||
});
|
||||
queue.appendListener(5, [](const std::string & s, std::unique_ptr<int> & n) {
|
||||
std::cout << "Got another event 5, s is " << s << " n is " << *n << std::endl;
|
||||
});
|
||||
|
||||
// Enqueue the events, the first argument is always the event type.
|
||||
// The listeners are not triggered during enqueue.
|
||||
queue.enqueue(3, "Hello", std::unique_ptr<int>(new int(38)));
|
||||
queue.enqueue(5, "World", std::unique_ptr<int>(new int(58)));
|
||||
|
||||
// Process the event queue, dispatch all queued events.
|
||||
queue.process();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
28
tests/cmake-pkg-demo/readme.md
Normal file
28
tests/cmake-pkg-demo/readme.md
Normal file
@ -0,0 +1,28 @@
|
||||
# Demo for CMake package usage
|
||||
|
||||
This folder demonstrates how to use eventpp as CMake package.
|
||||
To build the demo program,
|
||||
|
||||
1, Install eventpp as CMake package
|
||||
|
||||
1.1, Install eventpp locally.
|
||||
|
||||
In eventpp root folder, run the commands,
|
||||
```
|
||||
mkdir build
|
||||
cd build
|
||||
cmake ..
|
||||
sudo make install
|
||||
```
|
||||
|
||||
2, Then
|
||||
|
||||
```
|
||||
mkdir build
|
||||
cd build
|
||||
cmake .. -G"MinGW Makefiles"
|
||||
mingw32-make.exe
|
||||
```
|
||||
|
||||
If you use other making system rather than MingW, replace the -G generator and mingw32-make.
|
||||
|
Loading…
x
Reference in New Issue
Block a user