[win] compilation on windows verified
This commit is contained in:
parent
ece26e7b1f
commit
8ee06fe6a0
3
.gitignore
vendored
3
.gitignore
vendored
@ -5,4 +5,5 @@ subprojects/glog/
|
||||
subprojects/googletest-*
|
||||
subprojects/nlohmann_json/
|
||||
subprojects/packagecache/
|
||||
subprojects/yaml-cpp-0.8.0
|
||||
subprojects/yaml-cpp-0.8.0
|
||||
.venv/
|
||||
|
||||
38
README.md
38
README.md
@ -69,7 +69,7 @@ deactivate CloudPointClient
|
||||
|
||||
Caller -> CloudPointClient : destruct
|
||||
CloudPointClient -> TCPClient : finish waiting
|
||||
deactivate TCPClient
|
||||
deactivate TCPClient
|
||||
deactivate CloudPointClient
|
||||
UnityWorld -> CloudPointServer : destruct
|
||||
deactivate CloudPointServer
|
||||
@ -82,38 +82,66 @@ deactivate CloudPointServer
|
||||
The project uses **Meson** build system and **C++20**.
|
||||
|
||||
### Dependencies
|
||||
|
||||
- Meson, Ninja
|
||||
- GCC/Clang (C++20 support)
|
||||
- Git (for subprojects)
|
||||
|
||||
### Build & Run
|
||||
|
||||
```bash
|
||||
git submodule init
|
||||
git submodule update
|
||||
meson setup build
|
||||
meson compile -C build
|
||||
./build/src/cloud_point_rpc_server config.yaml
|
||||
```
|
||||
|
||||
#### Build on windows
|
||||
|
||||
It's assumed that you have `GCC` and `make`/`ninja` installed on your system (and available in `PATH`)
|
||||
|
||||
```powershell
|
||||
## FIRST OF ALL!
|
||||
git submodule init
|
||||
git submodule update
|
||||
# Next python:
|
||||
python3 -m venv .\venv
|
||||
.\.venv\Scripts\Activate.ps1
|
||||
pip install meson cmake
|
||||
meson setup -Ddefault_library=static build
|
||||
meson compile -C build
|
||||
# To correctly get dlls:
|
||||
meson devenv -C build
|
||||
## .\build\tests\unit_tests < for dummy test
|
||||
## .\build\src\.. < produced execs and libs
|
||||
```
|
||||
|
||||
### Testing
|
||||
|
||||
```bash
|
||||
meson test -C build -v
|
||||
```
|
||||
|
||||
## Docker
|
||||
|
||||
You can build and run the cli using Docker.
|
||||
You can build and run the cli using `Docker`.
|
||||
|
||||
### 1. Build Image
|
||||
|
||||
```bash
|
||||
docker build -t cloud-point-rpc .
|
||||
```
|
||||
|
||||
### 2. Run Container
|
||||
The cli will try to connect to a **running server** on ip and port defined in config.yml file. (defined in `config.yaml` inside the image).
|
||||
For simplicity, it's better to use a host network, so you will not have any headache with accessability.
|
||||
|
||||
> *Server is not configured to run through container, if you need, contact me*
|
||||
The cli will try to connect to a **running server** on ip and port defined in config.yml file. (defined in `config.yaml` inside the image).
|
||||
For simplicity, it's better to use a host network, so you will not have any headache with accessability.
|
||||
|
||||
> _Server is not configured to run through container, if you need, contact me_
|
||||
|
||||
You also can mount your own `config.yaml` to override the default settings:
|
||||
|
||||
```bash
|
||||
docker run --network=host -it -v $(pwd)/my_config.yaml:/app/config.yaml cloud-point-rpc
|
||||
```
|
||||
|
||||
29
meson.build
29
meson.build
@ -10,7 +10,19 @@ asio_dep = dependency('asio', fallback : ['asio', 'asio_dep'])
|
||||
# GLog via CMake fallback
|
||||
cmake = import('cmake')
|
||||
glog_opt = cmake.subproject_options()
|
||||
glog_opt.add_cmake_defines({'WITH_GFLAGS': 'OFF', 'WITH_GTEST': 'OFF'})
|
||||
glog_opt.add_cmake_defines({
|
||||
'WITH_GFLAGS': 'OFF',
|
||||
'WITH_GTEST': 'OFF',
|
||||
})
|
||||
|
||||
libtype = get_option('default_library')
|
||||
if libtype == 'static'
|
||||
message('Will share static state with glog')
|
||||
glog_opt.add_cmake_defines({
|
||||
'BUILD_SHARED_LIBS': 'OFF',
|
||||
})
|
||||
endif
|
||||
|
||||
glog_proj = cmake.subproject('glog', options: glog_opt)
|
||||
glog_dep = glog_proj.dependency('glog')
|
||||
|
||||
@ -26,3 +38,18 @@ inc = include_directories(['include', 'rpc/include'])
|
||||
|
||||
subdir('src')
|
||||
subdir('tests')
|
||||
|
||||
if host_machine.system() == 'windows' and libtype == 'shared'
|
||||
message('We are on Windows, so to prevent our ass from pain')
|
||||
devenv = environment()
|
||||
message('By the way, I hate windows :O')
|
||||
prefixed = meson.global_build_root() / 'subprojects'
|
||||
message('Prefixed dir is: ', prefixed)
|
||||
devenv.append('PATH', prefixed / 'glog')
|
||||
devenv.append('PATH', prefixed / 'googletest-1.17.0' / 'googletest')
|
||||
devenv.append('PATH', prefixed / 'googletest-1.17.0' / 'googlemock')
|
||||
devenv.append('PATH', prefixed / 'yaml-cpp-0.8.0')
|
||||
|
||||
meson.add_devenv(devenv)
|
||||
|
||||
endif
|
||||
Loading…
x
Reference in New Issue
Block a user