|
@@ -51,13 +51,10 @@ endif
|
|
|
|
|
|
define inner-cmake-package
|
|
|
|
|
|
-$(2)_MAKE ?= $$(MAKE)
|
|
|
-$(2)_INSTALL_OPTS ?= install
|
|
|
-$(2)_INSTALL_STAGING_OPTS ?= DESTDIR=$$(STAGING_DIR) install/fast
|
|
|
-$(2)_INSTALL_TARGET_OPTS ?= DESTDIR=$$(TARGET_DIR) install/fast
|
|
|
-
|
|
|
$(3)_SUPPORTS_IN_SOURCE_BUILD ?= YES
|
|
|
|
|
|
+# The default backend, unless specified by the package
|
|
|
+$(3)_CMAKE_BACKEND ?= make
|
|
|
|
|
|
ifeq ($$($(3)_SUPPORTS_IN_SOURCE_BUILD),YES)
|
|
|
$(2)_BUILDDIR = $$($(2)_SRCDIR)
|
|
@@ -65,6 +62,24 @@ else
|
|
|
$(2)_BUILDDIR = $$($(2)_SRCDIR)/buildroot-build
|
|
|
endif
|
|
|
|
|
|
+ifeq ($$($(3)_CMAKE_BACKEND),make)
|
|
|
+$(2)_GENERATOR = "Unix Makefiles"
|
|
|
+# $$(MAKE) can be 'make -jN', we just want 'make' (possibly with a full path)
|
|
|
+$(2)_GENERATOR_PROGRAM = $(firstword $$(MAKE))
|
|
|
+# Generator specific code (make) should be avoided,
|
|
|
+# but for now, copy them to the new variables.
|
|
|
+$(2)_BUILD_ENV ?= $$($(2)_MAKE_ENV)
|
|
|
+$(2)_BUILD_OPTS ?= -- $$($(2)_MAKE_OPTS)
|
|
|
+
|
|
|
+else ifeq ($$($(3)_CMAKE_BACKEND),ninja)
|
|
|
+$(2)_DEPENDENCIES += host-ninja
|
|
|
+$(2)_GENERATOR = "Ninja"
|
|
|
+$(2)_GENERATOR_PROGRAM = $(HOST_DIR)/bin/ninja
|
|
|
+
|
|
|
+else
|
|
|
+$$(error Unsupported cmake backend "$$($(3)_CMAKE_BACKEND)")
|
|
|
+endif
|
|
|
+
|
|
|
#
|
|
|
# Configure step. Only define it if not already defined by the package
|
|
|
# .mk file. And take care of the differences between host and target
|
|
@@ -88,7 +103,8 @@ define $(2)_CONFIGURE_CMDS
|
|
|
rm -f CMakeCache.txt && \
|
|
|
PATH=$$(BR_PATH) \
|
|
|
$$($$(PKG)_CONF_ENV) $$(BR2_CMAKE) $$($$(PKG)_SRCDIR) \
|
|
|
- -G"Unix Makefiles" \
|
|
|
+ -G$$($$(PKG)_GENERATOR) \
|
|
|
+ -DCMAKE_MAKE_PROGRAM="$$($$(PKG)_GENERATOR_PROGRAM)" \
|
|
|
-DCMAKE_TOOLCHAIN_FILE="$$(HOST_DIR)/share/buildroot/toolchainfile.cmake" \
|
|
|
-DCMAKE_INSTALL_PREFIX="/usr" \
|
|
|
-DCMAKE_INSTALL_RUNSTATEDIR="/run" \
|
|
@@ -119,7 +135,8 @@ define $(2)_CONFIGURE_CMDS
|
|
|
PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \
|
|
|
PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \
|
|
|
$$($$(PKG)_CONF_ENV) $$(BR2_CMAKE) $$($$(PKG)_SRCDIR) \
|
|
|
- -G"Unix Makefiles" \
|
|
|
+ -G$$($$(PKG)_GENERATOR) \
|
|
|
+ -DCMAKE_MAKE_PROGRAM="$$($$(PKG)_GENERATOR_PROGRAM)" \
|
|
|
-DCMAKE_INSTALL_SO_NO_EXE=0 \
|
|
|
-DCMAKE_FIND_ROOT_PATH="$$(HOST_DIR)" \
|
|
|
-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM="BOTH" \
|
|
@@ -166,11 +183,11 @@ $(2)_DEPENDENCIES += $(BR2_CMAKE_HOST_DEPENDENCY)
|
|
|
ifndef $(2)_BUILD_CMDS
|
|
|
ifeq ($(4),target)
|
|
|
define $(2)_BUILD_CMDS
|
|
|
- $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) -C $$($$(PKG)_BUILDDIR)
|
|
|
+ $$(TARGET_MAKE_ENV) $$($$(PKG)_BUILD_ENV) $$(BR2_CMAKE) --build $$($$(PKG)_BUILDDIR) -j$(PARALLEL_JOBS) $$($$(PKG)_BUILD_OPTS)
|
|
|
endef
|
|
|
else
|
|
|
define $(2)_BUILD_CMDS
|
|
|
- $$(HOST_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) -C $$($$(PKG)_BUILDDIR)
|
|
|
+ $$(HOST_MAKE_ENV) $$($$(PKG)_BUILD_ENV) $$(BR2_CMAKE) --build $$($$(PKG)_BUILDDIR) -j$(PARALLEL_JOBS) $$($$(PKG)_BUILD_OPTS)
|
|
|
endef
|
|
|
endif
|
|
|
endif
|
|
@@ -181,7 +198,7 @@ endif
|
|
|
#
|
|
|
ifndef $(2)_INSTALL_CMDS
|
|
|
define $(2)_INSTALL_CMDS
|
|
|
- $$(HOST_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) $$($$(PKG)_INSTALL_OPTS) -C $$($$(PKG)_BUILDDIR)
|
|
|
+ $$(HOST_MAKE_ENV) $$($$(PKG)_BUILD_ENV) $$(BR2_CMAKE) --install $$($$(PKG)_BUILDDIR) $$($$(PKG)_INSTALL_OPTS)
|
|
|
endef
|
|
|
endif
|
|
|
|
|
@@ -191,7 +208,7 @@ endif
|
|
|
#
|
|
|
ifndef $(2)_INSTALL_STAGING_CMDS
|
|
|
define $(2)_INSTALL_STAGING_CMDS
|
|
|
- $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) $$($$(PKG)_INSTALL_STAGING_OPTS) -C $$($$(PKG)_BUILDDIR)
|
|
|
+ $$(TARGET_MAKE_ENV) $$($$(PKG)_BUILD_ENV) DESTDIR=$$(STAGING_DIR) $$(BR2_CMAKE) --install $$($$(PKG)_BUILDDIR) $$($$(PKG)_INSTALL_STAGING_OPTS)
|
|
|
endef
|
|
|
endif
|
|
|
|
|
@@ -201,7 +218,7 @@ endif
|
|
|
#
|
|
|
ifndef $(2)_INSTALL_TARGET_CMDS
|
|
|
define $(2)_INSTALL_TARGET_CMDS
|
|
|
- $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) $$($$(PKG)_INSTALL_TARGET_OPTS) -C $$($$(PKG)_BUILDDIR)
|
|
|
+ $$(TARGET_MAKE_ENV) $$($$(PKG)_BUILD_ENV) DESTDIR=$$(TARGET_DIR) $$(BR2_CMAKE) --install $$($$(PKG)_BUILDDIR) $$($$(PKG)_INSTALL_TARGET_OPTS)
|
|
|
endef
|
|
|
endif
|
|
|
|