mirror of
https://github.com/mpusz/mp-units.git
synced 2025-07-31 02:47:16 +02:00
build: Conan toolchains support added
This commit is contained in:
@ -20,7 +20,7 @@
|
|||||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
# SOFTWARE.
|
# SOFTWARE.
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 3.14)
|
cmake_minimum_required(VERSION 3.15)
|
||||||
project(mp-units
|
project(mp-units
|
||||||
LANGUAGES CXX)
|
LANGUAGES CXX)
|
||||||
|
|
||||||
|
24
conanfile.py
24
conanfile.py
@ -20,8 +20,9 @@
|
|||||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
# SOFTWARE.
|
# SOFTWARE.
|
||||||
|
|
||||||
from conans import ConanFile, CMake, tools
|
from conans import ConanFile, tools
|
||||||
from conans.tools import Version, check_min_cppstd
|
from conans.tools import Version, check_min_cppstd
|
||||||
|
from conan.tools.cmake import CMakeToolchain, CMake
|
||||||
from conans.errors import ConanInvalidConfiguration
|
from conans.errors import ConanInvalidConfiguration
|
||||||
import re
|
import re
|
||||||
|
|
||||||
@ -64,28 +65,20 @@ class UnitsConan(ConanFile):
|
|||||||
# "revision": "auto",
|
# "revision": "auto",
|
||||||
# "submodule": "recursive"
|
# "submodule": "recursive"
|
||||||
# }
|
# }
|
||||||
generators = "cmake_find_package_multi", "cmake_paths"
|
generators = "cmake_find_package_multi"
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def _run_tests(self):
|
def _run_tests(self):
|
||||||
return tools.get_env("CONAN_RUN_TESTS", False)
|
return tools.get_env("CONAN_RUN_TESTS", False)
|
||||||
|
|
||||||
def _configure_cmake(self, folder="src"):
|
def _configure_cmake(self):
|
||||||
cmake = CMake(self)
|
cmake = CMake(self)
|
||||||
if self.options.downcast_mode == "off":
|
|
||||||
cmake.definitions["UNITS_DOWNCAST_MODE"] = 0
|
|
||||||
elif self.options.downcast_mode == "on":
|
|
||||||
cmake.definitions["UNITS_DOWNCAST_MODE"] = 1
|
|
||||||
elif self.options.downcast_mode == "auto":
|
|
||||||
cmake.definitions["UNITS_DOWNCAST_MODE"] = 2
|
|
||||||
|
|
||||||
if self._run_tests:
|
if self._run_tests:
|
||||||
# developer's mode (unit tests, examples, documentation, restrictive compilation warnings, ...)
|
# developer's mode (unit tests, examples, documentation, restrictive compilation warnings, ...)
|
||||||
cmake.definitions["BUILD_DOCS"] = self.options.build_docs
|
|
||||||
cmake.configure()
|
cmake.configure()
|
||||||
else:
|
else:
|
||||||
# consumer's mode (library sources only)
|
# consumer's mode (library sources only)
|
||||||
cmake.configure(source_folder=folder)
|
cmake.configure(source_folder="src")
|
||||||
return cmake
|
return cmake
|
||||||
|
|
||||||
def validate(self):
|
def validate(self):
|
||||||
@ -114,6 +107,13 @@ class UnitsConan(ConanFile):
|
|||||||
if self.options.build_docs:
|
if self.options.build_docs:
|
||||||
self.build_requires("doxygen/1.8.20")
|
self.build_requires("doxygen/1.8.20")
|
||||||
|
|
||||||
|
def generate(self):
|
||||||
|
tc = CMakeToolchain(self)
|
||||||
|
tc.variables["UNITS_DOWNCAST_MODE"] = str(self.options.downcast_mode).upper()
|
||||||
|
# if self._run_tests: # TODO Enable this when environment is supported in the Conan toolchain
|
||||||
|
tc.variables["UNITS_BUILD_DOCS"] = self.options.build_docs
|
||||||
|
tc.generate()
|
||||||
|
|
||||||
def build(self):
|
def build(self):
|
||||||
cmake = self._configure_cmake()
|
cmake = self._configure_cmake()
|
||||||
cmake.build()
|
cmake.build()
|
||||||
|
@ -22,8 +22,8 @@
|
|||||||
|
|
||||||
cmake_minimum_required(VERSION 3.14)
|
cmake_minimum_required(VERSION 3.14)
|
||||||
|
|
||||||
option(BUILD_DOCS "Generate project documentation" ON)
|
option(UNITS_BUILD_DOCS "Generate project documentation" ON)
|
||||||
if(NOT BUILD_DOCS)
|
if(NOT UNITS_BUILD_DOCS)
|
||||||
return()
|
return()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
# SOFTWARE.
|
# SOFTWARE.
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 3.14)
|
cmake_minimum_required(VERSION 3.15)
|
||||||
|
|
||||||
project(mp-units
|
project(mp-units
|
||||||
VERSION 0.7.0
|
VERSION 0.7.0
|
||||||
|
Reference in New Issue
Block a user