Browse Source

Add conanbuild

Alexey Edelev 3 years ago
parent
commit
b1b37757a3
3 changed files with 52 additions and 5 deletions
  1. 7 5
      CMakeLists.txt
  2. 2 0
      README.md
  3. 43 0
      conanfile.py

+ 7 - 5
CMakeLists.txt

@@ -7,6 +7,12 @@ set(TARGET_STATIC ${TARGET}Static)
 set(TARGET_EXPORT ${TARGET}Targets)
 set(TARGET_CONFIG ${TARGET}Config)
 
+# Conan support, optional
+if(EXISTS "${CMAKE_BINARY_DIR}/conanbuildinfo.cmake")
+    include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
+    conan_basic_setup()
+endif()
+
 include(GNUInstallDirs)
 
 set(TARGET_INCLUDE_DIR ${CMAKE_INSTALL_INCLUDEDIR}/${TARGET})
@@ -45,11 +51,7 @@ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${TARGET_CONFIG}.cmake" DESTINATION "
 export(PACKAGE ${TARGET})
 export(TARGETS ${TARGET} FILE ${TARGET_EXPORT}.cmake)
 
-if(DEFINED $ENV{MICROJSON_MAKE_TESTS})
-    set(MICROJSON_MAKE_TESTS $ENV{MICROJSON_MAKE_TESTS})
-elseif(NOT DEFINED MICROJSON_MAKE_TESTS)
-    set(MICROJSON_MAKE_TESTS ON)
-endif()
+set(MICROJSON_MAKE_TESTS OFF CACHE BOOL "Enables tests")
 
 if(MICROJSON_MAKE_TESTS)
     find_package(GTest)

+ 2 - 0
README.md

@@ -0,0 +1,2 @@
+# microjson
+Tiny and simple JSON parser 

+ 43 - 0
conanfile.py

@@ -0,0 +1,43 @@
+from conans import ConanFile, CMake, tools
+import os
+
+
+class QtProtobufConan(ConanFile):
+    name = "microjson"
+    version = "0.1.0"
+    license = "MIT"
+    url = "https://github.com/semlanik/microjson"
+    description = ("Tiny and simple JSON parser")
+    topics = ("conan", "json")
+    settings = "os", "compiler", "build_type", "arch"
+    homepage = "https://github.com/semlanik/microjson"
+    generators = "cmake"
+    options = {"shared": [True, False]}
+    default_options = {
+        "shared": True,
+    }
+    scm = {
+        "type": "git",
+        "url": "auto",
+        "revision": "auto",
+    }
+    exports_sources = "*"
+
+    def _configure_cmake(self):
+        cmake = CMake(self)
+        cmake.definitions["MICROJSON_MAKE_TESTS"] = "OFF"
+        cmake.configure()
+        return cmake
+
+    def build(self):
+        cmake = self._configure_cmake()
+        cmake.build()
+        cmake.install()
+
+    def package(self):
+        cmake = self._configure_cmake()
+        cmake.configure()
+        cmake.install()
+
+        self.copy("LICENSE", dst="licenses")
+