|
@@ -0,0 +1,61 @@
|
|
|
|
+from conans import ConanFile, tools, CMake
|
|
|
|
+import os
|
|
|
|
+
|
|
|
|
+class civetwebConan(ConanFile):
|
|
|
|
+ name = "civetweb"
|
|
|
|
+ version = "1.10"
|
|
|
|
+ license = "MIT"
|
|
|
|
+ url = "https://github.com/civetweb/civetweb"
|
|
|
|
+ description = "Embedded C/C++ web server"
|
|
|
|
+ settings = "os", "compiler", "build_type", "arch"
|
|
|
|
+ exports_sources = "*"
|
|
|
|
+ requires = "OpenSSL/1.0.2@conan/stable"
|
|
|
|
+ generators = "cmake"
|
|
|
|
+ options = {
|
|
|
|
+ "shared" : [True, False],
|
|
|
|
+ "enable_ssl" : [True, False],
|
|
|
|
+ "enable_websockets" : [True, False],
|
|
|
|
+ "enable_cxx" : [True, False]
|
|
|
|
+ }
|
|
|
|
+ default_options = (
|
|
|
|
+ "shared=False",
|
|
|
|
+ "enable_ssl=True",
|
|
|
|
+ "enable_websockets=True",
|
|
|
|
+ "enable_cxx=True",
|
|
|
|
+ )
|
|
|
|
+
|
|
|
|
+ def optionBool(self, b):
|
|
|
|
+ if b:
|
|
|
|
+ return "ON"
|
|
|
|
+ else:
|
|
|
|
+ return "OFF"
|
|
|
|
+
|
|
|
|
+ def parseOptionsToCMake(self):
|
|
|
|
+ cmakeOpts = {
|
|
|
|
+ "CIVETWEB_BUILD_TESTING" : "OFF",
|
|
|
|
+ "CIVETWEB_ENABLE_LUA" : "OFF",
|
|
|
|
+ "CIVETWEB_ENABLE_SERVER_EXECUTABLE" : "OFF",
|
|
|
|
+ "CIVETWEB_INSTALL_EXECUTABLE" : "OFF",
|
|
|
|
+ "CIVETWEB_ENABLE_ASAN" : "OFF"
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ cmakeOpts["BUILD_SHARED_LIBS"] = self.optionBool(self.options.shared)
|
|
|
|
+ cmakeOpts["CIVETWEB_ENABLE_SSL"] = self.optionBool(self.options.enable_ssl)
|
|
|
|
+ cmakeOpts["CIVETWEB_ENABLE_WEBSOCKETS"] = self.optionBool(self.options.enable_websockets)
|
|
|
|
+ cmakeOpts["CIVETWEB_ENABLE_CXX"] = self.optionBool(self.options.enable_cxx)
|
|
|
|
+
|
|
|
|
+ return cmakeOpts
|
|
|
|
+
|
|
|
|
+ def build(self):
|
|
|
|
+ cmake = CMake(self)
|
|
|
|
+ os.makedirs("./buildit")
|
|
|
|
+ cmake.configure(defs=self.parseOptionsToCMake(), build_dir="./buildit")
|
|
|
|
+ cmake.build()
|
|
|
|
+ cmake.install()
|
|
|
|
+
|
|
|
|
+ def package(self):
|
|
|
|
+ # nothing to do here now
|
|
|
|
+ pass
|
|
|
|
+
|
|
|
|
+ def package_info(self):
|
|
|
|
+ self.cpp_info.libs = tools.collect_libs(self)
|