From 94fd711e2b6f54f096cdcaf086d63d4ff25c9671 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Bernon?= Date: Sat, 28 Mar 2020 16:35:00 +0100 Subject: [PATCH] build: Introduce rules-cmake macro. --- build/makefile_base.mak | 1 + make/rules-cmake.mk | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 make/rules-cmake.mk diff --git a/build/makefile_base.mak b/build/makefile_base.mak index 66fa33ea..87252228 100644 --- a/build/makefile_base.mak +++ b/build/makefile_base.mak @@ -39,6 +39,7 @@ include $(SRC)/make/utility.mk include $(SRC)/make/rules-source.mk include $(SRC)/make/rules-common.mk include $(SRC)/make/rules-meson.mk +include $(SRC)/make/rules-cmake.mk # If CC is coming from make's defaults or nowhere, use our own default. Otherwise respect environment. ifeq ($(ENABLE_CCACHE),1) diff --git a/make/rules-cmake.mk b/make/rules-cmake.mk new file mode 100644 index 00000000..4c61951f --- /dev/null +++ b/make/rules-cmake.mk @@ -0,0 +1,34 @@ +# parameters: +# $(1): lowercase package name +# $(2): uppercase package name +# $(3): 32/64, build type +# +define create-rules-cmake +$(call create-rules-common,$(1),$(2),$(3)) + +ifeq ($(CONTAINER),1) +$$(OBJ)/.$(1)-configure$(3): $$($(2)_SRC)/CMakeLists.txt + @echo ":: configuring $(3)bit $(1)..." >&2 + rm -rf "$$($(2)_OBJ$(3))/CMakeCache.txt" + + cd "$$($(2)_OBJ$(3))" && env $$($(2)_ENV$(3)) \ + cmake "$$($(2)_SRC)" \ + -DCMAKE_INSTALL_PREFIX="$$($(2)_DST$(3))" \ + -DCMAKE_INSTALL_LIBDIR="lib$(subst 32,,$(3))" \ + -DCMAKE_BUILD_TYPE=plain \ + $$($(2)_CMAKE_ARGS) \ + $$($(2)_CMAKE_ARGS$(3)) + + touch $$@ + +$$(OBJ)/.$(1)-build$(3): + @echo ":: building $(3)bit $(1)..." >&2 + cd "$$($(2)_OBJ$(3))" && env $$($(2)_ENV$(3)) \ + $$(MAKE) + cd "$$($(2)_OBJ$(3))" && env $$($(2)_ENV$(3)) \ + $$(MAKE) install + touch $$@ +endif +endef + +rules-cmake = $(call create-rules-cmake,$(1),$(call toupper,$(1)),$(2))