conanfile.py
import os
from conans import ConanFile, tools, CMake
class MuparserConan(ConanFile):
name = "muparser"
version = "2.2.6"
description = "Fast Math Parser Library"
topics = ("conan", "muparser", "math", "parser")
url = "https://github.com/conan-community/conan-muparser"
homepage = "http://beltoforion.de/article.php?a=muparser"
author = "Conan Community"
license = "MIT"
exports = ["LICENSE.md"]
generators = "cmake"
settings = "os", "arch", "compiler", "build_type"
options = {"shared": [True, False], "fPIC": [True, False]}
default_options = {"shared": False, "fPIC": True}
_source_subfolder = "source_subfolder"
def config_options(self):
if self.settings.os == "Windows":
del self.options.fPIC
def source(self):
tools.get("https://github.com/beltoforion/{}/archive/v{}.zip".format(self.name, self.version),
sha256="daf4a937abdc33b361d4a2fbc79bf311d5486ebc87c56596130e295db1302303")
os.rename(self.name + "-" + self.version, self._source_subfolder)
tools.replace_in_file(os.path.join(self._source_subfolder, 'CMakeLists.txt'),
'project(muParserProject)',
'project(muParserProject)\n'
'include(${CMAKE_CURRENT_SOURCE_DIR}/../conanbuildinfo.cmake)\n'
'conan_basic_setup()')
def _configure_cmake(self):
cmake = CMake(self)
cmake.definitions["BUILD_SHARED_LIBS"] = self.options.shared
cmake.definitions["ENABLE_SAMPLES"] = False
cmake.configure(source_folder=self._source_subfolder)
return cmake
def build(self):
cmake = self._configure_cmake()
cmake.build()
def package(self):
self.copy(pattern="License.txt", src=self._source_subfolder, dst="licenses")
cmake = self._configure_cmake()
cmake.install()
def package_info(self):
self.cpp_info.libs = tools.collect_libs(self)
self.cpp_info.defines.append("MUPARSER_DLL" if self.options.shared else "MUPARSER_STATIC")