From 78956696a47dde92bc1bbc1324f08137165b58cc Mon Sep 17 00:00:00 2001 From: Jarle Aase Date: Sun, 17 Mar 2024 15:53:34 +0200 Subject: [PATCH] Tried to imporve the conan config a bit --- conanfile.py | 11 ++++++++++- test_package/CMakeLists.txt | 12 ++++++++++++ test_package/conanfile.py | 26 ++++++++++++++++++++++++++ test_package/main.cpp | 13 +++++++++++++ 4 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 test_package/CMakeLists.txt create mode 100644 test_package/conanfile.py create mode 100644 test_package/main.cpp diff --git a/conanfile.py b/conanfile.py index 313c3ef..a7f157c 100644 --- a/conanfile.py +++ b/conanfile.py @@ -2,6 +2,7 @@ from conan.tools.cmake import CMakeToolchain, CMake, cmake_layout from conan.tools.build import check_max_cppstd, check_min_cppstd from conan.tools.files import copy +from conan.tools.scm import Git class LogfaultConan(ConanFile): @@ -11,6 +12,12 @@ class LogfaultConan(ConanFile): exports_sources = "include/*", "tests/*", "CMakeLists.txt" no_copy_source = True generators = "CMakeToolchain", "CMakeDeps" + options = {"with_tests": [True, False]} + default_options = {"with_tests": False} + + # def source(self): + # git = Git(self) + # git.clone(url="https://github.com/conan-io/libhello.git", target=".") def package(self): # This will also copy the "include" folder @@ -23,7 +30,8 @@ def package_info(self): self.cpp_info.libdirs = [] def requirements(self): - self.test_requires("gtest/1.14.0") + if not self.conf.get("tools.build:skip_test", default=False): + self.test_requires("gtest/1.14.0") def validate(self): check_min_cppstd(self, 14) @@ -40,6 +48,7 @@ def build(self): def package(self): # This will also copy the "include" folder + copy(self, "LICENSE", self.source_folder, self.package_folder) copy(self, "*.h", self.source_folder, self.package_folder) def package_info(self): diff --git a/test_package/CMakeLists.txt b/test_package/CMakeLists.txt new file mode 100644 index 0000000..82d3673 --- /dev/null +++ b/test_package/CMakeLists.txt @@ -0,0 +1,12 @@ +cmake_minimum_required(VERSION 3.2 FATAL_ERROR) +project (example) + +find_package (Threads) +find_package (Logfault REQUIRED) + +add_executable(${PROJECT_NAME} main.cpp) +target_link_libraries(${PROJECT_NAME} PRIVATE + logfault::logfault + Threads::Threads +) + diff --git a/test_package/conanfile.py b/test_package/conanfile.py new file mode 100644 index 0000000..e073113 --- /dev/null +++ b/test_package/conanfile.py @@ -0,0 +1,26 @@ +import os + +from conan import ConanFile +from conan.tools.cmake import CMake, cmake_layout +from conan.tools.build import can_run + + +class helloTestConan(ConanFile): + settings = "os", "compiler", "build_type", "arch" + generators = "CMakeDeps", "CMakeToolchain" + + def requirements(self): + self.requires(self.tested_reference_str) + + def build(self): + cmake = CMake(self) + cmake.configure() + cmake.build() + + def layout(self): + cmake_layout(self) + + def test(self): + if can_run(self): + cmd = os.path.join(self.cpp.build.bindir, "example") + self.run(cmd, env="conanrun") diff --git a/test_package/main.cpp b/test_package/main.cpp new file mode 100644 index 0000000..a80ce4b --- /dev/null +++ b/test_package/main.cpp @@ -0,0 +1,13 @@ + +// General tests for manual testing during development + +#include +#include "logfault/logfault.h" + +using namespace std; + +int main( int argc, char *argv[]) { + + logfault::LogManager::Instance().AddHandler(std::make_unique(clog, logfault::LogLevel::DEBUGGING)); + LFLOG_INFO << "Testing" << 1 << 2 << 3; +}