diff --git a/conanfile.py b/conanfile.py new file mode 100644 index 000000000..b87be27cf --- /dev/null +++ b/conanfile.py @@ -0,0 +1,47 @@ +from conans import ConanFile, CMake, tools +from conans.tools import load +import re + +def get_version(): + try: + content = load("CMakeLists.txt") + version = re.search(b"project\(nlohmann_json VERSION (.*) LANGUAGES CXX\)", content).group(1) + return version.strip() + except Exception as e: + return None + +class JsonConan(ConanFile): + name = "json" + version = get_version() + license = "MIT" + url = "https://github.com/nlohmann/json/" + description = "JSON for Modern C++" + author = "Niels Lohmann (mail@nlohmann.me)" + generators = "cmake" + exports_sources = "include/*" + no_copy_source = True + scm = { + "type": "git", + "url": "auto", + "revision": "auto" + } + + def build(self): + cmake = CMake(self) + cmake.configure() + cmake.build() + + def source(self): + self.run("git clone https://github.com/nlohmann/json/") + self.run("cd json") + tools.replace_in_file("CMakeLists.txt", + "project(nlohmann_json VERSION {version} LANGUAGES CXX)".format(version=self.version), + '''PROJECT(nlohmann_json VERSION {version} LANGUAGES CXX) +include(${{CMAKE_BINARY_DIR}}/conanbuildinfo.cmake) +conan_basic_setup()'''.format(version=self.version)) + + def package(self): + self.copy("include/*.hpp") + + def package_id(self): + self.info.header_only()