from conans import ConanFile, CMake class LsStdConan(ConanFile): name = "ls-std" version = "2023.2.0" license = "MIT" url = "" description = "This is a cross-platform standard library written in C++ offering functionalities you would usually miss in C++'s standard template library (STL), especially if you would search for cross-platform implementations." topics = ("boxing", "core", "encoding", "event", "io", "logic", "time") settings = "os", "compiler", "build_type", "arch" options = {"shared": [True, False]} default_options = {"shared": False} generators = "cmake" def source(self): self.run("git clone https://vcs.lynarstudios.de/public/ls-standard-library.git --branch v" + self.version + " --single-branch") def build(self): cmake = self.__configure_cmake() cmake.build() def package(self): self.copy("*.hpp", dst="include", src="ls-standard-library/include") self.copy("*.lib", dst="lib", keep_path=False) self.copy("*.a", dst="lib", keep_path=False) self.copy("*.so", dst="lib", keep_path=False) self.copy("*.dll", dst="lib", keep_path=False) self.copy("*.dylib", dst="lib", keep_path=False) def package_info(self): self.cpp_info.libs = ["ls-std-boxing", "ls-std-core", "ls-std-encoding", "ls-std-event", "ls-std-io", "ls-std-logic", "ls-std-time"] def __configure_cmake(self): cmake = CMake(self) if self.options.shared: cmake.definitions['LS_STD_BUILD_STATIC'] = "OFF" cmake.definitions['LS_STD_BUILD_SHARED'] = "ON" cmake.configure(source_folder="ls-standard-library") return cmake