mirror of
https://github.com/Neargye/magic_enum.git
synced 2026-01-09 23:34:23 +00:00
add conan
This commit is contained in:
parent
ef36e2e218
commit
409e9e1afd
4 changed files with 74 additions and 0 deletions
32
conanfile.py
Normal file
32
conanfile.py
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
from conans import ConanFile
|
||||
|
||||
class MagicEnumConan(ConanFile):
|
||||
name = 'magic_enum'
|
||||
version = '0.6.0'
|
||||
description = 'Header-only C++17 library provides static reflection for enums, work with any enum type without any macro or boilerplate code.'
|
||||
topics = (
|
||||
'conan',
|
||||
'cplusplus',
|
||||
'enum-to-string',
|
||||
'string-to-enum'
|
||||
'serialization',
|
||||
'reflection',
|
||||
'header-only',
|
||||
'compile-time'
|
||||
)
|
||||
url = 'https://github.com/Neargye/magic_enum'
|
||||
homepage = 'https://github.com/Neargye/magic_enum'
|
||||
author = 'Daniil Goncharov <neargye@gmail.com>'
|
||||
license = 'MIT'
|
||||
exports_sources = ["include/*", "LICENCE"]
|
||||
exports = ["LICENSE"]
|
||||
no_copy_source = True
|
||||
|
||||
def package(self):
|
||||
self.copy("include/*")
|
||||
self.copy("LICENSE", dst="licenses")
|
||||
|
||||
def package_id(self):
|
||||
self.info.header_only()
|
||||
9
test_package/CMakeLists.txt
Normal file
9
test_package/CMakeLists.txt
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
cmake_minimum_required(VERSION 3.8)
|
||||
project(test_package CXX)
|
||||
|
||||
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
|
||||
conan_basic_setup(TARGETS)
|
||||
|
||||
add_executable(test_package test_package.cpp)
|
||||
target_link_libraries(test_package PRIVATE CONAN_PKG::magic_enum)
|
||||
target_compile_features(test_package PRIVATE cxx_std_17)
|
||||
18
test_package/conanfile.py
Normal file
18
test_package/conanfile.py
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
from conans import ConanFile, CMake, tools
|
||||
import os
|
||||
|
||||
class TestPackageConan(ConanFile):
|
||||
settings = "os", "compiler", "build_type", "arch"
|
||||
generators = "cmake"
|
||||
|
||||
def build(self):
|
||||
cmake = CMake(self)
|
||||
cmake.configure()
|
||||
cmake.build()
|
||||
|
||||
def test(self):
|
||||
if not tools.cross_building(self.settings):
|
||||
bin_path = os.path.join("bin", "test_package")
|
||||
self.run(bin_path, run_environment=True)
|
||||
15
test_package/test_package.cpp
Normal file
15
test_package/test_package.cpp
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
#include <magic_enum.hpp>
|
||||
|
||||
#include <cstdlib>
|
||||
|
||||
enum class Color : int { RED = -10, BLUE = 0, GREEN = 10 };
|
||||
|
||||
int main() {
|
||||
auto res1 = magic_enum::enum_name(Color::RED);
|
||||
auto res2 = magic_enum::enum_cast<Color>("BLUE");
|
||||
auto res3 = magic_enum::enum_cast<Color>(10);
|
||||
|
||||
bool success = (res1 == "RED") && (res2.value() == Color::BLUE) && (res3.value() == Color::GREEN);
|
||||
|
||||
return success ? EXIT_SUCCESS : EXIT_FAILURE;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue