From 139cebe407a32f5cbed3ebe409ded69e681d02d3 Mon Sep 17 00:00:00 2001 From: Torfinn Berset Date: Thu, 31 Jan 2019 14:11:26 +0100 Subject: Add Conan package options --- CMakeLists.txt | 7 ------- conanfile.py | 39 +++++++++++++++++++++++++++++++++++++-- 2 files changed, 37 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5b98934..3c6081f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,11 +6,4 @@ add_library(tiny-aes aes.c ) -target_compile_definitions(tiny-aes PRIVATE - -DAES128=1 - -DCBC=1 - -DECB=1 - -DCTR=1 - ) - target_include_directories(tiny-aes PRIVATE tiny-AES-c/) diff --git a/conanfile.py b/conanfile.py index 019c3cb..f3a2a9c 100644 --- a/conanfile.py +++ b/conanfile.py @@ -12,17 +12,52 @@ class TinyAesCConan(ConanFile): settings = "os", "compiler", "build_type", "arch" generators = "cmake" - exports_sources = ["CMakeLists.txt", "*.c", '*.h', '*.h'] + exports_sources = ["CMakeLists.txt", "*.c", '*.h', '*.hpp'] + + _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": False, + "ECB": False, + "CTR": False + } 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) def package_info(self): -- cgit v1.2.3