diff options
Diffstat (limited to 'conanfile.py')
-rw-r--r-- | conanfile.py | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/conanfile.py b/conanfile.py new file mode 100644 index 0000000..8a75744 --- /dev/null +++ b/conanfile.py @@ -0,0 +1,73 @@ +from conans import ConanFile, CMake +from conans.errors import ConanException + + +class TinyAesCConan(ConanFile): + name = "tiny-AES-c" + version = "1.0.0" + license = "The Unlicense" + url = "https://github.com/kokke/tiny-AES-c" + description = "Small portable AES128/192/256 in C" + topics = ("encryption", "crypto", "AES") + settings = "os", "compiler", "build_type", "arch" + + generators = "cmake" + exports_sources = ["CMakeLists.txt", "*.c", '*.h', '*.hpp'] + exports = ["unlicense.txt"] + + _options_dict = { + # enable AES128 + "AES128": [True, False], + + # enable AES192 + "AES192": [True, False], + + # enable AES256 + "AES256": [True, False], + + # enable AES encryption in CBC-mode of operation + "CBC": [True, False], + + # enable the basic ECB 16-byte block algorithm + "ECB": [True, False], + + # enable encryption in counter-mode + "CTR": [True, False], + } + + options = _options_dict + + default_options = { + "AES128": True, + "AES192": False, + "AES256": False, + "CBC": True, + "ECB": True, + "CTR": True + } + + def configure(self): + if not self.options.CBC and not self.options.ECB and not self.options.CTR: + raise ConanException("Need to at least specify one of CBC, ECB or CTR modes") + + if not self.options.AES128 and not self.options.AES192 and not self.options.AES256: + raise ConanException("Need to at least specify one of AES{128, 192, 256} modes") + + def build(self): + cmake = CMake(self) + + for key in self._options_dict.keys(): + if self.options[key]: + cmake.definitions["CMAKE_CFLAGS"].append(key) + + cmake.configure() + cmake.build() + + def package(self): + self.copy("*.h", dst="include") + self.copy("*.hpp", dst="include") + self.copy("*.a", dst="lib", keep_path=False) + self.copy("unlicense.txt") + + def package_info(self): + self.cpp_info.libs = ["tiny-aes"] |