Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/matus-chochlik/mirror
Reflection utilities and examples built on top of C++ reflection TS implementation.
https://github.com/matus-chochlik/mirror
cplusplus cpp reflection
Last synced: about 2 months ago
JSON representation
Reflection utilities and examples built on top of C++ reflection TS implementation.
- Host: GitHub
- URL: https://github.com/matus-chochlik/mirror
- Owner: matus-chochlik
- License: bsl-1.0
- Created: 2013-11-05T18:01:00.000Z (about 11 years ago)
- Default Branch: develop
- Last Pushed: 2022-07-13T15:38:31.000Z (over 2 years ago)
- Last Synced: 2023-11-07T21:16:36.073Z (about 1 year ago)
- Topics: cplusplus, cpp, reflection
- Language: C++
- Homepage:
- Size: 10.1 MB
- Stars: 110
- Watchers: 12
- Forks: 12
- Open Issues: 1
-
Metadata Files:
- Readme: README.rst
- License: LICENSE_1_0.txt
Awesome Lists containing this project
README
Mirror reflection utilities
===========================:Author: Matúš Chochlík
Reboot of the Mirror reflection utilities implemented on top
of the C++ reflection TS.Cloning the Mirror repository
-----------------------------
::git clone --recursive https://github.com/matus-chochlik/mirror.git
Building `clang` with reflection support
----------------------------------------Install the required packages for building `clang`:
::
apt install cmake clang lld ninja-build libgmp-dev libmpfr-dev
Build and install `clang` and `libc++`:
::cd /path/to/mirror/src/dir && \
./tools/build_llvm.sh \
-b /path/to/llvm/build/dir \
-i /path/to/llvm/install/dirSetting up the toolchain
------------------------In order for the build system of the `Mirror` library to use `clang` built
and installed in the previous step either copy the default toolchain file:::
cd /path/to/mirror/src/dir && \
cp toolchain.cmake.bak toolchain.cmakeor create your own cmake toolchain file which needs at least to set
the following variables:::
set(MIRROR_LLVM_PREFIX /path/to/installed/llvm)
set(CMAKE_CXX_COMPILER ${MIRROR_LLVM_PREFIX}/bin/clang++)Building Mirror
---------------In order to build the `Mirror` library and its examples with the appropriate
toolchain you can do:::
mkdir -p /path/to/mirror/build/dir && \
cd /path/to/mirror/build/dir && \
cmake \
-DCMAKE_TOOLCHAIN_FILE=/path/to/mirror/toolchain.cmake \
/path/to/mirror/src/dir && \
make -j Nor
::
mkdir -p /path/to/mirror/build/dir && \
cd /path/to/mirror/build/dir && \
cmake \
-G Ninja \
-DCMAKE_TOOLCHAIN_FILE=/path/to/mirror/toolchain.cmake \
/path/to/mirror/src/dir && \
ninjaLicense
=======Copyright 2008-2021 Matus Chochlik. Distributed under the Boost
Software License, Version 1.0. (See accompanying file
LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)The applications using Qt5 are distributed under
the GNU GENERAL PUBLIC LICENSE version 3.
See http://www.gnu.org/licenses/gpl-3.0.txt